Files
lisglosips/apps/api/src/modules/number-library/number-library.controller.ts
T

64 lines
2.7 KiB
TypeScript

import { Body, Controller, Get, Inject, Post, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { AuditAction } from '../audit/audit.metadata.js';
import { CurrentUserParam, RequirePermissions, type CurrentUser } from '../security/security.metadata.js';
import { NumberLibraryService } from './number-library.service.js';
@ApiTags('number-library')
@Controller('number-library')
export class NumberLibraryController {
constructor(@Inject(NumberLibraryService) private readonly numberLibraryService: NumberLibraryService) {}
@Get('cities')
@RequirePermissions('number_library.view')
listCities(@Query() query: unknown) {
return this.numberLibraryService.listCities(query as never);
}
@Post('cities/import')
@RequirePermissions('number_library.manage')
@AuditAction({ module: 'number_library', action: 'import_cities', objectType: 'geo_city' })
importCities(@Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.numberLibraryService.importCities(body as never, currentUser?.id);
}
@Get('phone-segments')
@RequirePermissions('number_library.view')
listPhoneSegments(@Query() query: unknown) {
return this.numberLibraryService.listPhoneSegments(query as never);
}
@Post('phone-segments/import')
@RequirePermissions('number_library.manage')
@AuditAction({ module: 'number_library', action: 'import_phone_segments', objectType: 'phone_number_segment' })
importPhoneSegments(@Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.numberLibraryService.importPhoneSegments(body as never, currentUser?.id);
}
@Get('area-codes')
@RequirePermissions('number_library.view')
listAreaCodes(@Query() query: unknown) {
return this.numberLibraryService.listAreaCodes(query as never);
}
@Post('area-codes/import')
@RequirePermissions('number_library.manage')
@AuditAction({ module: 'number_library', action: 'import_area_codes', objectType: 'phone_area_code' })
importAreaCodes(@Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.numberLibraryService.importAreaCodes(body as never, currentUser?.id);
}
@Get('carrier-prefix-rules')
@RequirePermissions('number_library.view')
listCarrierPrefixRules(@Query() query: unknown) {
return this.numberLibraryService.listCarrierPrefixRules(query as never);
}
@Post('carrier-prefix-rules/import')
@RequirePermissions('number_library.manage')
@AuditAction({ module: 'number_library', action: 'import_carrier_prefix_rules', objectType: 'carrier_prefix_rule' })
importCarrierPrefixRules(@Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
return this.numberLibraryService.importCarrierPrefixRules(body as never, currentUser?.id);
}
}