import { Request, Response } from 'express'; import { DyFM_Metadata } from '@futdevpro/fsm-dynamo'; import { DyNTS_DataService } from '../../../_services/base/data.service'; import { DyNTS_Endpoint_Params } from '../../../_models/control-models/endpoint-params.control-model'; /** * Alapértelmezett endpoint-ok létrehozásához használt utility class. * Az Organizer Modules mintáját követve generálja a standard CRUD endpoint-okat. * * @see {@link DyNTS_Controller} - A controller-ben használható a setupEndpoints metódusban */ export declare class DyNTS_DefaultEndpoints_Util { /** * GET endpoint létrehozása egy adott ID alapján történő adatlekéréshez. * * @param set.entityName - Az entitás neve (pl. "Task", "Note"), * ebből generálódik az endpoint neve és az ID paraméter neve * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpointPath - Az endpoint path (pl. '/:userId/task/get/:taskId') * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @param set.idParamName - Az ID paraméter neve a request-ben * (opcionális, alapértelmezetten: {entityName.toLowerCase()}Id) * @returns DyNTS_Endpoint_Params instance a GET endpoint-hoz * * @example * ```typescript * const getEndpoint = DyNTS_DefaultEndpoints_Util.getGetEndpoint({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpointPath: FDP_organizerApiEnv_endpoints.tasks.task.getTask, * authService: this.auth_CS, * }); * ``` */ static getGetEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; idParamName?: string; }): DyNTS_Endpoint_Params; static getGetMyEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; }): DyNTS_Endpoint_Params; /** * POST endpoint létrehozása adatok kereséséhez. * * @param set.entityName - Az entitás neve (pl. "Task", "Note"), * ebből generálódik az endpoint neve * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpointPath - Az endpoint path (pl. '/:userId/tasks/search') * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @returns DyNTS_Endpoint_Params instance a POST search endpoint-hoz * * @example * ```typescript * const searchEndpoint = DyNTS_DefaultEndpoints_Util.getSearchEndpoint({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpointPath: FDP_organizerApiEnv_endpoints.tasks.task.searchTasks, * authService: this.auth_CS, * }); * ``` */ static getSearchEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; }): DyNTS_Endpoint_Params; /** * POST endpoint létrehozása adatok módosításához vagy létrehozásához. * A modify végpontok mindig create végpontok is egyben. * * @param set.entityName - Az entitás neve (pl. "Task", "Note"), * ebből generálódik az endpoint neve * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpointPath - Az endpoint path (pl. '/:userId/task/modify') * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @returns DyNTS_Endpoint_Params instance a POST modify endpoint-hoz * * @example * ```typescript * const modifyEndpoint = DyNTS_DefaultEndpoints_Util.getModifyEndpoint({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpointPath: FDP_organizerApiEnv_endpoints.tasks.task.modifyTask, * authService: this.auth_CS, * }); * ``` */ static getModifyEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; }): DyNTS_Endpoint_Params; /** * DELETE endpoint létrehozása egy adott ID alapján történő adattörléshez. * * @param set.entityName - Az entitás neve (pl. "Task", "Note"), * ebből generálódik az endpoint neve és az ID paraméter neve * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpointPath - Az endpoint path (pl. '/:userId/task/delete/:taskId') * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @param set.idParamName - Az ID paraméter neve a request-ben * (opcionális, alapértelmezetten: {entityName.toLowerCase()}Id) * @returns DyNTS_Endpoint_Params instance a DELETE endpoint-hoz * * @example * ```typescript * const deleteEndpoint = DyNTS_DefaultEndpoints_Util.getDeleteEndpoint({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpointPath: FDP_organizerApiEnv_endpoints.tasks.task.deleteTask, * authService: this.auth_CS, * }); * ``` */ static getDeleteEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; idParamName?: string; }): DyNTS_Endpoint_Params; /** * PATCH endpoint létrehozása részleges adatmódosításhoz. * A PATCH endpoint csak a megadott mezőket módosítja, nem cseréli le az egész objektumot. * * @param set.entityName - Az entitás neve (pl. "Task", "Note"), * ebből generálódik az endpoint neve * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpointPath - Az endpoint path (pl. '/:userId/task/patch') * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @returns DyNTS_Endpoint_Params instance a PATCH endpoint-hoz * * @example * ```typescript * const patchEndpoint = DyNTS_DefaultEndpoints_Util.getPatchEndpoint({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpointPath: '/:userId/task/patch', * authService: this.auth_CS, * }); * ``` */ static getPatchEndpoint(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpointPath: string; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; }): DyNTS_Endpoint_Params; /** * Összes alapértelmezett endpoint létrehozása egy lépésben. * Visszaadja a GET, SEARCH, MODIFY, PATCH és DELETE endpoint-okat egy tömbben. * * @param set.entityName - Az entitás neve (pl. "Task", "Note") * @param set.dataServiceClass - A DataService osztály konstruktora * @param set.endpoints - Az endpoint path-ek objektuma * @param set.endpoints.get - GET endpoint path * @param set.endpoints.search - SEARCH endpoint path * @param set.endpoints.modify - MODIFY endpoint path * @param set.endpoints.patch - PATCH endpoint path (opcionális) * @param set.endpoints.delete - DELETE endpoint path * @param set.authService - Az auth service, amely tartalmazza az * authenticate_tokenSelf metódust * @param set.idParamName - Az ID paraméter neve a request-ben * (opcionális, alapértelmezetten: {entityName.toLowerCase()}Id) * @returns DyNTS_Endpoint_Params tömb az összes alapértelmezett endpoint-tal * * @example * ```typescript * setupEndpoints(): void { * this.endpoints = [ * ...DyNTS_DefaultEndpoints_Util.getAllDefaultEndpoints({ * entityName: 'Task', * dataServiceClass: Task_DataService, * endpoints: { * get: FDP_organizerApiEnv_endpoints.tasks.task.getTask, * search: FDP_organizerApiEnv_endpoints.tasks.task.searchTasks, * modify: FDP_organizerApiEnv_endpoints.tasks.task.modifyTask, * patch: '/:userId/task/patch', * delete: FDP_organizerApiEnv_endpoints.tasks.task.deleteTask, * }, * authService: this.auth_CS, * }), * ]; * } * ``` */ static getAllDefaultEndpoints(set: { entityName: string; dataServiceClass: new (set: { data?: T_Data; issuer: string; }) => DyNTS_DataService; endpoints: { get?: string; getMy?: string; search?: string; modify: string; patch?: string; delete?: string; }; authService: { authenticate_tokenSelf: (req: Request, res: Response) => Promise; }; idParamName?: string; }): DyNTS_Endpoint_Params[]; } //# sourceMappingURL=default-endpoints.util.d.ts.map