Files
dh-inspeccion-v2/api-v3/src/asset-master/asset-geometries.controller.ts
T

66 lines
1.8 KiB
TypeScript

import {
Body,
Controller,
Delete,
Get,
Param,
ParseUUIDPipe,
Put,
Query,
Req,
} from '@nestjs/common';
import { RequirePermissions } from '../authorization/decorators/require-permissions.decorator';
import { CurrentAuth } from '../auth/decorators/current-auth.decorator';
import type {
AuthPrincipal,
RequestWithContext,
} from '../common/http/request-context';
import { AssetGeometriesService } from './asset-geometries.service';
import { MapAssetsQueryDto } from './dto/map-assets-query.dto';
import { UpsertAssetGeometryDto } from './dto/upsert-asset-geometry.dto';
@Controller('assets')
export class AssetGeometriesController {
constructor(private readonly geometries: AssetGeometriesService) {}
@Get(':id/geometry')
@RequirePermissions('assets.read')
get(
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
) {
return this.geometries.get(id);
}
@Put(':id/geometry')
@RequirePermissions('assets.update_geometry')
upsert(
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
@Body() dto: UpsertAssetGeometryDto,
@CurrentAuth() principal: AuthPrincipal,
@Req() request: RequestWithContext,
) {
return this.geometries.upsert(id, dto, principal, request);
}
@Delete(':id/geometry')
@RequirePermissions('assets.update_geometry')
remove(
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
@CurrentAuth() principal: AuthPrincipal,
@Req() request: RequestWithContext,
) {
return this.geometries.remove(id, principal, request);
}
}
@Controller('map/assets')
export class MapAssetsController {
constructor(private readonly geometries: AssetGeometriesService) {}
@Get()
@RequirePermissions('assets.read')
map(@Query() query: MapAssetsQueryDto) {
return this.geometries.map(query);
}
}