import { Model } from "@mongez/monpulse"; import { Request, Response } from "../http"; import { RepositoryManager } from "../repositories"; import { RestfulMiddleware, RouteResource } from "../router"; export declare abstract class Restful implements RouteResource { /** * Middleware for each method */ protected middleware: RestfulMiddleware; /** * Record name */ protected recordName: string; /** * Records list name */ protected recordsListName: string; /** * Repository */ protected abstract repository: RepositoryManager; /** * Define what to be returned when a record is created|updated|deleted|patched */ protected returnOn: Record; /** * Enable fetching cache * * @default true */ cache: boolean; /** * Find record instance by id */ find(id: number): Promise; /** * List records */ list(request: Request, response: Response): Promise; /** * Get single record */ get(request: Request, response: Response): Promise; /** * Create record */ create(request: Request, response: Response): Promise; /** * Update record */ update(request: Request, response: Response): Promise; /** * Patch record */ patch(request: Request, response: Response): Promise; /** * Delete record */ delete(request: Request, response: Response): Promise; /** * Bulk delete records */ bulkDelete(request: Request, response: Response): Promise; /** * Before create */ protected beforeCreate(_request: Request): Promise; /** * On create */ protected onCreate(_request: Request, _record: T): void; /** * Before update */ protected beforeUpdate(_request: Request, _record: T, _oldRecord?: T): void; /** * On update */ protected onUpdate(_request: Request, _record: T, _oldRecord: T): void; /** * Before delete */ protected beforeDelete(_request: Request, _record: T): void; /** * On delete */ protected onDelete(_request: Request, _record: T): void; /** * Before patch */ protected beforePatch(_request: Request, _record: T, _oldRecord?: T): void; /** * On patch */ protected onPatch(_request: Request, _record: T, _oldRecord: T): void; /** * Before save */ protected beforeSave(_request: Request, _record?: T, _oldRecord?: T): Promise; /** * On save */ protected onSave(_request: Request, _record: T, _oldRecord?: T): void; /** * Call middleware for the given method * */ protected callMiddleware(method: string, request: Request, response: Response): Promise>; } //# sourceMappingURL=restful.d.ts.map