63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Body,
|
|
Patch,
|
|
Param,
|
|
Delete,
|
|
Query,
|
|
ParseIntPipe,
|
|
DefaultValuePipe,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { RecurrenceRulesService } from './recurrence-rules.service';
|
|
import { CreateRecurrenceRuleDto } from './dto/create-recurrence-rule.dto';
|
|
import { UpdateRecurrenceRuleDto } from './dto/update-recurrence-rule.dto';
|
|
import { QueryRecurrenceRuleDto } from './dto/query-recurrence-rule.dto';
|
|
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
|
import { Roles } from '../auth/roles.decorator';
|
|
import { Role } from '../auth/role.enum';
|
|
import { RolesGuard } from '../auth/roles.guard';
|
|
|
|
@Controller('recurrence-rules')
|
|
@UseGuards(JwtAuthGuard, RolesGuard)
|
|
@Roles(Role.Admin)
|
|
export class RecurrenceRulesController {
|
|
constructor(private readonly recurrenceRulesService: RecurrenceRulesService) {}
|
|
|
|
@Post()
|
|
create(@Body() createRecurrenceRuleDto: CreateRecurrenceRuleDto) {
|
|
return this.recurrenceRulesService.create(createRecurrenceRuleDto);
|
|
}
|
|
|
|
@Get()
|
|
findAll(@Query() queryParams: QueryRecurrenceRuleDto) {
|
|
return this.recurrenceRulesService.findAll(queryParams);
|
|
}
|
|
|
|
@Get('search')
|
|
search(
|
|
@Query('q') term: string,
|
|
@Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
|
|
@Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
|
|
) {
|
|
return this.recurrenceRulesService.search(term, { page, limit });
|
|
}
|
|
|
|
@Get(':id')
|
|
findOne(@Param('id', ParseIntPipe) id: number) {
|
|
return this.recurrenceRulesService.findOne(id);
|
|
}
|
|
|
|
@Patch(':id')
|
|
update(@Param('id', ParseIntPipe) id: number, @Body() updateRecurrenceRuleDto: UpdateRecurrenceRuleDto) {
|
|
return this.recurrenceRulesService.update(id, updateRecurrenceRuleDto);
|
|
}
|
|
|
|
@Delete(':id')
|
|
remove(@Param('id', ParseIntPipe) id: number) {
|
|
return this.recurrenceRulesService.remove(id);
|
|
}
|
|
} |