apisculptify
Version:
Apisculptify is a powerful Node.js tool designed to automate the process of generating RESTful APIs for your TypeORM models. With Apisculptify, you can quickly create a new project, define your TypeORM models, and effortlessly generate CRUD (Create, Read,
31 lines (30 loc) • 1.51 kB
Plain Text
import { [[MODEL_NAME_WITHOUT_KEY]]Service } from "../service/[[MODEL_NAME_WITH_DASH]].service";
import { [[MODEL_NAME]] } from "../model/[[MODEL_NAME_WITH_DASH]].model";
import { DeleteResult } from "typeorm";
import { SearchResult } from "../util/search-result";
import { Route, Post, Put, Delete, Get, Path, Query, Body, Tags } from 'tsoa';
@Route('[[MODEL_NAME_WITHOUT_KEY_LOWER]]')
@Tags("[[MODEL_NAME_WITHOUT_KEY]]")
export class [[MODEL_NAME_WITHOUT_KEY]]Controller {
@Post('/')
static async add(@Body() data: [[MODEL_NAME]]): Promise<[[MODEL_NAME]]> {
return [[MODEL_NAME_WITHOUT_KEY]]Service.add(data);
}
@Put('/:uid')
static async update(@Path() uid: string, @Body() data: [[MODEL_NAME]]): Promise<[[MODEL_NAME]]> {
return [[MODEL_NAME_WITHOUT_KEY]]Service.update(uid, data);
}
@Delete('/:uid')
static async delete(@Path() uid: string): Promise<DeleteResult> {
return [[MODEL_NAME_WITHOUT_KEY]]Service.delete(uid);
}
@Get('/byuid/:uid')
static async getByUid(@Path() uid: string): Promise<[[MODEL_NAME]]> {
return [[MODEL_NAME_WITHOUT_KEY]]Service.getByUid(uid);
}
@Get('/search')
static async find(@Query() query: any, @Query() order: any, @Query() start: number = 0, @Query() limit: number = 10,): Promise<SearchResult<[[MODEL_NAME]]>> {
let result = await [[MODEL_NAME_WITHOUT_KEY]]Service.find(query, order, start, limit);
return new SearchResult(result[1], start, limit, result[0])
}
}