F4: expose explicit inspection lifecycle endpoints
This commit is contained in:
@@ -13,7 +13,7 @@ import {
|
|||||||
import { CurrentAuth } from '../auth/decorators/current-auth.decorator';
|
import { CurrentAuth } from '../auth/decorators/current-auth.decorator';
|
||||||
import { RequirePermissions } from '../authorization/decorators/require-permissions.decorator';
|
import { RequirePermissions } from '../authorization/decorators/require-permissions.decorator';
|
||||||
import type { AuthPrincipal, RequestWithContext } from '../common/http/request-context';
|
import type { AuthPrincipal, RequestWithContext } from '../common/http/request-context';
|
||||||
import { ChangeInspectionVisitStatusDto } from './dto/change-inspection-visit-status.dto';
|
import { CancelInspectionVisitDto } from './dto/cancel-inspection-visit.dto';
|
||||||
import { CloseInspectionVisitDto } from './dto/close-inspection-visit.dto';
|
import { CloseInspectionVisitDto } from './dto/close-inspection-visit.dto';
|
||||||
import { CreateInspectionVisitDto } from './dto/create-inspection-visit.dto';
|
import { CreateInspectionVisitDto } from './dto/create-inspection-visit.dto';
|
||||||
import { ExcludeInspectionVisitAssetDto } from './dto/exclude-inspection-visit-asset.dto';
|
import { ExcludeInspectionVisitAssetDto } from './dto/exclude-inspection-visit-asset.dto';
|
||||||
@@ -21,11 +21,15 @@ import { ListInspectionVisitsQueryDto } from './dto/list-inspection-visits-query
|
|||||||
import { ReplaceInspectionVisitAssetsDto } from './dto/replace-inspection-visit-assets.dto';
|
import { ReplaceInspectionVisitAssetsDto } from './dto/replace-inspection-visit-assets.dto';
|
||||||
import { ReplaceInspectionVisitTeamDto } from './dto/replace-inspection-visit-team.dto';
|
import { ReplaceInspectionVisitTeamDto } from './dto/replace-inspection-visit-team.dto';
|
||||||
import { UpdateInspectionVisitDto } from './dto/update-inspection-visit.dto';
|
import { UpdateInspectionVisitDto } from './dto/update-inspection-visit.dto';
|
||||||
|
import { InspectionVisitLifecycleService } from './inspection-visit-lifecycle.service';
|
||||||
import { InspectionVisitsService } from './inspection-visits.service';
|
import { InspectionVisitsService } from './inspection-visits.service';
|
||||||
|
|
||||||
@Controller('inspection-visits')
|
@Controller('inspection-visits')
|
||||||
export class InspectionVisitsController {
|
export class InspectionVisitsController {
|
||||||
constructor(private readonly visits: InspectionVisitsService) {}
|
constructor(
|
||||||
|
private readonly visits: InspectionVisitsService,
|
||||||
|
private readonly lifecycle: InspectionVisitLifecycleService,
|
||||||
|
) {}
|
||||||
|
|
||||||
@Get()
|
@Get()
|
||||||
@RequirePermissions('inspections.read')
|
@RequirePermissions('inspections.read')
|
||||||
@@ -135,15 +139,14 @@ export class InspectionVisitsController {
|
|||||||
return this.visits.replaceTeam(id, dto, principal, request);
|
return this.visits.replaceTeam(id, dto, principal, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Put(':id/status')
|
@Post(':id/plan')
|
||||||
@RequirePermissions('inspections.manage')
|
@RequirePermissions('inspections.manage')
|
||||||
changeStatus(
|
plan(
|
||||||
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
|
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
|
||||||
@Body() dto: ChangeInspectionVisitStatusDto,
|
|
||||||
@CurrentAuth() principal: AuthPrincipal,
|
@CurrentAuth() principal: AuthPrincipal,
|
||||||
@Req() request: RequestWithContext,
|
@Req() request: RequestWithContext,
|
||||||
) {
|
) {
|
||||||
return this.visits.changeStatus(id, dto, principal, request);
|
return this.lifecycle.plan(id, principal, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post(':id/start')
|
@Post(':id/start')
|
||||||
@@ -153,7 +156,7 @@ export class InspectionVisitsController {
|
|||||||
@CurrentAuth() principal: AuthPrincipal,
|
@CurrentAuth() principal: AuthPrincipal,
|
||||||
@Req() request: RequestWithContext,
|
@Req() request: RequestWithContext,
|
||||||
) {
|
) {
|
||||||
return this.visits.start(id, principal, request);
|
return this.lifecycle.start(id, principal, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post(':id/close')
|
@Post(':id/close')
|
||||||
@@ -164,6 +167,17 @@ export class InspectionVisitsController {
|
|||||||
@CurrentAuth() principal: AuthPrincipal,
|
@CurrentAuth() principal: AuthPrincipal,
|
||||||
@Req() request: RequestWithContext,
|
@Req() request: RequestWithContext,
|
||||||
) {
|
) {
|
||||||
return this.visits.close(id, dto, principal, request);
|
return this.lifecycle.close(id, dto, principal, request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Post(':id/cancel')
|
||||||
|
@RequirePermissions('inspections.manage')
|
||||||
|
cancel(
|
||||||
|
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
|
||||||
|
@Body() dto: CancelInspectionVisitDto,
|
||||||
|
@CurrentAuth() principal: AuthPrincipal,
|
||||||
|
@Req() request: RequestWithContext,
|
||||||
|
) {
|
||||||
|
return this.lifecycle.cancel(id, dto, principal, request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user