mirror of
https://github.com/D4M13N-D3V/comissions-app-core-api.git
synced 2025-03-14 10:04:55 +00:00
fix: added a endpoint to get artist stats.
This commit is contained in:
parent
3b40237bdb
commit
f322ee6ab6
@ -49,6 +49,24 @@ public class ArtistController : Controller
|
|||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[Authorize("read:artist")]
|
||||||
|
[Route("Stats")]
|
||||||
|
public async Task<IActionResult> GetArtistStats()
|
||||||
|
{
|
||||||
|
var userId = User.GetUserId();
|
||||||
|
var Artist = await _dbContext.UserArtists.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.ToStatsModel();
|
||||||
|
return Ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
[Authorize("write:artist")]
|
[Authorize("write:artist")]
|
||||||
public async Task<IActionResult> UpdateArtist(ArtistModel model)
|
public async Task<IActionResult> UpdateArtist(ArtistModel model)
|
||||||
@ -111,6 +129,7 @@ public class ArtistController : Controller
|
|||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
[Authorize("write:artist")]
|
[Authorize("write:artist")]
|
||||||
[Route("Page")]
|
[Route("Page")]
|
||||||
|
@ -25,6 +25,7 @@ public record UserArtist
|
|||||||
public virtual User User { get; set; } = null!;
|
public virtual User User { get; set; } = null!;
|
||||||
|
|
||||||
public int ArtistPageSettingsId { get; set; }
|
public int ArtistPageSettingsId { get; set; }
|
||||||
|
public virtual ICollection<Request> Requests { get; set; } = new List<Request>();
|
||||||
public virtual ArtistPageSettings ArtistPageSettings { get; set; } = null!;
|
public virtual ArtistPageSettings ArtistPageSettings { get; set; } = null!;
|
||||||
public virtual ICollection<ArtistPortfolioPiece> PortfolioPieces { get; set; } = new List<ArtistPortfolioPiece>();
|
public virtual ICollection<ArtistPortfolioPiece> PortfolioPieces { get; set; } = new List<ArtistPortfolioPiece>();
|
||||||
}
|
}
|
@ -5,6 +5,17 @@ namespace comissions.app.api.Models.Artist;
|
|||||||
|
|
||||||
public static class ArtistModelExtensions
|
public static class ArtistModelExtensions
|
||||||
{
|
{
|
||||||
|
public static ArtistStatsModel ToStatsModel(this UserArtist sellerProfile)
|
||||||
|
{
|
||||||
|
return new ArtistStatsModel()
|
||||||
|
{
|
||||||
|
AcceptedRequests = sellerProfile.Requests.Select(x=>x.Accepted).Count(),
|
||||||
|
DeclinedRequests = sellerProfile.Requests.Select(x=>x.Declined).Count(),
|
||||||
|
CompletedRequests = sellerProfile.Requests.Select(x=>x.Completed).Count(),
|
||||||
|
PendingRequests = sellerProfile.Requests.Where(x=>!x.Accepted && !x.Declined && !x.Completed).Count(),
|
||||||
|
Revenue = sellerProfile.Requests.Sum(x=>x.Amount)
|
||||||
|
};
|
||||||
|
}
|
||||||
public static ArtistModel ToModel(this UserArtist sellerProfile)
|
public static ArtistModel ToModel(this UserArtist sellerProfile)
|
||||||
{
|
{
|
||||||
return new ArtistModel()
|
return new ArtistModel()
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
namespace comissions.app.api.Models.Artist;
|
||||||
|
|
||||||
|
public class ArtistStatsModel
|
||||||
|
{
|
||||||
|
public int AcceptedRequests { get; set; }
|
||||||
|
public int DeclinedRequests { get; set; }
|
||||||
|
public int CompletedRequests { get; set; }
|
||||||
|
public int PendingRequests { get; set; }
|
||||||
|
public decimal Revenue { get; set; }
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user