@mee4dy/crud
Version:
Create a backend and frontend in 5 minutes! With our powerful full stack crud system, customize it to suit you.
1 lines • 3.91 kB
Source Map (JSON)
{"version":3,"file":"crud.controller.cjs","sources":["../../nestjs/crud.controller.ts"],"sourcesContent":["import { Body, Get, Param, Post, Query } from '@nestjs/common';\nimport { Response } from '../common/interfaces/response.interface';\nimport { CrudService } from './crud.service';\nimport { CrudCtx } from './decorators/crud-ctx.decorator';\nimport { QueryParsePipe } from './pipes/query.parse.pipe';\nimport { PK } from '../common/constatns/constatns';\nimport { Model } from 'sequelize';\n\nexport abstract class CrudController<T extends Model> {\n constructor(private readonly service: CrudService<T>) {\n this.pk = this.service.getPK();\n }\n\n private pk;\n\n @Get('/')\n async items(@CrudCtx() { params }, @Query(new QueryParsePipe()) query): Promise<Response> {\n const items = await this.service.getItems({\n params,\n query,\n });\n\n return {\n status: true,\n data: {\n items: items,\n },\n };\n }\n\n @Get('/:pk')\n async item(@CrudCtx() { params }, @Param(PK) pk: number, @Query(new QueryParsePipe()) query): Promise<Response> {\n const item = await this.service.getItem({\n params,\n query: {\n filters: {\n [this.pk]: pk,\n ...query.filters,\n },\n },\n });\n\n return {\n status: true,\n data: {\n item: item,\n },\n };\n }\n\n @Post('/create')\n async create(@CrudCtx() { params }, @Body('data') data: object): Promise<Response> {\n const item = await this.service.create(data);\n\n return {\n status: true,\n data: {\n item: item,\n },\n };\n }\n\n @Post('/update')\n async update(@CrudCtx() { params }, @Body(PK) pk: number, @Body('data') data: object): Promise<Response> {\n const item = await this.service.update(pk, data);\n\n return {\n status: true,\n data: {\n item: item,\n },\n };\n }\n\n @Post('/delete')\n async delete(@CrudCtx() { params }, @Body(PK) pk: number): Promise<Response> {\n const result = await this.service.delete({\n [this.pk]: pk,\n });\n\n return {\n status: true,\n data: {\n result: result,\n },\n };\n }\n}\n"],"names":["CrudController","service","params","query","pk","data","__decorateClass","Get","__decorateParam","CrudCtx","Query","QueryParsePipe","PK","Post"],"mappings":"0bAQO,MAAeA,CAAgC,CACpD,YAA6BC,EAAyB,CAAzB,KAAA,QAAAA,EACtB,KAAA,GAAK,KAAK,QAAQ,MAAM,CAAA,CAM/B,MAAM,MAAiB,CAAE,OAAAC,GAAuCC,EAA0B,CAMjF,MAAA,CACL,OAAQ,GACR,KAAM,CACJ,MARU,MAAM,KAAK,QAAQ,SAAS,CACxC,OAAAD,EACA,MAAAC,CAAA,CACD,CAKG,CAEJ,CAAA,CAIF,MAAM,KAAgB,CAAE,OAAAD,GAAqBE,EAAyCD,EAA0B,CAWvG,MAAA,CACL,OAAQ,GACR,KAAM,CACJ,KAbS,MAAM,KAAK,QAAQ,QAAQ,CACtC,OAAAD,EACA,MAAO,CACL,QAAS,CACP,CAAC,KAAK,EAAE,EAAGE,EACX,GAAGD,EAAM,OAAA,CACX,CACF,CACD,CAKG,CAEJ,CAAA,CAIF,MAAM,OAAkB,CAAE,OAAAD,GAAwBG,EAAiC,CAG1E,MAAA,CACL,OAAQ,GACR,KAAM,CACJ,KALS,MAAM,KAAK,QAAQ,OAAOA,CAAI,CAKvC,CAEJ,CAAA,CAIF,MAAM,OAAkB,CAAE,OAAAH,GAAoBE,EAA0BC,EAAiC,CAGhG,MAAA,CACL,OAAQ,GACR,KAAM,CACJ,KALS,MAAM,KAAK,QAAQ,OAAOD,EAAIC,CAAI,CAK3C,CAEJ,CAAA,CAIF,MAAM,OAAkB,CAAE,OAAAH,GAAoBE,EAA+B,CAKpE,MAAA,CACL,OAAQ,GACR,KAAM,CACJ,OAPW,MAAM,KAAK,QAAQ,OAAO,CACvC,CAAC,KAAK,EAAE,EAAGA,CAAA,CACZ,CAKG,CAEJ,CAAA,CAEJ,CAvEQE,EAAA,CADLC,EAAAA,IAAI,GAAG,EACKC,EAAQ,EAAAC,EAAAA,SAAA,EAAeD,EAAA,EAAAE,QAAM,IAAIC,EAAA,cAAgB,CAAA,CAAA,EAR1CX,EAQd,UAAA,OAAA,EAeAM,EAAA,CADLC,EAAAA,IAAI,MAAM,EACCC,EAAQ,EAAAC,EAAAA,SAAA,EAAeD,YAAMI,EAAAA,EAAE,CAAA,EAAeJ,EAAA,EAAAE,QAAM,IAAIC,EAAA,cAAgB,CAAA,CAAA,EAvBhEX,EAuBd,UAAA,MAAA,EAoBAM,EAAA,CADLO,EAAAA,KAAK,SAAS,EACDL,EAAQ,EAAAC,EAAAA,SAAA,EAAeD,WAAK,MAAM,CAAA,CAAA,EA3C5BR,EA2Cd,UAAA,QAAA,EAYAM,EAAA,CADLO,EAAAA,KAAK,SAAS,EACDL,EAAQ,EAAAC,EAAAA,SAAA,EAAeD,WAAKI,EAAAA,EAAE,CAAA,EAAeJ,WAAK,MAAM,CAAA,CAAA,EAvDlDR,EAuDd,UAAA,QAAA,EAYAM,EAAA,CADLO,EAAAA,KAAK,SAAS,EACDL,EAAQ,EAAAC,EAAAA,SAAA,EAAeD,WAAKI,IAAE,CAAA,CAAA,EAnExBZ,EAmEd,UAAA,QAAA"}