mirror of
				https://github.com/D4M13N-D3V/comissions-app-core-api.git
				synced 2025-10-31 09:35:25 +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
	 Damien Ostler
						Damien Ostler