UNPKG

@ords/modules

Version:

Modules for ords-core microservices based upon proposals

46 lines (45 loc) 1.62 kB
import { ServiceRegistry, proposals } from '@ords/core'; import { lib as schemaLib } from '@ords/obj-schema'; import { Observer } from 'rxjs'; /** * FOllows structure of proposals protectHookLib would be other lib functions */ export declare namespace ProtectHookProposal { namespace types { interface authRule extends Function { (request: proposals.main.types._BaseRequest<proposals.database.Packages.Create | proposals.database.Packages.Read | proposals.database.Packages.Update | proposals.database.Packages.Delete | proposals.database.Packages.Patch>, observable: Observer<[string, any]>): void; } } } export declare class Protect { private schema; private authRule; setSchema(key: string, schema: schemaLib.SchemaValidation): void; setAuthRule(key: string, rule: ProtectHookProposal.types.authRule): void; /** * Create and bind hooks to msr * @param msr reference to microservice registry * @param hooks hooks that needs to be enabled within this */ constructor(msr: ServiceRegistry); /** * Check that a given resource exists by a schema existing for it * @param request */ private checkResourceExist(request); /** * Check that a given rule for a schema is followed * @param request */ private checkAuthRule(request); /** * Check that data follows given schema scritly * @param request */ private checkFollowSchemaStrict(request); /** * Check that data follows given schema non-strictly * @param request */ private checkFollowSchema(request); }