Newer
Older
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,
}
commonServiceRegistration(serviceName, service, isRestricted, isRoleBased)
// 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,
}
commonServiceRegistration(serviceName, service, isRestricted, isRoleBased)
// RegisterMasterService is for getting master type of file
func RegisterMasterService(serviceName string, servicePtr *servicebuildermdl.ServiceBuilder, isRestricted, isRoleBased bool) {
service := ServiceCache{
MasterService: servicePtr,
IsMasterService: true,
}
commonServiceRegistration(serviceName, service, isRestricted, isRoleBased)
}
func commonServiceRegistration(serviceName string, service ServiceCache, isRestricted, isRoleBased bool) {
roleBasedServices.SetNoExpiration(serviceName, service)
restrictedServices.SetNoExpiration(serviceName, service)
openServices.SetNoExpiration(serviceName, service)