diff --git a/src/comissions.app.api/Controllers/Admin/AdminArtistsController.cs b/src/comissions.app.api/Controllers/Admin/AdminArtistsController.cs index 55351ab..0cbf4e3 100644 --- a/src/comissions.app.api/Controllers/Admin/AdminArtistsController.cs +++ b/src/comissions.app.api/Controllers/Admin/AdminArtistsController.cs @@ -1,6 +1,7 @@ using comissions.app.api.Extensions; using comissions.app.database; using comissions.app.database.Models.Admin; +using comissions.app.database.Models.Request; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; @@ -57,6 +58,38 @@ public class AdminArtistsController:ControllerBase return Ok(result); } + [HttpGet("{sellerId:int}/Requests")] + public async Task GetArtistRequests(int sellerId, [FromQuery]int offset = 0, [FromQuery]int pageSize = 10) + { + var requests = await _dbContext.Requests + .Include(x=>x.Artist) + .Where(x=>x.ArtistId==sellerId) + .Skip(offset).Take(pageSize).ToListAsync(); + var result = requests.Select(x=>x.ToModel()); + return Ok(result); + } + + [HttpGet("{sellerId:int}/Requests/{requestId:int")] + public async Task GetArtistRequest(int sellerId, int requestId) + { + var request = await _dbContext.Requests + .Include(x=>x.Artist) + .FirstOrDefaultAsync(x=>x.Id==requestId); + if(request==null) + return NotFound(); + var result = request.ToModel(); + return Ok(result); + } + + [HttpGet("{sellerId:int}/Requests/Count")] + public async Task GetArtistRequestsCount(int sellerId) + { + var result = await _dbContext.Requests + .Where(x=>x.ArtistId==sellerId) + .CountAsync(); + return Ok(result); + } + [HttpPut("{sellerId:int}/Terminate")] public async Task TerminateArtist(int sellerId) diff --git a/src/comissions.app.api/Controllers/Admin/AdminUsersController.cs b/src/comissions.app.api/Controllers/Admin/AdminUsersController.cs index 27f2d9b..2d7bc06 100644 --- a/src/comissions.app.api/Controllers/Admin/AdminUsersController.cs +++ b/src/comissions.app.api/Controllers/Admin/AdminUsersController.cs @@ -2,6 +2,7 @@ using comissions.app.api.Extensions; using comissions.app.database; using comissions.app.database.Entities; using comissions.app.database.Models.Admin; +using comissions.app.database.Models.Request; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -34,6 +35,39 @@ public class AdminUsersController:ControllerBase return Ok(result); } + [HttpGet("{userId}/Requests")] + public async Task GetUserRequests(string artistId, [FromQuery]int offset = 0, [FromQuery]int pageSize = 10) + { + var requests = await _dbContext.Requests + .Include(x=>x.Artist) + .Where(x=>x.UserId==artistId) + .Skip(offset).Take(pageSize).ToListAsync(); + var result = requests.Select(x=>x.ToModel()); + return Ok(result); + } + + [HttpGet("{userId}/Requests/{requestId:int")] + public async Task GetUserRequest(string artistId, int requestId) + { + var request = await _dbContext.Requests + .Include(x=>x.Artist) + .FirstOrDefaultAsync(x=>x.Id==requestId); + if(request==null) + return NotFound(); + var result = request.ToModel(); + return Ok(result); + } + + [HttpGet("{userId}/Requests/Count")] + public async Task GetUserRequestsCount(string artistId) + { + var result = await _dbContext.Requests + .Where(x=>x.UserId==artistId) + .CountAsync(); + return Ok(result); + } + + [HttpGet("Count")] public async Task GetUsersCount([FromQuery]string search="") {