ncrudify
Version:
Configurable CRUD module for NestJS and Mongoose.
78 lines (66 loc) • 1.97 kB
text/typescript
import {
Body,
Controller,
Delete,
Get,
Param,
Patch,
Post,
Put,
Query,
} from "@nestjs/common";
import { CrudifyService } from "./crudify.service";
export class CrudifyController<T, C = Partial<T>, U = Partial<T>> {
constructor(private readonly crudService: CrudifyService<T, C, U>) {}
softDelete = Reflect.getMetadata("softDelete", this);
create( createDto: C) {
return this.crudService.create(createDto);
}
createBulk( data: C[]) {
return this.crudService.createBulk(data);
}
findAll( query: any) {
return this.crudService.findAll(query);
}
findOne( id: string) {
return this.crudService.findOne({ _id: id });
}
put( id: string, updateDto: Partial<U>) {
return this.crudService.put(id, updateDto);
}
async updateBulk( body: { filter: any; updateDto: any }) {
const { filter, updateDto } = body;
return this.crudService.updateBulk(filter, updateDto);
}
async restoreBulk( body: { filter: any }) {
const { filter } = body;
return this.crudService.restoreBulk(filter);
}
restore( id: string) {
return this.crudService.restore(id);
}
update( id: string, updateDto: Partial<T>) {
return this.crudService.update(id, updateDto);
}
async deleteBulk( body: { filter: any }) {
const { filter } = body;
if (this.softDelete) return this.crudService.softDeleteBulk(filter);
return this.crudService.deleteBulk(filter);
}
delete( id: string) {
if (this.softDelete) return this.crudService.softDelete(id);
return this.crudService.delete(id);
}
}