From 85ea3e60bb2546fda9f4647dc448d2f675e2f145 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 9 May 2020 19:32:08 +0000 Subject: [PATCH] --- .../Controllers/WorkOrderController.cs | 127 ++++++------------ 1 file changed, 40 insertions(+), 87 deletions(-) diff --git a/server/AyaNova/Controllers/WorkOrderController.cs b/server/AyaNova/Controllers/WorkOrderController.cs index a64dfdf8..e1fbecd5 100644 --- a/server/AyaNova/Controllers/WorkOrderController.cs +++ b/server/AyaNova/Controllers/WorkOrderController.cs @@ -139,37 +139,25 @@ namespace AyaNova.Api.Controllers return Ok(ApiOkResponse.Response(new { ConcurrencyToken = o.ConcurrencyToken }, true)); } - - //TODO: will need to traverse, don't need it now for PROPOSAL testing so not coding it yet - // /// - // /// Delete WorkOrder - // /// - // /// - // /// Ok - // [HttpDelete("{id}")] - // public async Task DeleteWorkOrder([FromRoute] long id) - // { - // if (!serverState.IsOpen) - // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - - // if (!ModelState.IsValid) - // return BadRequest(new ApiErrorResponse(ModelState)); - - // //Instantiate the business object handler - // WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); - - // var o = await biz.GetAsync(id, false); - // if (o == null) - // return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); - - // if (!Authorized.HasDeleteRole(HttpContext.Items, biz.BizType)) - // return StatusCode(403, new ApiNotAuthorizedResponse()); - - // if (!await biz.DeleteAsync(o)) - // return BadRequest(new ApiErrorResponse(biz.Errors)); - - // return NoContent(); - // } + /// + /// Delete WorkOrder + /// + /// + /// NoContent + [HttpDelete("{id}")] + public async Task DeleteWorkOrder([FromRoute] long id) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); + if (!Authorized.HasDeleteRole(HttpContext.Items, AyaType.WorkOrder)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!await biz.DeleteAsync(id)) + return BadRequest(new ApiErrorResponse(biz.Errors)); + return NoContent(); + } #endregion WorkOrderTopLevel routes @@ -255,58 +243,25 @@ namespace AyaNova.Api.Controllers } - - - - - // /// - // /// Delete WorkOrderItem - // /// - // /// - // /// Ok-no content - // [HttpDelete("items/{WorkOrderItemId}")] - // public async Task DeleteWorkOrderItem([FromRoute] long workOrderItemId) - // { - // //NOTE: we don't need the workorder id in the route because the workorder item must contain the workorder id anyway - - // //WorkOrder/{woid}/WorkOrderItems <- all workorderitems, post to add new, put to update all as a collection - // //WorkOrder/{WorkOrderId}/WorkOrderItems - // if (!serverState.IsOpen) - // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - - // if (!ModelState.IsValid) - // return BadRequest(new ApiErrorResponse(ModelState)); - - // //Instantiate the business object handler - // WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); - - // if (!Authorized.HasDeleteRole(HttpContext.Items, biz.BizType)) - // return StatusCode(403, new ApiNotAuthorizedResponse()); - - // //******************************************************************************* - // //NOTE: I'm thinking there should be no db access in controller - // //let the biz object return not found if necessary - // //******************************************************************************* - - // // var o = await biz.GetAsync(workOrderId, false); - // // if (o == null) - // // return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); - // // //Make sure the item exists first before getting into it - // // if (!o.WorkOrderItems.Exists(m => m.Id == workOrderItemId)) - // // return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); - - - - // //stubbed out for now just to see routes - // // if (!await biz.DeleteItemsAsync(o)) - // // return BadRequest(new ApiErrorResponse(biz.Errors)); - - // // return NoContent(); - - // return StatusCode(501); - // } - - + /// + /// Delete WorkOrderItem + /// + /// + /// NoContent + [HttpDelete("{id}")] + public async Task DeleteWorkOrderItem([FromRoute] long id) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); + if (!Authorized.HasDeleteRole(HttpContext.Items, AyaType.WorkOrderItem)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!await biz.ItemDeleteAsync(id)) + return BadRequest(new ApiErrorResponse(biz.Errors)); + return NoContent(); + } #endregion workorderitem @@ -353,7 +308,7 @@ namespace AyaNova.Api.Controllers if (!serverState.IsOpen) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); - if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) + if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrderItemLabor)) return StatusCode(403, new ApiNotAuthorizedResponse()); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); @@ -419,8 +374,6 @@ namespace AyaNova.Api.Controllers - - #region WorkOrderItemPart /// @@ -458,7 +411,7 @@ namespace AyaNova.Api.Controllers if (!serverState.IsOpen) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); - if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) + if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrderItemPart)) return StatusCode(403, new ApiNotAuthorizedResponse()); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState));