service

package
v0.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBatchUpdateOrPatchOneNotFound = errors.New("at least one not found")
View Source
var ErrIDEmpty = errors.New("cannot operate when ID is empty")
View Source
var ErrIDNotMatch = errors.New("cannot operate when ID in HTTP body and URL parameter not match")
View Source
var ErrPatch = errors.New("patch syntax error") // json: cannot unmarshal object into Go value of type jsonpatch.Patch
View Source
var ErrPermission = errors.New("permission denied")

Error

View Source
var ErrPermissionWrongEndPoint = errors.New("permission denied. Change it through the resource endpoint or unable to change your own role.")

Functions

This section is empty.

Types

type BaseService

type BaseService struct {
}

BaseService is the superclass of all services

func (*BaseService) CreateOneCore

func (serv *BaseService) CreateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (models.IModel, error)

CreateOneCore create the model

func (*BaseService) DeleteOneCore

func (serv *BaseService) DeleteOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObjs models.IModel) (models.IModel, error)

func (*BaseService) ReadOneCore added in v0.5.0

func (serv *BaseService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

func (*BaseService) UpdateOneCore

func (serv *BaseService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permissin should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

type GlobalService

type GlobalService struct {
	BaseService
}

func (*GlobalService) GetAllQueryContructCore added in v0.3.4

func (serv *GlobalService) GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)

GetAllQueryContructCore construct the meat of the query

func (*GlobalService) GetAllRolesCore added in v0.3.4

func (serv *GlobalService) GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)

GetAllRolesCore gets all roles according to the criteria

func (*GlobalService) GetManyCore added in v0.5.0

func (service *GlobalService) GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

func (*GlobalService) HookBeforeCreateMany

func (serv *GlobalService) HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*GlobalService) HookBeforeCreateOne

func (serv *GlobalService) HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*GlobalService) HookBeforeDeleteMany

func (serv *GlobalService) HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*GlobalService) HookBeforeDeleteOne

func (serv *GlobalService) HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*GlobalService) ReadOneCore added in v0.5.0

func (service *GlobalService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

ReadOneCore get one model object based on its type and its id string

func (*GlobalService) UpdateOneCore

func (serv *GlobalService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permissin should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

type IService

type IService interface {
	HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)
	HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)
	HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)
	HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

	CreateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (models.IModel, error)
	ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)
	UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)
	DeleteOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObjs models.IModel) (models.IModel, error)

	GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

	GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)
	GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)
}

IService provice basic data fetch for various type of table to user relationships

type LinkTableService

type LinkTableService struct {
	BaseService
}

func (*LinkTableService) GetAllQueryContructCore added in v0.3.4

func (serv *LinkTableService) GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)

GetAllQueryContructCore construct query core

func (*LinkTableService) GetAllRolesCore added in v0.3.4

func (serv *LinkTableService) GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)

GetAllRolesCore gets all roles according to the criteria

func (*LinkTableService) GetManyCore added in v0.5.0

func (serv *LinkTableService) GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

func (*LinkTableService) HookBeforeCreateMany

func (serv *LinkTableService) HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*LinkTableService) HookBeforeCreateOne

func (serv *LinkTableService) HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*LinkTableService) HookBeforeDeleteMany

func (serv *LinkTableService) HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*LinkTableService) HookBeforeDeleteOne

func (serv *LinkTableService) HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*LinkTableService) ReadOneCore added in v0.5.0

func (service *LinkTableService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

ReadOneCore get one model object based on its type and its id string

func (*LinkTableService) UpdateOneCore

func (serv *LinkTableService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permissin should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

type OrganizationService

type OrganizationService struct {
	BaseService
}

OrganizationService handles all the ownership specific db calls

func (*OrganizationService) GetAllQueryContructCore added in v0.3.4

func (serv *OrganizationService) GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)

GetAllQueryContructCore construct query core

func (*OrganizationService) GetAllRolesCore added in v0.3.4

func (serv *OrganizationService) GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)

GetAllRolesCore gets all roles according to the criteria

func (*OrganizationService) GetManyCore added in v0.5.0

