@@ -23,6 +23,7 @@ import {
2323 EditLongitudinalProfileParameters ,
2424 EditLongitudinalProfileParametersRequest ,
2525} from '@use-cases/plan/EditLongitudinalProfileParameters' ;
26+ import { ConvertComputation , ConvertComputationRequest } from '@use-cases/plan/ConvertComputation' ;
2627
2728export class PlanController {
2829 constructor (
@@ -41,6 +42,7 @@ export class PlanController {
4142 private readonly editTopoBoundaryUseCase : EditTopoBoundary ,
4243 private readonly editTopoSettingUseCase : EditTopoSetting ,
4344 private readonly editLongitudinalProfileParametersUseCase : EditLongitudinalProfileParameters ,
45+ private readonly convertComputationUseCase : ConvertComputation ,
4446 ) { }
4547
4648 async createPlan (
@@ -319,13 +321,18 @@ export class PlanController {
319321 req : HttpRequest < undefined , { project_id : string } , undefined , Record < string , string > , AuthenticateResponse > ,
320322 ) : Promise < HttpResponse < Plan [ ] | Error > > {
321323 try {
322- const repoOptions : RepoOptions = parseQuery ( req . query ! , [ 'type' ] , [ 'created_at' , 'updated_at' ] ) ;
324+ const repoOptions : RepoOptions = parseQuery (
325+ req . query ! ,
326+ [ 'type' , 'bool-computation_only' ] ,
327+ [ 'created_at' , 'updated_at' ] ,
328+ ) ;
323329 repoOptions . filter = repoOptions . filter ?? { } ;
324330 repoOptions . filter [ 'user' ] = req . user ! . id ;
325331 repoOptions . projection = {
326332 id : 1 ,
327333 name : 1 ,
328334 type : 1 ,
335+ computation_only : 1 ,
329336 created_at : 1 ,
330337 updated_at : 1 ,
331338 } ;
@@ -474,4 +481,27 @@ export class PlanController {
474481 return handleError ( e ) ;
475482 }
476483 }
484+
485+ async convertComputation (
486+ req : HttpRequest < ConvertComputationRequest , { plan_id : string } , undefined , undefined , AuthenticateResponse > ,
487+ ) : Promise < HttpResponse < void | Error > > {
488+ try {
489+ const error = PlanValidator . validateConvertComputation ( req . body ) ;
490+ if ( error ) {
491+ return badRequest ( error ) ;
492+ }
493+
494+ await this . convertComputationUseCase . execute ( {
495+ ...req . body ! ,
496+ plan_id : req . params ! . plan_id ,
497+ options : {
498+ filter : { user : req . user ! . id } ,
499+ } ,
500+ } ) ;
501+
502+ return noContent ( ) ;
503+ } catch ( e ) {
504+ return handleError ( e ) ;
505+ }
506+ }
477507}
0 commit comments