package routebuildermdl import ( "mime/multipart" "time" "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/cachemdl" "corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/servicebuildermdl" ) var restrictedServices cachemdl.FastCacheHelper var roleBasedServices cachemdl.FastCacheHelper var openServices cachemdl.FastCacheHelper func init() { restrictedServices.Setup(10, time.Second*600, time.Second*600) openServices.Setup(10, time.Second*600, time.Second*600) roleBasedServices.Setup(10, time.Second*600, time.Second*600) } // ServiceCache ServiceCache object type ServiceCache struct { Service func([]byte) (interface{}, error) FormService func(*multipart.Form) (interface{}, error) MasterService *servicebuildermdl.ServiceBuilder IsMasterService bool IsFormService bool } // RegisterNormalService is for transactional services func RegisterNormalService(serviceName string, servicePtr func([]byte) (interface{}, error), isRestricted, isRoleBased bool) { service := ServiceCache{ Service: servicePtr, } if isRestricted { if isRoleBased { roleBasedServices.Set(serviceName, service) } else { restrictedServices.Set(serviceName, service) } } openServices.Set(serviceName, service) } // RegisterFormBasedService if for multipart form based services func RegisterFormBasedService(serviceName string, servicePtr func(*multipart.Form) (interface{}, error), isRestricted, isRoleBased bool) { service := ServiceCache{ FormService: servicePtr, IsFormService: true, } if isRestricted { if isRoleBased { roleBasedServices.Set(serviceName, service) } else { restrictedServices.Set(serviceName, service) } } openServices.Set(serviceName, service) } // RegisterMasterService is for getting master type of file func RegisterMasterService(serviceName string, servicePtr *servicebuildermdl.ServiceBuilder, isRestricted, isRoleBased bool) { service := ServiceCache{ MasterService: servicePtr, IsMasterService: true, } if isRestricted { if isRoleBased { roleBasedServices.Set(serviceName, service) } else { restrictedServices.Set(serviceName, service) } } openServices.Set(serviceName, service) }