Proper context.Context usage

This commit is contained in:
Caleb Gardner
2024-10-24 00:00:08 -05:00
parent fcab9458ee
commit 6965917e76
19 changed files with 126 additions and 118 deletions
+17 -17
View File
@@ -18,8 +18,8 @@ func NewMongoTable[T backend.IDStruct](col *mongo.Collection) *MongoTable[T] {
}
}
func (m *MongoTable[T]) Get(ID string) (data *T, err error) {
res := m.col.FindOne(context.Background(), bson.M{"_id": ID})
func (m *MongoTable[T]) Get(ctx context.Context, ID string) (data *T, err error) {
res := m.col.FindOne(ctx, bson.M{"_id": ID})
if res.Err() == mongo.ErrNoDocuments {
return nil, backend.ErrNotFound
} else if res.Err() != nil {
@@ -30,58 +30,58 @@ func (m *MongoTable[T]) Get(ID string) (data *T, err error) {
return &out, err
}
func (m *MongoTable[T]) Find(values map[string]any) ([]T, error) {
res, err := m.col.Find(context.Background(), values)
func (m *MongoTable[T]) Find(ctx context.Context, values map[string]any) ([]T, error) {
res, err := m.col.Find(ctx, values)
if err == mongo.ErrNoDocuments {
return nil, backend.ErrNotFound
} else if err != nil {
return nil, err
}
var out []T
err = res.All(context.Background(), &out)
err = res.All(ctx, &out)
return out, err
}
func (m *MongoTable[T]) Insert(data T) error {
_, err := m.col.InsertOne(context.Background(), data)
func (m *MongoTable[T]) Insert(ctx context.Context, data T) error {
_, err := m.col.InsertOne(ctx, data)
return err
}
func (m *MongoTable[T]) Remove(ID string) error {
res := m.col.FindOneAndDelete(context.Background(), bson.M{"_id": ID})
func (m *MongoTable[T]) Remove(ctx context.Context, ID string) error {
res := m.col.FindOneAndDelete(ctx, bson.M{"_id": ID})
return res.Err()
}
func (m *MongoTable[T]) FullUpdate(ID string, data T) error {
res := m.col.FindOneAndReplace(context.Background(), bson.M{"_id": ID}, data)
func (m *MongoTable[T]) FullUpdate(ctx context.Context, ID string, data T) error {
res := m.col.FindOneAndReplace(ctx, bson.M{"_id": ID}, data)
if res.Err() == mongo.ErrNoDocuments {
return backend.ErrNotFound
}
return res.Err()
}
func (m *MongoTable[T]) PartUpdate(ID string, update map[string]any) error {
res := m.col.FindOneAndUpdate(context.Background(), bson.M{"_id": ID}, bson.M{"$set": update})
func (m *MongoTable[T]) PartUpdate(ctx context.Context, ID string, update map[string]any) error {
res := m.col.FindOneAndUpdate(ctx, bson.M{"_id": ID}, bson.M{"$set": update})
if res.Err() == mongo.ErrNoDocuments {
return backend.ErrNotFound
}
return res.Err()
}
func (m *MongoTable[CountLog]) RemoveOldLogs(date int) error {
_, err := m.col.DeleteMany(context.Background(), bson.M{"date": bson.M{"$lt": date}})
func (m *MongoTable[CountLog]) RemoveOldLogs(ctx context.Context, date int) error {
_, err := m.col.DeleteMany(ctx, bson.M{"date": bson.M{"$lt": date}})
if err == mongo.ErrNoDocuments {
return nil
}
return err
}
func (m *MongoTable[CountLog]) Count(platform string) (int, error) {
func (m *MongoTable[CountLog]) Count(ctx context.Context, platform string) (int, error) {
var filter bson.M
if platform == "" || platform == "all" {
filter = bson.M{}
} else {
filter = bson.M{"platform": platform}
}
out, err := m.col.CountDocuments(context.Background(), filter)
out, err := m.col.CountDocuments(ctx, filter)
return int(out), err
}