| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- package svc
 
- import (
 
- 	"golib/features/mo"
 
- 	"golib/gio"
 
- 	"golib/infra/ii"
 
- 	"golib/log"
 
- )
 
- var (
 
- 	service    *Service
 
- 	permission ii.Permission
 
- )
 
- func InitDefault(client *mo.Client, items ii.Items, perms ii.Permission, log log.Logger) {
 
- 	service = &Service{
 
- 		Items:  items,
 
- 		Client: client,
 
- 		Log:    log,
 
- 		Cache:  NewCache(items),
 
- 	}
 
- 	permission = perms
 
- }
 
- func AddItemCache(name ii.Name) {
 
- 	service.Cache.AddItem(name)
 
- 	rows, err := service.Find(name, mo.D{})
 
- 	if err != nil {
 
- 		panic(err)
 
- 	}
 
- 	service.Cache.SetData(name, rows)
 
- }
 
- func With(u ii.User) *WithUser {
 
- 	return &WithUser{
 
- 		User:    u,
 
- 		Perms:   permission,
 
- 		Service: service,
 
- 	}
 
- }
 
- func GetItems() ii.Items {
 
- 	return service.GetItems()
 
- }
 
- func HasItem(name ii.Name) (*ii.ItemInfo, bool) {
 
- 	info, ok := service.HasItem(name)
 
- 	if !ok {
 
- 		return nil, false
 
- 	}
 
- 	b, err := gio.MarshalJson(info)
 
- 	if err != nil {
 
- 		panic(err)
 
- 	}
 
- 	var itemInfo ii.ItemInfo
 
- 	if err = gio.UnmarshalJson(b, &itemInfo); err != nil {
 
- 		panic(err)
 
- 	}
 
- 	return &itemInfo, true
 
- }
 
- func Find(name ii.Name, filter mo.D) ([]mo.M, error) {
 
- 	return service.Find(name, filter)
 
- }
 
- func FindOne(name ii.Name, filter mo.D) (mo.M, error) {
 
- 	return service.FindOne(name, filter)
 
- }
 
- func FindOneAndDelete(name ii.Name, filter mo.D) error {
 
- 	return service.FindOneAndDelete(name, filter)
 
- }
 
- func DeleteOne(name ii.Name, filter mo.D) error {
 
- 	return service.DeleteOne(name, filter)
 
- }
 
- func DeleteMany(name ii.Name, filter mo.D) error {
 
- 	return service.DeleteMany(name, filter)
 
- }
 
- func FindOneAndUpdate(name ii.Name, filter mo.D, update mo.D) error {
 
- 	return service.FindOneAndUpdate(name, filter, update)
 
- }
 
- func EstimatedDocumentCount(name ii.Name) (int64, error) {
 
- 	return service.EstimatedDocumentCount(name)
 
- }
 
- func CountDocuments(name ii.Name, filter mo.D) (int64, error) {
 
- 	return service.CountDocuments(name, filter)
 
- }
 
- func InsertOne(name ii.Name, doc mo.M) (mo.ObjectID, error) {
 
- 	return service.InsertOne(name, doc)
 
- }
 
- func InsertMany(name ii.Name, docs mo.A) (mo.A, error) {
 
- 	return service.InsertMany(name, docs)
 
- }
 
- func UpdateOne(name ii.Name, filter mo.D, update any) error {
 
- 	return service.UpdateOne(name, filter, update)
 
- }
 
- func UpdateByID(name ii.Name, id mo.ObjectID, update mo.D) error {
 
- 	return service.UpdateByID(name, id, update)
 
- }
 
- func UpdateMany(name ii.Name, filter mo.D, update mo.D) error {
 
- 	return service.UpdateMany(name, filter, update)
 
- }
 
- func Aggregate(name ii.Name, pipe mo.Pipeline, v interface{}) error {
 
- 	return service.Aggregate(name, pipe, v)
 
- }
 
 
  |