refactoring

This commit is contained in:
Hamid Reza Mohammadi 2025-01-24 14:02:32 +03:30
parent d4e1c6658f
commit 69722ad959

View File

@ -30,6 +30,39 @@ namespace RMuseum.Controllers
[Route("api/artifacts")]
public class ArtifactController : Controller
{
/// <summary>
/// gets specified publish artifact item info (including images + attributes)
/// </summary>
/// <param name="artifactUrl"></param>
/// <param name="itemUrl"></param>
/// <returns></returns>
[HttpGet("{artifactUrl}/{itemUrl}")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(RArtifactItemRecordViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> GetArtifactItemByFrienlyUrl(string artifactUrl, string itemUrl)
{
RServiceResult<RArtifactItemRecordViewModel> itemInfo = await _artifactService.GetArtifactItemByFrienlyUrl(artifactUrl, itemUrl, new PublishStatus[] { PublishStatus.Published });
if (!string.IsNullOrEmpty(itemInfo.ExceptionString))
{
return BadRequest(itemInfo.ExceptionString);
}
if (itemInfo.Result == null)
return NotFound();
Response.GetTypedHeaders().LastModified = itemInfo.Result.Item.LastModified;
var requestHeaders = Request.GetTypedHeaders();
if (requestHeaders.IfModifiedSince.HasValue &&
requestHeaders.IfModifiedSince.Value >= itemInfo.Result.Item.LastModified)
{
return StatusCode(StatusCodes.Status304NotModified);
}
return Ok(itemInfo.Result);
}
/// <summary>
/// get all published artifacts (including CoverImage info but not items info)
/// </summary>
@ -1069,39 +1102,6 @@ namespace RMuseum.Controllers
/// <summary>
/// gets specified publish artifact item info (including images + attributes)
/// </summary>
/// <param name="artifactUrl"></param>
/// <param name="itemUrl"></param>
/// <returns></returns>
[HttpGet("{artifactUrl}/{itemUrl}")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(RArtifactItemRecordViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> GetArtifactItemByFrienlyUrl(string artifactUrl, string itemUrl)
{
RServiceResult<RArtifactItemRecordViewModel> itemInfo = await _artifactService.GetArtifactItemByFrienlyUrl(artifactUrl, itemUrl, new PublishStatus[] { PublishStatus.Published });
if (!string.IsNullOrEmpty(itemInfo.ExceptionString))
{
return BadRequest(itemInfo.ExceptionString);
}
if (itemInfo.Result == null)
return NotFound();
Response.GetTypedHeaders().LastModified = itemInfo.Result.Item.LastModified;
var requestHeaders = Request.GetTypedHeaders();
if (requestHeaders.IfModifiedSince.HasValue &&
requestHeaders.IfModifiedSince.Value >= itemInfo.Result.Item.LastModified)
{
return StatusCode(StatusCodes.Status304NotModified);
}
return Ok(itemInfo.Result);
}
/// <summary>
/// update an artifact item info
/// </summary>