#74 protecting pinterest suggestion api

This commit is contained in:
Hamid Reza Mohammadi 2021-02-10 18:11:27 +03:30
parent 7b611067bd
commit 5a97115a89
5 changed files with 12 additions and 33 deletions

View File

@ -1749,19 +1749,13 @@ namespace RMuseum.Controllers
/// <returns></returns>
[HttpPost]
[Route("pinterest")]
[AllowAnonymous]
[Authorize]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(PinterestLinkViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> SuggestPinterestLink([FromBody]PinterestSuggestion suggestion)
{
RServiceResult<bool> captchaRes = await _captchaService.Evaluate(suggestion.CaptchaImageId, suggestion.CaptchaValue);
if (!string.IsNullOrEmpty(captchaRes.ExceptionString))
return BadRequest(captchaRes.ExceptionString);
if (!captchaRes.Result)
return BadRequest("مقدار تصویر امنیتی درست وارد نشده است.");
RServiceResult<PinterestLinkViewModel> res = await _artifactService.SuggestPinterestLink(suggestion);
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
RServiceResult<PinterestLinkViewModel> res = await _artifactService.SuggestPinterestLink(loggedOnUserId, suggestion);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);

View File

@ -41,15 +41,5 @@ namespace RMuseum.Models.GanjoorIntegration.ViewModels
/// pinterest image url
/// </summary>
public string PinterestImageUrl { get; set; }
/// <summary>
/// Captcha Image Id
/// </summary>
public Guid CaptchaImageId { get; set; }
/// <summary>
/// Captcha Value
/// </summary>
public string CaptchaValue { get; set; }
}
}

View File

@ -3480,16 +3480,6 @@
pinterest image url
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion.CaptchaImageId">
<summary>
Captcha Image Id
</summary>
</member>
<member name="P:RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion.CaptchaValue">
<summary>
Captcha Value
</summary>
</member>
<member name="T:RMuseum.Models.Ganjoor.GanjoorCat">
<summary>
Ganjoor Category
@ -5813,10 +5803,11 @@
<param name="notSynced"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IArtifactService.SuggestPinterestLink(RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion)">
<member name="M:RMuseum.Services.IArtifactService.SuggestPinterestLink(System.Guid,RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion)">
<summary>
suggest pinterest link
</summary>
<param name="userId"></param>
<param name="suggestion"></param>
<returns></returns>
</member>
@ -6626,10 +6617,11 @@
<param name="notSynced"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.ArtifactService.SuggestPinterestLink(RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion)">
<member name="M:RMuseum.Services.Implementation.ArtifactService.SuggestPinterestLink(System.Guid,RMuseum.Models.GanjoorIntegration.ViewModels.PinterestSuggestion)">
<summary>
suggest pinterest link
</summary>
<param name="userId"></param>
<param name="suggestion"></param>
<returns></returns>
</member>

View File

@ -474,9 +474,10 @@ namespace RMuseum.Services
/// <summary>
/// suggest pinterest link
/// </summary>
/// <param name="userId"></param>
/// <param name="suggestion"></param>
/// <returns></returns>
Task<RServiceResult<PinterestLinkViewModel>> SuggestPinterestLink(PinterestSuggestion suggestion);
Task<RServiceResult<PinterestLinkViewModel>> SuggestPinterestLink(Guid userId, PinterestSuggestion suggestion);
/// <summary>
/// Review Suggested Pinterest Link

View File

@ -3077,9 +3077,10 @@ namespace RMuseum.Services.Implementation
/// <summary>
/// suggest pinterest link
/// </summary>
/// <param name="userId"></param>
/// <param name="suggestion"></param>
/// <returns></returns>
public async Task<RServiceResult<PinterestLinkViewModel>> SuggestPinterestLink(PinterestSuggestion suggestion)
public async Task<RServiceResult<PinterestLinkViewModel>> SuggestPinterestLink(Guid userId, PinterestSuggestion suggestion)
{
try
{
@ -3108,6 +3109,7 @@ namespace RMuseum.Services.Implementation
PinterestImageUrl = suggestion.PinterestImageUrl,
ReviewResult = ReviewResult.Awaiting,
SuggestionDate = DateTime.Now,
SuggestedById = userId,
Synchronized = false
};
_context.PinterestLinks.Add(link);