| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- package svc
 
- import (
 
- 	"golib/features/mo"
 
- 	"golib/infra/ii"
 
- )
 
- var (
 
- 	svc *Service
 
- )
 
- func InitDefault(client *mo.Client, items ii.Items, perms ii.Permission, log Logger) {
 
- 	svc = new(Service)
 
- 	svc.Client = client
 
- 	svc.Items = items
 
- 	svc.Perms = perms
 
- 	svc.Log = log
 
- 	svc.cache = NewCache(items)
 
- 	svc.refreshCh = make(chan ii.ItemInfo, 1024)
 
- 	go svc.handleRefresh()
 
- }
 
- func Items() ii.Items {
 
- 	return svc.Items
 
- }
 
- func AddItemCache(itemName string, user ii.User) {
 
- 	svc.cache.AddItem(itemName)
 
- 	service := Svc(user)
 
- 	rows, err := service.Find(itemName, mo.D{})
 
- 	if err != nil {
 
- 		panic(err)
 
- 	}
 
- 	svc.cache.SetData(itemName, rows)
 
- }
 
- func DbClient() *mo.Client {
 
- 	return svc.Client
 
- }
 
- func Svc(u ii.User) *Service {
 
- 	return &Service{
 
- 		Items:  svc.Items,
 
- 		Perms:  svc.Perms,
 
- 		User:   u,
 
- 		Client: svc.Client,
 
- 		Log:    svc.Log,
 
- 		cache:  svc.cache,
 
- 	}
 
- }
 
 
  |