101 lines
3.5 KiB
C#
Raw Normal View History

2024-03-01 16:20:32 -05:00
using comissions.app.api.Extensions;
2024-06-15 03:10:24 -04:00
using comissions.app.api.Models.Request;
2024-03-01 16:20:32 -05:00
using comissions.app.api.Services.Payment;
using comissions.app.api.Services.Storage;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Novu;
namespace comissions.app.api.Controllers;
[Route("api/Artist")]
public class ArtistReviewsController: Controller
{
private readonly ApplicationDbContext _dbContext;
private readonly IStorageService _storageService;
private readonly IPaymentService _paymentService;
private readonly NovuClient _client;
public ArtistReviewsController(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService, NovuClient client)
{
_client = client;
_paymentService = paymentService;
_storageService = storageService;
_dbContext = dbContext;
}
[HttpGet]
[Authorize("read:artist")]
[Route("Reviews")]
public async Task<IActionResult> GetArtistReviews([FromQuery]int offset = 0, [FromQuery]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,
ReviewDate = x.ReviewDate
}).ToList();
return Ok(result);
}
2024-03-01 16:20:32 -05:00
[HttpGet]
[Authorize("read:artist")]
[Route("Reviews/Count")]
public async Task<IActionResult> ReviewCount()
{
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).Select(x=> new RequestReviewModel()
{
RequestId = x.Id,
Message = x.ReviewMessage,
Rating = x.Rating.Value,
ReviewDate = x.ReviewDate
}).ToList().Count;
return Ok(result);
}
}
// using comissions.app.api.Services.Payment;
// using comissions.app.api.Services.Storage;
// using comissions.app.database;
// using Novu;
//
// namespace comissions.app.api.Controllers;
//[Route("api/Artist")]
// public class ArtistReviews
// {
// private readonly ApplicationDbContext _dbContext;
// private readonly IStorageService _storageService;
// private readonly IPaymentService _paymentService;
// private readonly NovuClient _client;
//
// public ArtistReviews(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService, NovuClient client)
// {
// _client = client;
// _paymentService = paymentService;
// _storageService = storageService;
// _dbContext = dbContext;
// }
// }