This commit is contained in:
2020-05-07 23:54:22 +00:00
parent b288c07bd9
commit 22a3b973d8
2 changed files with 33 additions and 84 deletions

View File

@@ -325,148 +325,97 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemLabor /// Create WorkOrderItemLabor
/// </summary> /// </summary>
/// <param name="newObject"></param> /// <param name="newObject">WorkOrderItemLabor level only no descendents</param>
/// <param name="apiVersion">From route path</param> /// <param name="apiVersion"></param>
/// <returns></returns> /// <returns>WorkOrderItemLabor object (no descendents)</returns>
[HttpPost("items/labors")] [HttpPost("items")]
public async Task<IActionResult> PostWorkOrderItemLabor([FromBody] WorkOrderItemLabor newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemLabor([FromBody] WorkOrderItemLabor newObject, ApiVersion apiVersion)
{ {
//NOTE: we don't need the workorder id in the route because the workorder item must contain the workorder id anyway
if (!serverState.IsOpen) if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
//Instantiate the business object handler
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasCreateRole(HttpContext.Items, AyaType.WorkOrderItemLabor))
//If a user has change roles
if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderItemLabor o = await biz.CreateLaborAsync(newObject);
// //Create and validate if (o == null)
// WorkOrderItemLabor o = await biz.CreateAsync(newObject); return BadRequest(new ApiErrorResponse(biz.Errors));
// if (o == null) else
// return BadRequest(new ApiErrorResponse(biz.Errors)); return CreatedAtAction(nameof(WorkOrderController.GetWorkOrderItemLabor), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
// else
// return CreatedAtAction(nameof(WorkOrderController.GetWorkOrder), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
return StatusCode(501);
} }
/// <summary> /// <summary>
/// Get WorkOrderItemLabor object /// Get WorkOrderItemLabor object
/// </summary> /// </summary>
/// <param name="WorkOrderItemLaborId"></param> /// <param name="WorkOrderItemLaborId"></param>
/// <returns>A single WorkOrderItemLabor</returns> /// <returns>A single WorkOrderItemLabor</returns>
[HttpGet("items/labors/{WorkOrderItemLaborId}")] [HttpGet("items/{WorkOrderItemLaborId}")]
public async Task<IActionResult> GetWorkOrderItemLabor([FromRoute] long WorkOrderItemLaborId) public async Task<IActionResult> GetWorkOrderItemLabor([FromRoute] long WorkOrderItemLaborId)
{ {
if (!serverState.IsOpen) if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
//Instantiate the business object handler
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
//NOTE: This is the first check and often the only check but in some cases with some objects this will also need to check biz object rules
if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
var o = await biz.GetLaborAsync(WorkOrderItemLaborId);
// var o = await biz.GetAsync(id); if (o == null)
// if (o == null) return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
// return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); return Ok(ApiOkResponse.Response(o, !Authorized.HasModifyRole(HttpContext.Items, AyaType.WorkOrderItemLabor)));
// // NOTE: HERE would be the second check of biz rules before returning the object
// // in cases where there is also a business rule to affect retrieval on top of basic rights
// return Ok(ApiOkResponse.Response(o, !Authorized.HasModifyRole(HttpContext.Items, biz.BizType)));
return StatusCode(501);
} }
#endregion WorkOrderItemLabor #endregion WorkOrderItemLabor
#region WorkOrderItemPart #region WorkOrderItemPart
/// <summary> /// <summary>
/// Create WorkOrderItemPart /// Create WorkOrderItemPart
/// </summary> /// </summary>
/// <param name="newObject"></param> /// <param name="newObject">WorkOrderItemPart level only no descendents</param>
/// <param name="apiVersion">From route path</param> /// <param name="apiVersion"></param>
/// <returns></returns> /// <returns>WorkOrderItemPart object (no descendents)</returns>
[HttpPost("items/parts")] [HttpPost("items")]
public async Task<IActionResult> PostWorkOrderItemPart([FromBody] WorkOrderItemPart newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemPart([FromBody] WorkOrderItemPart newObject, ApiVersion apiVersion)
{ {
//NOTE: we don't need the workorder id in the route because the workorder item must contain the workorder id anyway
if (!serverState.IsOpen) if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
//Instantiate the business object handler
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasCreateRole(HttpContext.Items, AyaType.WorkOrderItemPart))
//If a user has change roles
if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderItemPart o = await biz.CreatePartAsync(newObject);
// //Create and validate if (o == null)
// WorkOrderItemPart o = await biz.CreateAsync(newObject); return BadRequest(new ApiErrorResponse(biz.Errors));
// if (o == null) else
// return BadRequest(new ApiErrorResponse(biz.Errors)); return CreatedAtAction(nameof(WorkOrderController.GetWorkOrderItemPart), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
// else
// return CreatedAtAction(nameof(WorkOrderController.GetWorkOrder), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
return StatusCode(501);
} }
/// <summary> /// <summary>
/// Get WorkOrderItemPart object /// Get WorkOrderItemPart object
/// </summary> /// </summary>
/// <param name="WorkOrderItemPartId"></param> /// <param name="WorkOrderItemPartId"></param>
/// <returns>A single WorkOrderItemPart</returns> /// <returns>A single WorkOrderItemPart</returns>
[HttpGet("items/parts/{WorkOrderItemPartId}")] [HttpGet("items/{WorkOrderItemPartId}")]
public async Task<IActionResult> GetWorkOrderItemPart([FromRoute] long WorkOrderItemPartId) public async Task<IActionResult> GetWorkOrderItemPart([FromRoute] long WorkOrderItemPartId)
{ {
if (!serverState.IsOpen) if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
//Instantiate the business object handler
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
//NOTE: This is the first check and often the only check but in some cases with some objects this will also need to check biz object rules
if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
var o = await biz.GetPartAsync(WorkOrderItemPartId);
// var o = await biz.GetAsync(id); if (o == null)
// if (o == null) return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
// return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); return Ok(ApiOkResponse.Response(o, !Authorized.HasModifyRole(HttpContext.Items, AyaType.WorkOrderItemPart)));
// // NOTE: HERE would be the second check of biz rules before returning the object
// // in cases where there is also a business rule to affect retrieval on top of basic rights
// return Ok(ApiOkResponse.Response(o, !Authorized.HasModifyRole(HttpContext.Items, biz.BizType)));
return StatusCode(501);
} }
#endregion WorkOrderItemPart #endregion WorkOrderItemPart
//------------ //------------

View File

@@ -392,7 +392,7 @@ namespace AyaNova.Biz
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
//CREATE //CREATE
// //
internal async Task<WorkOrderItemLabor> LaborCreateAsync(WorkOrderItemLabor newObject) internal async Task<WorkOrderItemLabor> CreateLaborAsync(WorkOrderItemLabor newObject)
{ {
await LaborValidateAsync(newObject, null); await LaborValidateAsync(newObject, null);
if (HasErrors) if (HasErrors)
@@ -497,7 +497,7 @@ namespace AyaNova.Biz
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
//CREATE //CREATE
// //
internal async Task<WorkOrderItemPart> PartCreateAsync(WorkOrderItemPart newObject) internal async Task<WorkOrderItemPart> CreatePartAsync(WorkOrderItemPart newObject)
{ {
await PartValidateAsync(newObject, null); await PartValidateAsync(newObject, null);
if (HasErrors) if (HasErrors)