UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

38 lines 1.84 kB
import type { NextFunction, Response } from "express"; import type { IUser, IWorkspace } from "../entities"; import type { IBase } from "../entities/Base"; import type { AppRequest, Ownership } from "../interfaces/SystemTypes"; import { type BaseService } from "../services/BaseService"; import type { IQueryFilter, IQueryOptions, IResponsePagination } from "../interfaces/IQuery"; import type { ResponseData } from "../interfaces/ResponseData"; export default class BaseController<T extends IBase = any, S extends BaseService<T> = BaseService> { req: AppRequest; service: S; user: IUser; workspace: IWorkspace; ownership: Ownership; filter: IQueryFilter; options: IQueryOptions; pagination: IResponsePagination; constructor(service?: S); read(): Promise<ResponseData>; create(inputData: any): Promise<ResponseData>; update(updateData: any): Promise<ResponseData>; delete(): Promise<ResponseData>; softDelete(): Promise<ResponseData>; empty(): Promise<ResponseData | (ResponseData & { data: { ok: number; }; })>; parseDateRange(req: AppRequest, res?: Response, next?: NextFunction): void; parseBody(req: AppRequest, res?: Response, next?: NextFunction): void; /** * Parse the filter option from the URL: * - List (first page, 10 item per page, sort "desc" by "updatedAt" first, then "desc" by "createdAt"): `https://example.com/api/v1/user?page=1&size=10&sort=-updatedAt,-createdAt` * - Search (by username that contains "john"): `https://example.com/api/v1/user?page=1&size=10&username=john&search=true` */ parseFilter(req: AppRequest, res?: Response, next?: NextFunction): void; parsePagination(req: AppRequest, res?: Response, next?: NextFunction): Promise<void>; } //# sourceMappingURL=BaseController.d.ts.map