docs: #285 CRUD API for FAQ Categories and Items

This commit is contained in:
Hamid Reza Mohammadi 2022-02-25 15:23:54 +03:30
parent e9ee2de210
commit 46f577048c
2 changed files with 148 additions and 0 deletions

View File

@ -61,6 +61,58 @@ namespace RMuseum.Controllers
return Ok(res.Result);
}
/// <summary>
/// add a new faq category
/// </summary>
/// <param name="cat"></param>
/// <returns></returns>
[HttpPost("cat")]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQCategory))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> AddCategoryAsync([FromBody]FAQCategory cat)
{
var res = await _faqService.AddCategoryAsync(cat);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// update an existing faq category
/// </summary>
/// <param name="cat"></param>
/// <returns></returns>
[HttpPut("cat")]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQCategory))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> UpdateCategoryAsync([FromBody] FAQCategory cat)
{
var res = await _faqService.UpdateCategoryAsync(cat);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// delete a faq category
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("cat/{id}")]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(bool))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> DeleteCategoryAsync(int id)
{
var res = await _faqService.DeleteCategoryAsync(id);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// get published pinned items
/// </summary>
@ -130,6 +182,60 @@ namespace RMuseum.Controllers
}
/// <summary>
/// add a new faq item
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
[HttpPost]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQCategory))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> AddItemAsync([FromBody] FAQItem item)
{
var res = await _faqService.AddItemAsync(item);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// update an existing faq item
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
[HttpPut]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQCategory))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> UpdateItemAsync([FromBody] FAQItem item)
{
var res = await _faqService.UpdateItemAsync(item);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// delete a faq item
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("{id}")]
[Authorize(Policy = RMuseumSecurableItem.FAQEntityShortName + ":" + RMuseumSecurableItem.ModerateOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(bool))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> DeleteItemAsync(int id)
{
var res = await _faqService.DeleteItemAsync(id);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
/// <summary>
/// FAQ Service
/// </summary>

View File

@ -772,6 +772,27 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.AddCategoryAsync(RMuseum.Models.FAQ.FAQCategory)">
<summary>
add a new faq category
</summary>
<param name="cat"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.UpdateCategoryAsync(RMuseum.Models.FAQ.FAQCategory)">
<summary>
update an existing faq category
</summary>
<param name="cat"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.DeleteCategoryAsync(System.Int32)">
<summary>
delete a faq category
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.GetPinnedItemsAsync">
<summary>
get published pinned items
@ -798,6 +819,27 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.AddItemAsync(RMuseum.Models.FAQ.FAQItem)">
<summary>
add a new faq item
</summary>
<param name="item"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.UpdateItemAsync(RMuseum.Models.FAQ.FAQItem)">
<summary>
update an existing faq item
</summary>
<param name="item"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.FAQController.DeleteItemAsync(System.Int32)">
<summary>
delete a faq item
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="F:RMuseum.Controllers.FAQController._faqService">
<summary>
FAQ Service