1313use Monarc \FrontOffice \Entity \Anr ;
1414use Monarc \FrontOffice \Service \AnrInstanceRiskOpService ;
1515use Monarc \FrontOffice \Service \AnrSupervisorService ;
16+ use Monarc \FrontOffice \Validator \InputValidator \InstanceRiskOp \PatchDelegatedInstanceRiskOpDataInputValidator ;
1617use Monarc \FrontOffice \Validator \InputValidator \InstanceRiskOp \PostSpecificInstanceRiskOpDataInputValidator ;
1718use Monarc \FrontOffice \Validator \InputValidator \InstanceRiskOp \UpdateInstanceRiskOpDataInputValidator ;
1819
@@ -25,7 +26,8 @@ public function __construct(
2526 private AnrSupervisorService $ anrSupervisorService ,
2627 private PostSpecificInstanceRiskOpDataInputValidator $ postSpecificInstanceRiskOpDataInputValidator ,
2728 private UpdateInstanceRiskOpDataInputValidator $ updateInstanceRiskOpDataInputValidator ,
28- private PatchInstanceRiskOpDataInputValidator $ patchInstanceRiskOpDataInputValidator
29+ private PatchInstanceRiskOpDataInputValidator $ patchInstanceRiskOpDataInputValidator ,
30+ private PatchDelegatedInstanceRiskOpDataInputValidator $ patchDelegatedInstanceRiskOpDataInputValidator
2931 ) {
3032 }
3133
@@ -61,7 +63,47 @@ public function update($id, $data)
6163 $ validatedData
6264 );
6365
64- return $ this ->getPreparedJsonResponse ([
66+ return $ this ->getPreparedJsonResponse ($ this ->prepareInstanceRiskOpResponse ($ instanceRiskOp ));
67+ }
68+
69+ /**
70+ * @param array $data
71+ */
72+ public function patch ($ id , $ data )
73+ {
74+ /** @var Anr $anr */
75+ $ anr = $ this ->getRequest ()->getAttribute ('anr ' );
76+
77+ if (array_key_exists ('instanceRiskScaleId ' , $ data )) {
78+ $ this ->validatePostParams ($ this ->patchInstanceRiskOpDataInputValidator , $ data );
79+ $ instanceRiskOp = $ this ->anrInstanceRiskOpService ->updateScaleValue (
80+ $ anr ,
81+ (int )$ id ,
82+ $ this ->patchInstanceRiskOpDataInputValidator ->getValidData ()
83+ );
84+
85+ return $ this ->getPreparedJsonResponse ([
86+ 'cacheBrutRisk ' => $ instanceRiskOp ->getCacheBrutRisk (),
87+ 'cacheNetRisk ' => $ instanceRiskOp ->getCacheNetRisk (),
88+ 'cacheTargetedRisk ' => $ instanceRiskOp ->getCacheTargetedRisk (),
89+ ]);
90+ }
91+
92+ $ this ->validatePostParams ($ this ->patchDelegatedInstanceRiskOpDataInputValidator , $ data );
93+ $ validatedData = $ this ->filterValidatedData ($ data , $ this ->patchDelegatedInstanceRiskOpDataInputValidator ->getValidData ());
94+
95+ $ instanceRiskOp = $ this ->anrInstanceRiskOpService ->update (
96+ $ anr ,
97+ (int )$ id ,
98+ $ validatedData
99+ );
100+
101+ return $ this ->getPreparedJsonResponse ($ this ->prepareInstanceRiskOpResponse ($ instanceRiskOp ));
102+ }
103+
104+ private function prepareInstanceRiskOpResponse ($ instanceRiskOp ): array
105+ {
106+ return [
65107 'cacheBrutRisk ' => $ instanceRiskOp ->getCacheBrutRisk (),
66108 'cacheNetRisk ' => $ instanceRiskOp ->getCacheNetRisk (),
67109 'cacheTargetedRisk ' => $ instanceRiskOp ->getCacheTargetedRisk (),
@@ -92,29 +134,7 @@ public function update($id, $data)
92134 'residualRiskDecidedByName ' => $ instanceRiskOp ->getResidualRiskDecidedBySupervisor ()?->getName(),
93135 'residualRiskDecidedAt ' => $ instanceRiskOp ->getResidualRiskDecidedAt ()?->format('Y-m-d ' ),
94136 'residualRiskJustification ' => $ instanceRiskOp ->getResidualRiskJustification (),
95- ]);
96- }
97-
98- /**
99- * @param array $data
100- */
101- public function patch ($ id , $ data )
102- {
103- $ this ->validatePostParams ($ this ->patchInstanceRiskOpDataInputValidator , $ data );
104- /** @var Anr $anr */
105- $ anr = $ this ->getRequest ()->getAttribute ('anr ' );
106-
107- $ instanceRiskOp = $ this ->anrInstanceRiskOpService ->updateScaleValue (
108- $ anr ,
109- (int )$ id ,
110- $ this ->patchInstanceRiskOpDataInputValidator ->getValidData ()
111- );
112-
113- return $ this ->getPreparedJsonResponse ([
114- 'cacheBrutRisk ' => $ instanceRiskOp ->getCacheBrutRisk (),
115- 'cacheNetRisk ' => $ instanceRiskOp ->getCacheNetRisk (),
116- 'cacheTargetedRisk ' => $ instanceRiskOp ->getCacheTargetedRisk (),
117- ]);
137+ ];
118138 }
119139
120140 public function delete ($ id )
0 commit comments