func (serv *OrganizationService) GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

func (*OrganizationService) HookBeforeCreateMany

func (serv *OrganizationService) HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*OrganizationService) HookBeforeCreateOne

func (serv *OrganizationService) HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*OrganizationService) HookBeforeDeleteMany

func (serv *OrganizationService) HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*OrganizationService) HookBeforeDeleteOne

func (serv *OrganizationService) HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*OrganizationService) ReadOneCore added in v0.5.0

func (serv *OrganizationService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

getOneWithIDCore get one model object based on its type and its id string since this is organizationMapper, need to make sure it's the same organization

func (*OrganizationService) UpdateOneCore

func (serv *OrganizationService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permission should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

type OwnershipService

type OwnershipService struct {
	BaseService
}

OwnershipService handles all the ownership specific db calls

func (*OwnershipService) CreateOneCore

func (serv *OwnershipService) CreateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (models.IModel, error)

CreateOneCore creates the stuff

func (*OwnershipService) GetAllQueryContructCore added in v0.3.4

func (serv *OwnershipService) GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)

GetAllQueryContructCore construct the meat of the query

func (*OwnershipService) GetAllRolesCore added in v0.3.4

func (serv *OwnershipService) GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)

GetAllRolesCore gets all roles according to the criteria

func (*OwnershipService) GetManyCore added in v0.5.0

func (serv *OwnershipService) GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

GetManyCore -

func (*OwnershipService) HookBeforeCreateMany

func (serv *OwnershipService) HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*OwnershipService) HookBeforeCreateOne

func (serv *OwnershipService) HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*OwnershipService) HookBeforeDeleteMany

func (serv *OwnershipService) HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

HookBeforeDeleteMany deletes link table because GORM isn't automatic here when we customize it with UUID or when we have role

func (*OwnershipService) HookBeforeDeleteOne

func (serv *OwnershipService) HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*OwnershipService) ReadOneCore added in v0.5.0

func (serv *OwnershipService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

ReadOneCore get one model object based on its type and its id string

func (*OwnershipService) UpdateOneCore

func (serv *OwnershipService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permissin should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

type UserService

type UserService struct {
	BaseService
}

func (*UserService) GetAllQueryContructCore added in v0.3.4

func (serv *UserService) GetAllQueryContructCore(db *gorm.DB, who models.UserIDFetchable, typeString string) (*gorm.DB, error)

GetAllQueryContructCore :-

func (*UserService) GetAllRolesCore added in v0.3.4

func (serv *UserService) GetAllRolesCore(dbChained *gorm.DB, dbClean *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.UserRole, error)

GetAllRolesCore :-

func (*UserService) GetManyCore added in v0.5.0

func (serv *UserService) GetManyCore(db *gorm.DB, who models.UserIDFetchable, typeString string, ids []*datatypes.UUID) ([]models.IModel, []models.UserRole, error)

func (*UserService) HookBeforeCreateMany

func (serv *UserService) HookBeforeCreateMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*UserService) HookBeforeCreateOne

func (serv *UserService) HookBeforeCreateOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*UserService) HookBeforeDeleteMany

func (serv *UserService) HookBeforeDeleteMany(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObjs []models.IModel) ([]models.IModel, error)

func (*UserService) HookBeforeDeleteOne

func (serv *UserService) HookBeforeDeleteOne(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel) (models.IModel, error)

func (*UserService) ReadOneCore added in v0.5.0

func (serv *UserService) ReadOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, id *datatypes.UUID) (models.IModel, models.UserRole, error)

ReadOneCore get one model object based on its type and its id string ReadOne get one model object based on its type and its id string without invoking read hookpoing

func (*UserService) UpdateOneCore

func (serv *UserService) UpdateOneCore(db *gorm.DB, who models.UserIDFetchable, typeString string, modelObj models.IModel, id *datatypes.UUID, oldModelObj models.IModel) (modelObj2 models.IModel, err error)

UpdateOneCore one, permissin should already be checked called for patch operation as well (after patch has already applied) Fuck, repeat the following code for now (you can't call the overriding method from the non-overriding one)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL