55import java .util .List ;
66
77import org .roda .core .data .common .RodaConstants ;
8- import org .roda .core .data .exceptions .AuthorizationDeniedException ;
9- import org .roda .core .data .exceptions .GenericException ;
10- import org .roda .core .data .exceptions .NotFoundException ;
118import org .roda .core .data .exceptions .RODAException ;
12- import org .roda .core .data .exceptions .RequestNotValidException ;
139import org .roda .core .data .v2 .disposal .confirmation .DisposalConfirmation ;
1410import org .roda .core .data .v2 .disposal .confirmation .DisposalConfirmationCreateRequest ;
1511import org .roda .core .data .v2 .disposal .confirmation .DisposalConfirmationForm ;
2016import org .roda .core .data .v2 .index .IndexResult ;
2117import org .roda .core .data .v2 .index .SuggestRequest ;
2218import org .roda .core .data .v2 .jobs .Job ;
23- import org .roda .core .data .v2 .log .LogEntryState ;
2419import org .roda .core .model .utils .UserUtility ;
2520import org .roda .wui .api .v2 .exceptions .RESTException ;
2621import org .roda .wui .api .v2 .exceptions .model .ErrorResponseMessage ;
2924import org .roda .wui .api .v2 .utils .ApiUtils ;
3025import org .roda .wui .api .v2 .utils .CommonServicesUtils ;
3126import org .roda .wui .client .services .DisposalConfirmationRestService ;
32- import org .roda .wui .common .ControllerAssistant ;
3327import org .roda .wui .common .RequestControllerAssistant ;
3428import org .roda .wui .common .model .RequestContext ;
3529import org .roda .wui .common .utils .RequestUtils ;
@@ -111,8 +105,6 @@ public ResponseEntity<StreamingResponseBody> process(RequestContext requestConte
111105 RequestControllerAssistant controllerAssistant ) throws RODAException , RESTException , IOException {
112106 controllerAssistant .setParameters (RodaConstants .CONTROLLER_DISPOSAL_CONFIRMATION_ID_PARAM ,
113107 disposalConfirmationId , "printLayout" , toPrint );
114- // check user permissions
115- controllerAssistant .checkRoles (requestContext .getUser ());
116108
117109 // delegate and return
118110 return ApiUtils .okResponse (
@@ -128,8 +120,6 @@ public Job destroyRecordsInDisposalConfirmation(@RequestBody SelectedItemsReques
128120 public Job process (RequestContext requestContext , RequestControllerAssistant controllerAssistant )
129121 throws RODAException , RESTException {
130122 controllerAssistant .setParameters (RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
131- // check user permissions
132- controllerAssistant .checkRoles (requestContext .getUser ());
133123
134124 // delegate
135125 return disposalConfirmationService .destroyRecordsInDisposalConfirmation (requestContext .getUser (),
@@ -140,77 +130,47 @@ public Job process(RequestContext requestContext, RequestControllerAssistant con
140130
141131 @ Override
142132 public Job permanentlyDeleteRecordsInDisposalConfirmation (@ RequestBody SelectedItemsRequest selectedItems ) {
143- final ControllerAssistant controllerAssistant = new ControllerAssistant () {};
144- RequestContext requestContext = RequestUtils .parseHTTPRequest (request );
145- LogEntryState state = LogEntryState .SUCCESS ;
146-
147- try {
148- // check user permissions
149- controllerAssistant .checkRoles (requestContext .getUser ());
150-
151- // delegate
152- return disposalConfirmationService .permanentlyDeleteRecordsInDisposalConfirmation (requestContext .getUser (),
153- CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ));
154- } catch (AuthorizationDeniedException e ) {
155- state = LogEntryState .UNAUTHORIZED ;
156- throw new RESTException (e );
157- } catch (RODAException e ) {
158- state = LogEntryState .FAILURE ;
159- throw new RESTException (e );
160- } finally {
161- // register action
162- controllerAssistant .registerAction (requestContext , state , RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
163- }
133+ return requestHandler .processRequestWithTransaction (new RequestHandler .RequestProcessor <Job >() {
134+ @ Override
135+ public Job process (RequestContext requestContext , RequestControllerAssistant controllerAssistant )
136+ throws RODAException , RESTException , IOException {
137+ controllerAssistant .setParameters (RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
138+
139+ // delegate
140+ return disposalConfirmationService .permanentlyDeleteRecordsInDisposalConfirmation (requestContext .getUser (),
141+ CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ));
142+ }
143+ });
164144 }
165145
166146 @ Override
167147 public Job restoreDisposalConfirmation (@ RequestBody SelectedItemsRequest selectedItems ) {
168- final ControllerAssistant controllerAssistant = new ControllerAssistant () {};
169- RequestContext requestContext = RequestUtils .parseHTTPRequest (request );
170- LogEntryState state = LogEntryState .SUCCESS ;
171-
172- try {
173- // check user permissions
174- controllerAssistant .checkRoles (requestContext .getUser ());
175-
176- // delegate
177- return disposalConfirmationService .restoreRecordsInDisposalConfirmation (requestContext .getUser (),
178- CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ));
179- } catch (AuthorizationDeniedException e ) {
180- state = LogEntryState .UNAUTHORIZED ;
181- throw new RESTException (e );
182- } catch (GenericException | NotFoundException | RequestNotValidException e ) {
183- state = LogEntryState .FAILURE ;
184- throw new RESTException (e );
185- } finally {
186- // register action
187- controllerAssistant .registerAction (requestContext , state , RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
188- }
148+ return requestHandler .processRequestWithTransaction (new RequestHandler .RequestProcessor <Job >() {
149+ @ Override
150+ public Job process (RequestContext requestContext , RequestControllerAssistant controllerAssistant )
151+ throws RODAException , RESTException , IOException {
152+ controllerAssistant .setParameters (RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
153+
154+ // delegate
155+ return disposalConfirmationService .restoreRecordsInDisposalConfirmation (requestContext .getUser (),
156+ CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ));
157+ }
158+ });
189159 }
190160
191161 @ Override
192162 public Job deleteDisposalConfirmation (@ RequestBody SelectedItemsRequest selectedItems , String details ) {
193- ControllerAssistant controllerAssistant = new ControllerAssistant () {};
194- RequestContext requestContext = RequestUtils .parseHTTPRequest (request );
195- LogEntryState state = LogEntryState .SUCCESS ;
196-
197- try {
198- // check user permissions
199- controllerAssistant .checkRoles (requestContext .getUser ());
200-
201- // delegate
202- return disposalConfirmationService .deleteDisposalConfirmation (requestContext .getUser (),
203- CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ), details );
204- } catch (AuthorizationDeniedException e ) {
205- state = LogEntryState .UNAUTHORIZED ;
206- throw new RESTException (e );
207- } catch (RODAException e ) {
208- state = LogEntryState .FAILURE ;
209- throw new RESTException (e );
210- } finally {
211- // register action
212- controllerAssistant .registerAction (requestContext , state , RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
213- }
163+ return requestHandler .processRequestWithTransaction (new RequestHandler .RequestProcessor <Job >() {
164+ @ Override
165+ public Job process (RequestContext requestContext , RequestControllerAssistant controllerAssistant )
166+ throws RODAException , RESTException , IOException {
167+ controllerAssistant .setParameters (RodaConstants .CONTROLLER_SELECTED_PARAM , selectedItems );
168+
169+ // delegate
170+ return disposalConfirmationService .deleteDisposalConfirmation (requestContext .getUser (),
171+ CommonServicesUtils .convertSelectedItems (selectedItems , DisposalConfirmation .class ), details );
172+ }
173+ });
214174 }
215175
216176 @ Override
0 commit comments