64 lines
2.7 KiB
TypeScript
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);
|
|
}
|
|
}
|