go-mongo/services/category/category.go
2025-05-31 18:38:25 +03:00

38 lines
849 B
Go

package categoryService
import (
"context"
"git.farahty.com/nimer/go-mongo/app"
"git.farahty.com/nimer/go-mongo/models"
"github.com/graph-gophers/dataloader"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
)
var coll = "categories"
func Find(ctx context.Context) ([]*models.Category, error) {
return app.Find[models.Category](ctx, coll, bson.D{})
}
func Create(ctx context.Context, input models.CreateCategoryInput) (*models.Category, error) {
return app.InsertOne[models.Category](ctx, coll, input)
}
func FindByID(ctx context.Context, id primitive.ObjectID) (*models.Category, error) {
loaders := app.LoaderFor(ctx)
thunk := loaders.CategoryLoader.Load(ctx, dataloader.StringKey(id.Hex()))
result, err := thunk()
if err != nil {
return nil, err
}
return result.(*models.Category), nil
}