mirror of
				https://github.com/D4M13N-D3V/comissions-app-core-api.git
				synced 2025-10-31 01:25:27 +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); | ||||
|     } | ||||
|      | ||||
|     [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] | ||||
|     [Authorize("write:artist")] | ||||
|     public async Task<IActionResult> UpdateArtist(ArtistModel model) | ||||
| @ -111,6 +129,7 @@ public class ArtistController : Controller | ||||
|         return Ok(result); | ||||
|     } | ||||
|      | ||||
|      | ||||
|     [HttpPut] | ||||
|     [Authorize("write:artist")] | ||||
|     [Route("Page")] | ||||
|  | ||||
| @ -25,6 +25,7 @@ public record UserArtist | ||||
|     public virtual User User { get; set; } = null!; | ||||
|      | ||||
|     public int ArtistPageSettingsId { get; set; } | ||||
|     public virtual ICollection<Request> Requests { get; set; } = new List<Request>(); | ||||
|     public virtual ArtistPageSettings ArtistPageSettings { get; set; } = null!; | ||||
|     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 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) | ||||
|     { | ||||
|         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
	 Damien Ostler
						Damien Ostler