All checks were successful
Test Asgard Runner / test (push) Successful in 3s
maps/ gitignore rule was catching backend-nest/src/modules/maps/. Scoped to /maps/ (root only) so runtime data is still ignored but source code isn't. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import { Controller, Get, Delete, Put, Body, Param, UseGuards } from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
|
|
import { MapsService } from './maps.service';
|
|
import { UpdateRotationDto } from './dto/update-rotation.dto';
|
|
import { CurrentTenant } from '../../common/decorators/current-tenant.decorator';
|
|
import { RequirePermission } from '../../common/decorators/require-permission.decorator';
|
|
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
|
|
import { PermissionsGuard } from '../../common/guards/permissions.guard';
|
|
|
|
@ApiTags('maps')
|
|
@ApiBearerAuth()
|
|
@Controller('maps')
|
|
@UseGuards(JwtAuthGuard, PermissionsGuard)
|
|
export class MapsController {
|
|
constructor(private readonly mapsService: MapsService) {}
|
|
|
|
@Get()
|
|
@RequirePermission('map.view')
|
|
@ApiOperation({ summary: 'Get all maps for tenant' })
|
|
getMaps(@CurrentTenant() licenseId: string) {
|
|
return this.mapsService.getMaps(licenseId);
|
|
}
|
|
|
|
@Delete(':id')
|
|
@RequirePermission('map.manage')
|
|
@ApiOperation({ summary: 'Delete map from library' })
|
|
async deleteMap(@CurrentTenant() licenseId: string, @Param('id') mapId: string) {
|
|
await this.mapsService.deleteMap(licenseId, mapId);
|
|
return { deleted: true };
|
|
}
|
|
|
|
@Get('rotation')
|
|
@RequirePermission('map.view')
|
|
@ApiOperation({ summary: 'Get current map rotation' })
|
|
getRotation(@CurrentTenant() licenseId: string) {
|
|
return this.mapsService.getRotation(licenseId);
|
|
}
|
|
|
|
@Put('rotation')
|
|
@RequirePermission('map.manage')
|
|
@ApiOperation({ summary: 'Update map rotation order' })
|
|
updateRotation(@CurrentTenant() licenseId: string, @Body() dto: UpdateRotationDto) {
|
|
return this.mapsService.updateRotation(licenseId, dto);
|
|
}
|
|
}
|