Files
twenty/packages/twenty-server/src/engine/metadata-modules/route-trigger/route-trigger.controller.ts
T
martmull 7f1e69740a 1895 extensibility v1 application tokens (#16365)
First PR to implement application tokens
- add new application role in twenty-server
- move duplicated constants and types to twenty-shared
- will  add role configuration utils into twenty-sdk in another PR
2025-12-08 10:42:46 +01:00

67 lines
1.7 KiB
TypeScript

import {
Controller,
Delete,
Get,
Patch,
Post,
Put,
Req,
UseFilters,
UseGuards,
} from '@nestjs/common';
import { Request } from 'express';
import { HTTPMethod } from 'twenty-shared/types';
import { NoPermissionGuard } from 'src/engine/guards/no-permission.guard';
import { PublicEndpointGuard } from 'src/engine/guards/public-endpoint.guard';
import { RouteTriggerRestApiExceptionFilter } from 'src/engine/metadata-modules/route-trigger/exceptions/route-trigger-rest-api-exception-filter';
import { RouteTriggerService } from 'src/engine/metadata-modules/route-trigger/route-trigger.service';
@Controller('s')
@UseGuards(PublicEndpointGuard, NoPermissionGuard)
@UseFilters(RouteTriggerRestApiExceptionFilter)
export class RouteTriggerController {
constructor(private readonly routeTriggerService: RouteTriggerService) {}
@Get('*path')
async get(@Req() request: Request) {
return await this.routeTriggerService.handle({
request,
httpMethod: HTTPMethod.GET,
});
}
@Post('*path')
async post(@Req() request: Request) {
return await this.routeTriggerService.handle({
request,
httpMethod: HTTPMethod.POST,
});
}
@Put('*path')
async put(@Req() request: Request) {
return await this.routeTriggerService.handle({
request,
httpMethod: HTTPMethod.PUT,
});
}
@Patch('*path')
async patch(@Req() request: Request) {
return await this.routeTriggerService.handle({
request,
httpMethod: HTTPMethod.PATCH,
});
}
@Delete('*path')
async delete(@Req() request: Request) {
return await this.routeTriggerService.handle({
request,
httpMethod: HTTPMethod.DELETE,
});
}
}