mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 22:30:55 +00:00
67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Param,
|
|
ParseUUIDPipe,
|
|
Patch,
|
|
Post,
|
|
Query,
|
|
} from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
|
|
import { FleetManage, FleetView } from '../../common/booking-guards';
|
|
import { GpsTrackingService } from './gps-tracking.service';
|
|
import { RegisterDeviceDto, UpdateDeviceDto } from './dto/gps-device.dto';
|
|
|
|
@ApiTags('gps-tracking')
|
|
@ApiBearerAuth()
|
|
@Controller('gps')
|
|
@FleetView()
|
|
export class GpsTrackingController {
|
|
constructor(private readonly gps: GpsTrackingService) {}
|
|
|
|
@Get('positions/latest')
|
|
@ApiOperation({ summary: 'Latest fix per device (live map feed)' })
|
|
latest() {
|
|
return this.gps.latest();
|
|
}
|
|
|
|
@Get('positions/:vehicleId/history')
|
|
@ApiOperation({ summary: 'Position history for a vehicle' })
|
|
history(
|
|
@Param('vehicleId', ParseUUIDPipe) vehicleId: string,
|
|
@Query('limit') limit?: string,
|
|
) {
|
|
return this.gps.history(vehicleId, limit ? parseInt(limit, 10) : undefined);
|
|
}
|
|
|
|
@Get('devices')
|
|
@ApiOperation({ summary: 'List GPS trackers' })
|
|
listDevices() {
|
|
return this.gps.listDevices();
|
|
}
|
|
|
|
@Post('devices')
|
|
@FleetManage()
|
|
@ApiOperation({ summary: 'Register a GPS tracker' })
|
|
register(@Body() dto: RegisterDeviceDto) {
|
|
return this.gps.registerDevice(dto);
|
|
}
|
|
|
|
@Patch('devices/:id')
|
|
@FleetManage()
|
|
@ApiOperation({ summary: 'Update a GPS tracker (name / assigned vehicle)' })
|
|
update(@Param('id', ParseUUIDPipe) id: string, @Body() dto: UpdateDeviceDto) {
|
|
return this.gps.updateDevice(id, dto);
|
|
}
|
|
|
|
@Delete('devices/:id')
|
|
@FleetManage()
|
|
@ApiOperation({ summary: 'Delete a GPS tracker' })
|
|
remove(@Param('id', ParseUUIDPipe) id: string) {
|
|
return this.gps.removeDevice(id);
|
|
}
|
|
}
|