UNPKG

amocrm-client

Version:
42 lines (34 loc) 1.65 kB
import schema from '../../schema/v4'; import { applyMixins } from "../../util"; import ResourceFactory from "../ResourceFactory"; import ResourcePagination from "../ResourcePagination"; import { IRequestOptions } from "../../interfaces/common"; import { IResourceFactory } from "../../interfaces/api"; import { hasGetByCriteria, hasGetById, hasCreate } from "./mixins"; import { UserRoleCreateCriteria, UserRoleUpdateCriteria, UserCriteria } from "../../interfaces/user"; import { IUserRole, UserRole } from "../models/UserRole"; import { hasDeleteById } from "./mixins/hasDeleteById"; export interface IUserRoleFactory extends IResourceFactory<IUserRole> { get(criteria?: Partial<UserCriteria>, options?: IRequestOptions): Promise<ResourcePagination<IUserRole>>; getById(identity: number, criteria?: Pick<UserCriteria, "with">, options?: IRequestOptions): Promise<IUserRole | null>; create(criteria: (UserRoleCreateCriteria | IUserRole)[], options?: IRequestOptions): Promise<IUserRole[]>; update(criteria: (UserRoleUpdateCriteria | IUserRole)[], options?: IRequestOptions): Promise<IUserRole[]>; delete(identity: number, options?: IRequestOptions): Promise<boolean>; } export class BaseUserRoleFactory extends ResourceFactory<IUserRole> { getEntityClass() { return UserRole; } getBaseUrl(): string { return schema.entities.users_roles.path; } getEmbeddedKey(): string { return 'roles'; } } export const UserRoleFactory = applyMixins(BaseUserRoleFactory, [ hasGetByCriteria, hasGetById, hasCreate, hasDeleteById, ]);