Form-utility-backend/src/form/form.controller.ts
2026-04-13 14:09:32 +05:30

75 lines
2.1 KiB
TypeScript

import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Query,
} from '@nestjs/common';
import { FormService } from './form.service';
import { ApiOperation } from '@nestjs/swagger';
import { UpdateFieldDto } from './dto/update-field.dto';
import { QueryFormDto } from './dto/query-form.dto';
import { CreateFormDto } from './dto/create-form.dto';
@Controller('form')
export class FormController {
constructor(private readonly formService: FormService) {}
@Post('create-form')
@ApiOperation({ summary: 'Create a Form'})
async createOne(@Body() createFormDto:CreateFormDto){
return await this.formService.createForm(createFormDto)
}
@Get()
@ApiOperation({ summary: 'Get all forms with pagination, search, sort' })
findAll(@Query() query: QueryFormDto) {
return this.formService.findAll(query);
}
@Get(':formId')
@ApiOperation({ summary: 'Find a form' })
async find(@Param('formId') formId: string) {
return await this.formService.find(formId);
}
@Get(':formId/interface')
@ApiOperation({summary:'Get interface for the form provided by llm'})
async getInterface(@Param('formId') formId:string){
return await this.formService.findInterface(formId);
}
@Patch(':id/fields/:fieldId')
@ApiOperation({ summary: 'update a field in a form' })
async updateField(
@Param('id') id: string,
@Param('fieldId') fieldId: string,
@Body() updateFieldDto: UpdateFieldDto,
) {
return await this.formService.updateField(id, fieldId, updateFieldDto);
}
@Delete(':id/fields/:fieldId')
@ApiOperation({ summary: 'Delete a field' })
async deleteField(
@Param('id') id: string,
@Param('fieldId') fieldId: string,
) {
return await this.formService.deleteField(id, fieldId);
}
@Delete(':id')
@ApiOperation({ summary: 'Soft delete a form' })
async softDelete(@Param('id') id: string) {
return await this.formService.softDelete(id);
}
@Patch(':id/restore')
@ApiOperation({ summary: 'Restore a soft deleted form' })
restore(@Param('id') id: string) {
return this.formService.restore(id);
}
}