mirror of
https://github.com/D4M13N-D3V/comissions-app-core-api.git
synced 2025-03-14 10:04:55 +00:00
63 lines
2.3 KiB
C#
63 lines
2.3 KiB
C#
![]() |
using comissions.app.api.Extensions;
|
||
|
using comissions.app.api.Models.Artist;
|
||
|
using comissions.app.api.Services.Payment;
|
||
|
using comissions.app.api.Services.Storage;
|
||
|
using comissions.app.database;
|
||
|
using Microsoft.AspNetCore.Authorization;
|
||
|
using Microsoft.AspNetCore.Mvc;
|
||
|
using Microsoft.EntityFrameworkCore;
|
||
|
using Novu;
|
||
|
|
||
|
namespace comissions.app.api.Controllers;
|
||
|
|
||
|
|
||
|
[Route("api/Artist")]
|
||
|
public class ArtistPageController: Controller
|
||
|
{
|
||
|
private readonly ApplicationDbContext _dbContext;
|
||
|
private readonly IStorageService _storageService;
|
||
|
private readonly IPaymentService _paymentService;
|
||
|
private readonly NovuClient _client;
|
||
|
|
||
|
public ArtistPageController(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService, NovuClient client)
|
||
|
{
|
||
|
_client = client;
|
||
|
_paymentService = paymentService;
|
||
|
_storageService = storageService;
|
||
|
_dbContext = dbContext;
|
||
|
}
|
||
|
[HttpGet]
|
||
|
[Authorize("read:artist")]
|
||
|
[Route("Page")]
|
||
|
public async Task<IActionResult> GetArtistPage()
|
||
|
{
|
||
|
var userId = User.GetUserId();
|
||
|
var Artist = await _dbContext.UserArtists.Include(x=>x.ArtistPageSettings).FirstOrDefaultAsync(artist=>artist.UserId==userId);
|
||
|
if(Artist==null)
|
||
|
return NotFound();
|
||
|
var result = Artist.ArtistPageSettings.ToModel();
|
||
|
return Ok(result);
|
||
|
}
|
||
|
|
||
|
[HttpPut]
|
||
|
[Authorize("write:artist")]
|
||
|
[Route("Page")]
|
||
|
public async Task<IActionResult> UpdateArtistPage([FromBody]ArtistPageSettingsModel model)
|
||
|
{
|
||
|
var userId = User.GetUserId();
|
||
|
var existingArtist = await _dbContext.UserArtists
|
||
|
.Include(x=>x.ArtistPageSettings).FirstOrDefaultAsync(Artist=>Artist.UserId==userId);
|
||
|
if (existingArtist == null)
|
||
|
{
|
||
|
var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false);
|
||
|
if(ArtistRequest!=null)
|
||
|
return BadRequest();
|
||
|
return Unauthorized();
|
||
|
}
|
||
|
var updatedArtist = model.ToModel(existingArtist.ArtistPageSettings);
|
||
|
updatedArtist = _dbContext.ArtistPageSettings.Update(updatedArtist).Entity;
|
||
|
await _dbContext.SaveChangesAsync();
|
||
|
var result = updatedArtist.ToModel();
|
||
|
return Ok(result);
|
||
|
}
|
||
|
}
|