#106 PUT and DELETE api for site banners

This commit is contained in:
Hamid Reza Mohammadi 2021-04-22 09:38:03 +04:30
parent 57b92e2c4c
commit 728e1e8008
5 changed files with 180 additions and 1 deletions

View File

@ -937,7 +937,7 @@ namespace RMuseum.Controllers
/// <returns></returns>
[HttpPost]
[Route("site/banner")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.ImportOperationShortName)]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorSiteBanner))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
@ -982,6 +982,81 @@ namespace RMuseum.Controllers
}
}
/// <summary>
/// modify site banner
/// </summary>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns></returns>
[HttpPut]
[Route("site/banner/{id}")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> ModifySiteBanner(int id, [FromBody] GanjoorSiteBannerModifyViewModel model)
{
try
{
RServiceResult<bool> res = await _ganjoorService.ModifySiteBanner(id, model.AlternateText, model.TargetUrl, model.Active);
if (!string.IsNullOrEmpty(res.ExceptionString))
{
return BadRequest(res.ExceptionString);
}
if(!res.Result)
{
return NotFound();
}
return Ok();
}
catch (Exception exp)
{
return BadRequest(exp.ToString());
}
}
/// <summary>
/// delete site banner
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete]
[Route("site/banner")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> DeleteSiteBanner(int id)
{
try
{
RServiceResult<bool> res = await _ganjoorService.DeleteSiteBanner(id);
if (!string.IsNullOrEmpty(res.ExceptionString))
{
return BadRequest(res.ExceptionString);
}
if (!res.Result)
{
return NotFound();
}
return Ok();
}
catch (Exception exp)
{
return BadRequest(exp.ToString());
}
}
/// <summary>
/// Ganjoor Service
/// </summary>

View File

@ -83,6 +83,12 @@ namespace RMuseum.Models.Auth.Memory
/// </summary>
public const string AddSongs = "songadd";
/// <summary>
/// manage footer bannaers
/// </summary>
public const string Banners = "banners";
/// <summary>
/// list of forms and their permissions
/// </summary>
@ -154,6 +160,7 @@ namespace RMuseum.Models.Auth.Memory
new SecurableItemOperation(ImportOperationShortName, "ورود اطلاعات از منابع خارجی", false),
new SecurableItemOperation(ModerateOperationShortName, "مدیریت حاشیه‌ها", false),
new SecurableItemOperation(ModifyOperationShortName, "ویرایش محتوا", false),
new SecurableItemOperation(Banners, "مدیریت آگاهی‌ها", false),
}
},

View File

@ -0,0 +1,23 @@
namespace RMuseum.Models.Ganjoor.ViewModels
{
/// <summary>
/// GanjoorSiteBanner PUT ViewModel
/// </summary>
public class GanjoorSiteBannerModifyViewModel
{
/// <summary>
/// alternate text
/// </summary>
public string AlternateText { get; set; }
/// <summary>
/// target url
/// </summary>
public string TargetUrl { get; set; }
/// <summary>
/// active
/// </summary>
public bool Active { get; set; }
}
}

View File

@ -889,6 +889,21 @@
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.GanjoorController.ModifySiteBanner(System.Int32,RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerModifyViewModel)">
<summary>
modify site banner
</summary>
<param name="id"></param>
<param name="model"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.GanjoorController.DeleteSiteBanner(System.Int32)">
<summary>
delete site banner
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="F:RMuseum.Controllers.GanjoorController._ganjoorService">
<summary>
Ganjoor Service
@ -2192,6 +2207,11 @@
add song from any source
</summary>
</member>
<member name="F:RMuseum.Models.Auth.Memory.RMuseumSecurableItem.Banners">
<summary>
manage footer bannaers
</summary>
</member>
<member name="P:RMuseum.Models.Auth.Memory.RMuseumSecurableItem.Items">
<summary>
list of forms and their permissions
@ -5062,6 +5082,26 @@
text
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerModifyViewModel">
<summary>
GanjoorSiteBanner PUT ViewModel
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerModifyViewModel.AlternateText">
<summary>
alternate text
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerModifyViewModel.TargetUrl">
<summary>
target url
</summary>
</member>
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerModifyViewModel.Active">
<summary>
active
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorSiteBannerViewModel">
<summary>
Ganjoor Site Banner View Model
@ -6711,6 +6751,23 @@
<param name="active"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.ModifySiteBanner(System.Int32,System.String,System.String,System.Boolean)">
<summary>
modify site banner
</summary>
<param name="id"></param>
<param name="alternateText"></param>
<param name="targetUrl"></param>
<param name="active"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.DeleteSiteBanner(System.Int32)">
<summary>
delete site banner
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.Faal">
<summary>
get a random poem from hafez

View File

@ -269,6 +269,23 @@ namespace RMuseum.Services
/// <returns></returns>
Task<RServiceResult<GanjoorSiteBanner>> AddSiteBanner(Stream imageStream, string fileName, string alternateText, string targetUrl, bool active);
/// <summary>
/// modify site banner
/// </summary>
/// <param name="id"></param>
/// <param name="alternateText"></param>
/// <param name="targetUrl"></param>
/// <param name="active"></param>
/// <returns></returns>
Task<RServiceResult<bool>> ModifySiteBanner(int id, string alternateText, string targetUrl, bool active);
/// <summary>
/// delete site banner
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<RServiceResult<bool>> DeleteSiteBanner(int id);
/// <summary>
/// get a random poem from hafez
/// </summary>