fix: add endpoint to get list of reviews

This commit is contained in:
Damien Ostler 2024-02-27 20:48:25 -05:00
parent 660512dbd5
commit ecbcadb5db
2 changed files with 27 additions and 0 deletions

View File

@ -7,6 +7,7 @@ using comissions.app.api.Services.Storage;
using comissions.app.database;
using comissions.app.database.Entities;
using comissions.app.database.Models;
using comissions.app.database.Models.Request;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
@ -50,6 +51,31 @@ public class ArtistController : Controller
return Ok(result);
}
[HttpGet]
[Authorize("read:artist")]
[Route("Reviews")]
public async Task<IActionResult> GetArtistReviews(int offset = 0, int limit = 10)
{
var userId = User.GetUserId();
var Artist = await _dbContext.UserArtists.Include(x=>x.Requests).FirstOrDefaultAsync(Artist=>Artist.UserId==userId);
if(Artist==null)
{
var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false);
if(ArtistRequest!=null)
return BadRequest();
return Unauthorized();
}
var result = Artist.Requests.Where(x=>x.Reviewed).Skip(offset).Take(limit).Select(x=> new RequestReviewModel()
{
RequestId = x.Id,
Message = x.ReviewMessage,
Rating = x.Rating.Value
}).ToList();
return Ok(result);
}
[HttpGet]
[Authorize("read:artist")]
[Route("Stats")]

View File

@ -2,6 +2,7 @@ namespace comissions.app.database.Models.Request;
public class RequestReviewModel
{
public int? RequestId { get; set; }
public string Message { get; set; }
public double Rating { get; set; }
}