This commit is contained in:
2020-05-15 20:30:58 +00:00
parent 8c30d26b42
commit 87437f60de
2 changed files with 38 additions and 3 deletions

View File

@@ -99,6 +99,40 @@ namespace AyaNova.Api.Controllers
return Ok(ApiOkResponse.Response(res, true));
}
/// <summary>
/// Get the top level ancestor of provided type and id
/// (e.g. find the WorkOrder principle for a WorkOrderItemPart object descendent)
/// </summary>
/// <param name="ayaType"></param>
/// <param name="id"></param>
/// <param name="phrase"></param>
/// <param name="max"></param>
/// <returns>A search result excerpt of object</returns>
[HttpGet("ancestor/{ayaType}/{id}")]
public async Task<IActionResult> GetAncestor([FromRoute] AyaType ayaType, [FromRoute] long id, [FromQuery] string phrase, [FromQuery] int max = 80)
{
if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!Authorized.HasReadFullRole(HttpContext.Items, ayaType))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
if (id == 0)
return NotFound();
//pawn this off to biz object static methods as appropriate
//if not in this list of types then it has no ancestor so just return the same values back
//or, maybe just fail code so people don't think they should run every object through here when they want to open it foolishly / needlessly / ignorantely
// var res = await Search.GetInfoAsync(ct, UserTranslationIdFromContext.Id(HttpContext.Items),
// UserRolesFromContext.Roles(HttpContext.Items), UserIdFromContext.Id(HttpContext.Items), phrase, max, ayaType, id);
return Ok(ApiOkResponse.Response(res, true));
}
//------------