Refactor controller methods to return ActionResult for better error handling

This commit is contained in:
2025-11-13 18:52:45 +00:00
parent 505ace535f
commit fc6238aef1
55 changed files with 724 additions and 539 deletions

View File

@@ -80,14 +80,14 @@ public class BookScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(BookScanDto dto) public async Task<ActionResult> UpdateAsync(BookScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
BookScan model = await context.BookScans.FindAsync(dto.Id); BookScan model = await context.BookScans.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Author = dto.Author; model.Author = dto.Author;
model.ColorSpace = dto.ColorSpace; model.ColorSpace = dto.ColorSpace;
@@ -104,17 +104,19 @@ public class BookScansController(MarechaiContext context) : ControllerBase
model.VerticalResolution = dto.VerticalResolution; model.VerticalResolution = dto.VerticalResolution;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<Guid> CreateAsync(BookScanDto dto) public async Task<ActionResult<Guid>> CreateAsync(BookScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new BookScan var model = new BookScan
{ {
@@ -148,17 +150,19 @@ public class BookScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(Guid id) public async Task<ActionResult> DeleteAsync(Guid id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
BookScan item = await context.BookScans.FindAsync(id); BookScan item = await context.BookScans.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.BookScans.Remove(item); context.BookScans.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -90,14 +90,14 @@ public class BooksController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(BookDto dto) public async Task<ActionResult> UpdateAsync(BookDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Book model = await context.Books.FindAsync(dto.Id); Book model = await context.Books.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Title = dto.Title; model.Title = dto.Title;
model.NativeTitle = dto.NativeTitle; model.NativeTitle = dto.NativeTitle;
@@ -110,6 +110,8 @@ public class BooksController(MarechaiContext context) : ControllerBase
model.PreviousId = dto.PreviousId; model.PreviousId = dto.PreviousId;
model.SourceId = dto.SourceId; model.SourceId = dto.SourceId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
@@ -153,17 +155,19 @@ public class BooksController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Book item = await context.Books.FindAsync(id); Book item = await context.Books.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Books.Remove(item); context.Books.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -63,29 +63,31 @@ public class CompaniesByBookController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CompaniesByBook item = await context.CompaniesByBooks.FindAsync(id); CompaniesByBook item = await context.CompaniesByBooks.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesByBooks.Remove(item); context.CompaniesByBooks.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int companyId, long bookId, string roleId) public async Task<ActionResult<long>> CreateAsync(int companyId, long bookId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new CompaniesByBook var item = new CompaniesByBook
{ {

View File

@@ -63,29 +63,31 @@ public class CompaniesByDocumentController(MarechaiContext context) : Controller
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CompaniesByDocument item = await context.CompaniesByDocuments.FindAsync(id); CompaniesByDocument item = await context.CompaniesByDocuments.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesByDocuments.Remove(item); context.CompaniesByDocuments.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int companyId, long documentId, string roleId) public async Task<ActionResult<long>> CreateAsync(int companyId, long documentId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new CompaniesByDocument var item = new CompaniesByDocument
{ {

View File

@@ -63,29 +63,31 @@ public class CompaniesByMagazineController(MarechaiContext context) : Controller
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CompaniesByMagazine item = await context.CompaniesByMagazines.FindAsync(id); CompaniesByMagazine item = await context.CompaniesByMagazines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesByMagazines.Remove(item); context.CompaniesByMagazines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int companyId, long magazineId, string roleId) public async Task<ActionResult<long>> CreateAsync(int companyId, long magazineId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new CompaniesByMagazine var item = new CompaniesByMagazine
{ {

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,46 +44,51 @@ public class CompaniesBySoftwareFamilyController(MarechaiContext context) : Cont
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<CompanyBySoftwareFamilyDto>> GetBySoftwareFamily(ulong softwareFamilyId) => public async Task<List<CompanyBySoftwareFamilyDto>> GetBySoftwareFamily(ulong softwareFamilyId) => await context
await context.CompaniesBySoftwareFamilies.Where(p => p.SoftwareFamilyId == softwareFamilyId) .CompaniesBySoftwareFamilies.Where(p => p.SoftwareFamilyId == softwareFamilyId)
.Select(p => new CompanyBySoftwareFamilyDto .Select(p => new CompanyBySoftwareFamilyDto
{ {
Id = p.Id, Id = p.Id,
Company = p.Company.Name, Company = p.Company.Name,
CompanyId = p.CompanyId, CompanyId = p.CompanyId,
RoleId = p.RoleId, RoleId = p.RoleId,
Role = p.Role.Name, Role = p.Role.Name,
SoftwareFamilyId = p.SoftwareFamilyId SoftwareFamilyId = p.SoftwareFamilyId
}) })
.OrderBy(p => p.Company) .OrderBy(p => p.Company)
.ThenBy(p => p.Role) .ThenBy(p => p.Role)
.ToListAsync(); .ToListAsync();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
CompaniesBySoftwareFamily item = await context.CompaniesBySoftwareFamilies.FindAsync(id); CompaniesBySoftwareFamily item = await context.CompaniesBySoftwareFamilies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesBySoftwareFamilies.Remove(item); context.CompaniesBySoftwareFamilies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(int companyId, ulong softwareFamilyId, string roleId) public async Task<ActionResult<ulong>> CreateAsync(int companyId, ulong softwareFamilyId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null;
if(userId is null) return Unauthorized();
var item = new CompaniesBySoftwareFamily var item = new CompaniesBySoftwareFamily
{ {
CompanyId = companyId, CompanyId = companyId,
@@ -98,4 +101,4 @@ public class CompaniesBySoftwareFamilyController(MarechaiContext context) : Cont
return item.Id; return item.Id;
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,46 +44,51 @@ public class CompaniesBySoftwareVariantController(MarechaiContext context) : Con
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<CompanyBySoftwareVariantDto>> GetBySoftwareVariant(ulong softwareVariantId) => public async Task<List<CompanyBySoftwareVariantDto>> GetBySoftwareVariant(ulong softwareVariantId) => await context
await context.CompaniesBySoftwareVariants.Where(p => p.SoftwareVariantId == softwareVariantId) .CompaniesBySoftwareVariants.Where(p => p.SoftwareVariantId == softwareVariantId)
.Select(p => new CompanyBySoftwareVariantDto .Select(p => new CompanyBySoftwareVariantDto
{ {
Id = p.Id, Id = p.Id,
Company = p.Company.Name, Company = p.Company.Name,
CompanyId = p.CompanyId, CompanyId = p.CompanyId,
RoleId = p.RoleId, RoleId = p.RoleId,
Role = p.Role.Name, Role = p.Role.Name,
SoftwareVariantId = p.SoftwareVariantId SoftwareVariantId = p.SoftwareVariantId
}) })
.OrderBy(p => p.Company) .OrderBy(p => p.Company)
.ThenBy(p => p.Role) .ThenBy(p => p.Role)
.ToListAsync(); .ToListAsync();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
CompaniesBySoftwareVariant item = await context.CompaniesBySoftwareVariants.FindAsync(id); CompaniesBySoftwareVariant item = await context.CompaniesBySoftwareVariants.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesBySoftwareVariants.Remove(item); context.CompaniesBySoftwareVariants.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(int companyId, ulong softwareVariantId, string roleId) public async Task<ActionResult<ulong>> CreateAsync(int companyId, ulong softwareVariantId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null;
if(userId is null) return Unauthorized();
var item = new CompaniesBySoftwareVariant var item = new CompaniesBySoftwareVariant
{ {
CompanyId = companyId, CompanyId = companyId,
@@ -98,4 +101,4 @@ public class CompaniesBySoftwareVariantController(MarechaiContext context) : Con
return item.Id; return item.Id;
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,46 +44,51 @@ public class CompaniesBySoftwareVersionController(MarechaiContext context) : Con
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<CompanyBySoftwareVersionDto>> GetBySoftwareVersion(ulong softwareVersionId) => public async Task<List<CompanyBySoftwareVersionDto>> GetBySoftwareVersion(ulong softwareVersionId) => await context
await context.CompaniesBySoftwareVersions.Where(p => p.SoftwareVersionId == softwareVersionId) .CompaniesBySoftwareVersions.Where(p => p.SoftwareVersionId == softwareVersionId)
.Select(p => new CompanyBySoftwareVersionDto .Select(p => new CompanyBySoftwareVersionDto
{ {
Id = p.Id, Id = p.Id,
Company = p.Company.Name, Company = p.Company.Name,
CompanyId = p.CompanyId, CompanyId = p.CompanyId,
RoleId = p.RoleId, RoleId = p.RoleId,
Role = p.Role.Name, Role = p.Role.Name,
SoftwareVersionId = p.SoftwareVersionId SoftwareVersionId = p.SoftwareVersionId
}) })
.OrderBy(p => p.Company) .OrderBy(p => p.Company)
.ThenBy(p => p.Role) .ThenBy(p => p.Role)
.ToListAsync(); .ToListAsync();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
CompaniesBySoftwareVersion item = await context.CompaniesBySoftwareVersions.FindAsync(id); CompaniesBySoftwareVersion item = await context.CompaniesBySoftwareVersions.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CompaniesBySoftwareVersions.Remove(item); context.CompaniesBySoftwareVersions.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(int companyId, ulong softwareVersionId, string roleId) public async Task<ActionResult<ulong>> CreateAsync(int companyId, ulong softwareVersionId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null;
if(userId is null) return Unauthorized();
var item = new CompaniesBySoftwareVersion var item = new CompaniesBySoftwareVersion
{ {
CompanyId = companyId, CompanyId = companyId,
@@ -98,4 +101,4 @@ public class CompaniesBySoftwareVersionController(MarechaiContext context) : Con
return item.Id; return item.Id;
} }
} }

View File

@@ -33,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -114,14 +113,14 @@ public class CompaniesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(CompanyDto dto) public async Task<ActionResult> UpdateAsync(CompanyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Company model = await context.Companies.FindAsync(dto.Id); Company model = await context.Companies.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.Founded = dto.Founded; model.Founded = dto.Founded;
@@ -142,17 +141,19 @@ public class CompaniesController(MarechaiContext context) : ControllerBase
model.SoldMonthIsUnknown = dto.SoldMonthIsUnknown; model.SoldMonthIsUnknown = dto.SoldMonthIsUnknown;
model.LegalName = dto.LegalName; model.LegalName = dto.LegalName;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(CompanyDto dto) public async Task<ActionResult<int>> CreateAsync(CompanyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Company var model = new Company
{ {
@@ -259,18 +260,20 @@ public class CompaniesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Company item = await context.Companies.FindAsync(id); Company item = await context.Companies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Companies.Remove(item); context.Companies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpGet] [HttpGet]
@@ -292,11 +295,11 @@ public class CompaniesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateOrUpdateDescriptionAsync(int id, CompanyDescriptionDto description) public async Task<ActionResult<int>> CreateOrUpdateDescriptionAsync(int id, CompanyDescriptionDto description)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
CompanyDescription current = await context.CompanyDescriptions.FirstOrDefaultAsync(d => d.CompanyId == id); CompanyDescription current = await context.CompanyDescriptions.FirstOrDefaultAsync(d => d.CompanyId == id);
if(current is null) if(current is null)

View File

@@ -25,16 +25,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -53,18 +53,19 @@ public class CompanyLogosController(MarechaiContext context, IWebHostEnvironment
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
CompanyLogo logo = await context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync(); CompanyLogo logo = await context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync();
if(logo is null) return; if(logo is null) return NotFound();
context.CompanyLogos.Remove(logo); context.CompanyLogos.Remove(logo);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
if(File.Exists(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg"))) if(System.IO.File.Exists(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg")))
File.Delete(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg")); File.Delete(Path.Combine(_webRootPath, "assets/logos", logo.Guid + ".svg"));
if(File.Exists(Path.Combine(_webRootPath, "assets/logos/webp/1x", logo.Guid + ".webp"))) if(File.Exists(Path.Combine(_webRootPath, "assets/logos/webp/1x", logo.Guid + ".webp")))
@@ -108,26 +109,31 @@ public class CompanyLogosController(MarechaiContext context, IWebHostEnvironment
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task ChangeYearAsync(int id, int? year) public async Task<ActionResult> ChangeYearAsync(int id, int? year)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
CompanyLogo logo = await context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync(); CompanyLogo logo = await context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync();
if(logo is null) return; if(logo is null) return NotFound();
logo.Year = year; logo.Year = year;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(int companyId, Guid guid, int? year) public async Task<ActionResult<int>> CreateAsync(int companyId, Guid guid, int? year)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var logo = new CompanyLogo var logo = new CompanyLogo
{ {
Guid = guid, Guid = guid,
@@ -140,4 +146,4 @@ public class CompanyLogosController(MarechaiContext context, IWebHostEnvironment
return logo.Id; return logo.Id;
} }
} }

View File

@@ -24,8 +24,10 @@
*******************************************************************************/ *******************************************************************************/
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;

View File

@@ -24,8 +24,10 @@
*******************************************************************************/ *******************************************************************************/
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;

View File

@@ -75,30 +75,32 @@ public class CurrencyInflationController(MarechaiContext context) : ControllerBa
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(CurrencyInflationDto dto) public async Task<ActionResult> UpdateAsync(CurrencyInflationDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CurrencyInflation model = await context.CurrenciesInflation.FindAsync(dto.Id); CurrencyInflation model = await context.CurrenciesInflation.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.CurrencyCode = dto.CurrencyCode; model.CurrencyCode = dto.CurrencyCode;
model.Year = dto.Year; model.Year = dto.Year;
model.Inflation = dto.Inflation; model.Inflation = dto.Inflation;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(CurrencyInflationDto dto) public async Task<ActionResult<int>> CreateAsync(CurrencyInflationDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new CurrencyInflation var model = new CurrencyInflation
{ {
@@ -117,17 +119,19 @@ public class CurrencyInflationController(MarechaiContext context) : ControllerBa
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CurrencyInflation item = await context.CurrenciesInflation.FindAsync(id); CurrencyInflation item = await context.CurrenciesInflation.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CurrenciesInflation.Remove(item); context.CurrenciesInflation.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -83,14 +83,14 @@ public class CurrencyPeggingController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(CurrencyPeggingDto dto) public async Task<ActionResult> UpdateAsync(CurrencyPeggingDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CurrencyPegging model = await context.CurrenciesPegging.FindAsync(dto.Id); CurrencyPegging model = await context.CurrenciesPegging.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.SourceCode = dto.SourceCode; model.SourceCode = dto.SourceCode;
model.DestinationCode = dto.DestinationCode; model.DestinationCode = dto.DestinationCode;
@@ -98,17 +98,19 @@ public class CurrencyPeggingController(MarechaiContext context) : ControllerBase
model.Start = dto.Start; model.Start = dto.Start;
model.End = dto.End; model.End = dto.End;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(CurrencyPeggingDto dto) public async Task<ActionResult<int>> CreateAsync(CurrencyPeggingDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new CurrencyPegging var model = new CurrencyPegging
{ {
@@ -129,17 +131,19 @@ public class CurrencyPeggingController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
CurrencyPegging item = await context.CurrenciesPegging.FindAsync(id); CurrencyPegging item = await context.CurrenciesPegging.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.CurrenciesPegging.Remove(item); context.CurrenciesPegging.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -71,30 +71,32 @@ public class DocumentCompaniesController(MarechaiContext context) : ControllerBa
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(DocumentCompanyDto dto) public async Task<ActionResult> UpdateAsync(DocumentCompanyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentCompany model = await context.DocumentCompanies.FindAsync(dto.Id); DocumentCompany model = await context.DocumentCompanies.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.CompanyId = dto.CompanyId; model.CompanyId = dto.CompanyId;
model.Name = dto.Name; model.Name = dto.Name;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(DocumentCompanyDto dto) public async Task<ActionResult<int>> CreateAsync(DocumentCompanyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new DocumentCompany var model = new DocumentCompany
{ {
@@ -112,17 +114,19 @@ public class DocumentCompaniesController(MarechaiContext context) : ControllerBa
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentCompany item = await context.DocumentCompanies.FindAsync(id); DocumentCompany item = await context.DocumentCompanies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.DocumentCompanies.Remove(item); context.DocumentCompanies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -77,14 +77,14 @@ public class DocumentPeopleController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(DocumentPersonDto dto) public async Task<ActionResult> UpdateAsync(DocumentPersonDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentPerson model = await context.DocumentPeople.FindAsync(dto.Id); DocumentPerson model = await context.DocumentPeople.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Alias = dto.Alias; model.Alias = dto.Alias;
model.Name = dto.Name; model.Name = dto.Name;
@@ -93,17 +93,19 @@ public class DocumentPeopleController(MarechaiContext context) : ControllerBase
model.PersonId = dto.PersonId; model.PersonId = dto.PersonId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(DocumentPersonDto dto) public async Task<ActionResult<int>> CreateAsync(DocumentPersonDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new DocumentPerson var model = new DocumentPerson
{ {
@@ -124,17 +126,19 @@ public class DocumentPeopleController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentPerson item = await context.DocumentPeople.FindAsync(id); DocumentPerson item = await context.DocumentPeople.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.DocumentPeople.Remove(item); context.DocumentPeople.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -80,14 +80,14 @@ public class DocumentScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(DocumentScanDto dto) public async Task<ActionResult> UpdateAsync(DocumentScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentScan model = await context.DocumentScans.FindAsync(dto.Id); DocumentScan model = await context.DocumentScans.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Author = dto.Author; model.Author = dto.Author;
model.ColorSpace = dto.ColorSpace; model.ColorSpace = dto.ColorSpace;
@@ -104,17 +104,19 @@ public class DocumentScansController(MarechaiContext context) : ControllerBase
model.VerticalResolution = dto.VerticalResolution; model.VerticalResolution = dto.VerticalResolution;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<Guid> CreateAsync(DocumentScanDto dto) public async Task<ActionResult<Guid>> CreateAsync(DocumentScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new DocumentScan var model = new DocumentScan
{ {
@@ -148,17 +150,19 @@ public class DocumentScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(Guid id) public async Task<ActionResult> DeleteAsync(Guid id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentScan item = await context.DocumentScans.FindAsync(id); DocumentScan item = await context.DocumentScans.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.DocumentScans.Remove(item); context.DocumentScans.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -60,29 +60,31 @@ public class DocumentsByMachineController(MarechaiContext context) : ControllerB
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentsByMachine item = await context.DocumentsByMachines.FindAsync(id); DocumentsByMachine item = await context.DocumentsByMachines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.DocumentsByMachines.Remove(item); context.DocumentsByMachines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineId, long bookId) public async Task<ActionResult<long>> CreateAsync(int machineId, long bookId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new DocumentsByMachine var item = new DocumentsByMachine
{ {

View File

@@ -60,29 +60,31 @@ public class DocumentsByMachineFamilyController(MarechaiContext context) : Contr
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
DocumentsByMachineFamily item = await context.DocumentsByMachineFamilies.FindAsync(id); DocumentsByMachineFamily item = await context.DocumentsByMachineFamilies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.DocumentsByMachineFamilies.Remove(item); context.DocumentsByMachineFamilies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineFamilyId, long bookId) public async Task<ActionResult<long>> CreateAsync(int machineFamilyId, long bookId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new DocumentsByMachineFamily var item = new DocumentsByMachineFamily
{ {

View File

@@ -80,14 +80,14 @@ public class DocumentsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(DocumentDto dto) public async Task<ActionResult> UpdateAsync(DocumentDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Document model = await context.Documents.FindAsync(dto.Id); Document model = await context.Documents.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Title = dto.Title; model.Title = dto.Title;
model.NativeTitle = dto.NativeTitle; model.NativeTitle = dto.NativeTitle;
@@ -95,17 +95,19 @@ public class DocumentsController(MarechaiContext context) : ControllerBase
model.Synopsis = dto.Synopsis; model.Synopsis = dto.Synopsis;
model.CountryId = dto.CountryId; model.CountryId = dto.CountryId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(DocumentDto dto) public async Task<ActionResult<long>> CreateAsync(DocumentDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Document var model = new Document
{ {
@@ -133,17 +135,19 @@ public class DocumentsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Document item = await context.Documents.FindAsync(id); Document item = await context.Documents.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Documents.Remove(item); context.Documents.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -85,14 +85,14 @@ public class DumpsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(DumpDto dto) public async Task<ActionResult> UpdateAsync(DumpDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Dump model = await context.Dumps.FindAsync(dto.Id); Dump model = await context.Dumps.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Dumper = dto.Dumper; model.Dumper = dto.Dumper;
model.UserId = dto.UserId; model.UserId = dto.UserId;
@@ -101,17 +101,19 @@ public class DumpsController(MarechaiContext context) : ControllerBase
model.MediaId = dto.MediaId; model.MediaId = dto.MediaId;
model.MediaDumpId = dto.MediaDumpId; model.MediaDumpId = dto.MediaDumpId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(DumpDto dto) public async Task<ActionResult<ulong>> CreateAsync(DumpDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new Dump var model = new Dump
{ {
@@ -133,17 +135,19 @@ public class DumpsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Dump item = await context.Dumps.FindAsync(id); Dump item = await context.Dumps.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Dumps.Remove(item); context.Dumps.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -62,29 +62,31 @@ public class GpusByMachineController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
GpusByMachine item = await context.GpusByMachine.FindAsync(id); GpusByMachine item = await context.GpusByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.GpusByMachine.Remove(item); context.GpusByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int gpuId, int machineId) public async Task<ActionResult<long>> CreateAsync(int gpuId, int machineId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new GpusByMachine var item = new GpusByMachine
{ {

View File

@@ -106,14 +106,14 @@ public class GpusController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(GpuDto dto) public async Task<ActionResult> UpdateAsync(GpuDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Gpu model = await context.Gpus.FindAsync(dto.Id); Gpu model = await context.Gpus.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.CompanyId = dto.CompanyId; model.CompanyId = dto.CompanyId;
@@ -126,17 +126,19 @@ public class GpusController(MarechaiContext context) : ControllerBase
model.Transistors = dto.Transistors; model.Transistors = dto.Transistors;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(GpuDto dto) public async Task<ActionResult<int>> CreateAsync(GpuDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Gpu var model = new Gpu
{ {
@@ -161,17 +163,19 @@ public class GpusController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Gpu item = await context.Gpus.FindAsync(id); Gpu item = await context.Gpus.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Gpus.Remove(item); context.Gpus.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,44 +44,49 @@ public class InstructionSetExtensionsByProcessorController(MarechaiContext conte
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<InstructionSetExtensionByProcessorDto>> GetByProcessor(int processorId) => public async Task<List<InstructionSetExtensionByProcessorDto>> GetByProcessor(int processorId) => await context
await context.InstructionSetExtensionsByProcessor.Where(e => e.ProcessorId == processorId) .InstructionSetExtensionsByProcessor.Where(e => e.ProcessorId == processorId)
.Select(e => new InstructionSetExtensionByProcessorDto .Select(e => new InstructionSetExtensionByProcessorDto
{ {
Id = e.Id, Id = e.Id,
Extension = e.Extension.Extension, Extension = e.Extension.Extension,
Processor = e.Processor.Name, Processor = e.Processor.Name,
ProcessorId = e.ProcessorId, ProcessorId = e.ProcessorId,
ExtensionId = e.ExtensionId ExtensionId = e.ExtensionId
}) })
.OrderBy(e => e.Extension) .OrderBy(e => e.Extension)
.ToListAsync(); .ToListAsync();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
InstructionSetExtensionsByProcessor item = await context.InstructionSetExtensionsByProcessor.FindAsync(id); InstructionSetExtensionsByProcessor item = await context.InstructionSetExtensionsByProcessor.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.InstructionSetExtensionsByProcessor.Remove(item); context.InstructionSetExtensionsByProcessor.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(int processorId, int extensionId) public async Task<ActionResult<int>> CreateAsync(int processorId, int extensionId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new InstructionSetExtensionsByProcessor var item = new InstructionSetExtensionsByProcessor
{ {
ProcessorId = processorId, ProcessorId = processorId,
@@ -95,4 +98,4 @@ public class InstructionSetExtensionsByProcessorController(MarechaiContext conte
return item.Id; return item.Id;
} }
} }

View File

@@ -68,29 +68,31 @@ public class InstructionSetExtensionsController(MarechaiContext context) : Contr
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(InstructionSetExtension viewModel) public async Task<ActionResult> UpdateAsync(InstructionSetExtension viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
InstructionSetExtension model = await context.InstructionSetExtensions.FindAsync(viewModel.Id); InstructionSetExtension model = await context.InstructionSetExtensions.FindAsync(viewModel.Id);
if(model is null) return; if(model is null) return NotFound();
model.Extension = viewModel.Extension; model.Extension = viewModel.Extension;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(InstructionSetExtension viewModel) public async Task<ActionResult<int>> CreateAsync(InstructionSetExtension viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new InstructionSetExtension var model = new InstructionSetExtension
{ {
@@ -107,18 +109,20 @@ public class InstructionSetExtensionsController(MarechaiContext context) : Contr
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
InstructionSetExtension item = await context.InstructionSetExtensions.FindAsync(id); InstructionSetExtension item = await context.InstructionSetExtensions.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.InstructionSetExtensions.Remove(item); context.InstructionSetExtensions.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpGet] [HttpGet]

View File

@@ -68,29 +68,31 @@ public class InstructionSetsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(InstructionSet viewModel) public async Task<ActionResult> UpdateAsync(InstructionSet viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
InstructionSet model = await context.InstructionSets.FindAsync(viewModel.Id); InstructionSet model = await context.InstructionSets.FindAsync(viewModel.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = viewModel.Name; model.Name = viewModel.Name;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(InstructionSet viewModel) public async Task<ActionResult<int>> CreateAsync(InstructionSet viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new InstructionSet var model = new InstructionSet
{ {
@@ -107,18 +109,20 @@ public class InstructionSetsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
InstructionSet item = await context.InstructionSets.FindAsync(id); InstructionSet item = await context.InstructionSets.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.InstructionSets.Remove(item); context.InstructionSets.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpGet] [HttpGet]

View File

@@ -76,14 +76,14 @@ public class LicensesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(License viewModel) public async Task<ActionResult> UpdateAsync(License viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
License model = await context.Licenses.FindAsync(viewModel.Id); License model = await context.Licenses.FindAsync(viewModel.Id);
if(model is null) return; if(model is null) return NotFound();
model.FsfApproved = viewModel.FsfApproved; model.FsfApproved = viewModel.FsfApproved;
model.Link = viewModel.Link; model.Link = viewModel.Link;
@@ -93,17 +93,19 @@ public class LicensesController(MarechaiContext context) : ControllerBase
model.Text = viewModel.Text; model.Text = viewModel.Text;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(License viewModel) public async Task<ActionResult<int>> CreateAsync(License viewModel)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new License var model = new License
{ {
@@ -125,17 +127,19 @@ public class LicensesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
License item = await context.Licenses.FindAsync(id); License item = await context.Licenses.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Licenses.Remove(item); context.Licenses.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -72,30 +72,32 @@ public class MachineFamiliesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MachineFamilyDto dto) public async Task<ActionResult> UpdateAsync(MachineFamilyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MachineFamily model = await context.MachineFamilies.FindAsync(dto.Id); MachineFamily model = await context.MachineFamilies.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.CompanyId = dto.CompanyId; model.CompanyId = dto.CompanyId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(MachineFamilyDto dto) public async Task<ActionResult<int>> CreateAsync(MachineFamilyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new MachineFamily var model = new MachineFamily
{ {
@@ -113,17 +115,19 @@ public class MachineFamiliesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MachineFamily item = await context.MachineFamilies.FindAsync(id); MachineFamily item = await context.MachineFamilies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MachineFamilies.Remove(item); context.MachineFamilies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -104,14 +104,14 @@ public class MachinePhotosController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MachinePhotoDto dto) public async Task<ActionResult> UpdateAsync(MachinePhotoDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MachinePhoto model = await context.MachinePhotos.FindAsync(dto.Id); MachinePhoto model = await context.MachinePhotos.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Aperture = dto.Aperture; model.Aperture = dto.Aperture;
model.Author = dto.Author; model.Author = dto.Author;
@@ -149,17 +149,19 @@ public class MachinePhotosController(MarechaiContext context) : ControllerBase
model.WhiteBalance = dto.WhiteBalance; model.WhiteBalance = dto.WhiteBalance;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<Guid> CreateAsync(MachinePhotoDto dto) public async Task<ActionResult<Guid>> CreateAsync(MachinePhotoDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new MachinePhoto var model = new MachinePhoto
{ {

View File

@@ -29,6 +29,7 @@ using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
@@ -90,14 +91,14 @@ public class MachinesController
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MachineDto dto) public async Task<ActionResult> UpdateAsync(MachineDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Machine model = await context.Machines.FindAsync(dto.Id); Machine model = await context.Machines.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.CompanyId = dto.CompanyId; model.CompanyId = dto.CompanyId;
model.Name = dto.Name; model.Name = dto.Name;
@@ -131,17 +132,19 @@ public class MachinesController
if(news != null) await context.News.AddAsync(news); if(news != null) await context.News.AddAsync(news);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(MachineDto dto) public async Task<ActionResult<int>> CreateAsync(MachineDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Machine var model = new Machine
{ {
@@ -260,17 +263,19 @@ public class MachinesController
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Machine item = await context.Machines.FindAsync(id); Machine item = await context.Machines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Machines.Remove(item); context.Machines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -84,14 +84,14 @@ public class MagazineIssuesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MagazineIssueDto dto) public async Task<ActionResult> UpdateAsync(MagazineIssueDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazineIssue model = await context.MagazineIssues.FindAsync(dto.Id); MagazineIssue model = await context.MagazineIssues.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.MagazineId = dto.MagazineId; model.MagazineId = dto.MagazineId;
model.Caption = dto.Caption; model.Caption = dto.Caption;
@@ -101,17 +101,19 @@ public class MagazineIssuesController(MarechaiContext context) : ControllerBase
model.Pages = dto.Pages; model.Pages = dto.Pages;
model.IssueNumber = dto.IssueNumber; model.IssueNumber = dto.IssueNumber;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(MagazineIssueDto dto) public async Task<ActionResult<long>> CreateAsync(MagazineIssueDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new MagazineIssue var model = new MagazineIssue
{ {
@@ -134,17 +136,19 @@ public class MagazineIssuesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazineIssue item = await context.MagazineIssues.FindAsync(id); MagazineIssue item = await context.MagazineIssues.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MagazineIssues.Remove(item); context.MagazineIssues.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -80,14 +80,14 @@ public class MagazineScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MagazineScanDto dto) public async Task<ActionResult> UpdateAsync(MagazineScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazineScan model = await context.MagazineScans.FindAsync(dto.Id); MagazineScan model = await context.MagazineScans.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Author = dto.Author; model.Author = dto.Author;
model.ColorSpace = dto.ColorSpace; model.ColorSpace = dto.ColorSpace;
@@ -104,17 +104,19 @@ public class MagazineScansController(MarechaiContext context) : ControllerBase
model.VerticalResolution = dto.VerticalResolution; model.VerticalResolution = dto.VerticalResolution;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<Guid> CreateAsync(MagazineScanDto dto) public async Task<ActionResult<Guid>> CreateAsync(MagazineScanDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new MagazineScan var model = new MagazineScan
{ {
@@ -148,17 +150,19 @@ public class MagazineScansController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(Guid id) public async Task<ActionResult> DeleteAsync(Guid id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazineScan item = await context.MagazineScans.FindAsync(id); MagazineScan item = await context.MagazineScans.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MagazineScans.Remove(item); context.MagazineScans.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -60,29 +60,31 @@ public class MagazinesByMachineController(MarechaiContext context) : ControllerB
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazinesByMachine item = await context.MagazinesByMachines.FindAsync(id); MagazinesByMachine item = await context.MagazinesByMachines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MagazinesByMachines.Remove(item); context.MagazinesByMachines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineId, long bookId) public async Task<ActionResult<long>> CreateAsync(int machineId, long bookId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new MagazinesByMachine var item = new MagazinesByMachine
{ {

View File

@@ -60,29 +60,31 @@ public class MagazinesByMachineFamilyController(MarechaiContext context) : Contr
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MagazinesByMachineFamily item = await context.MagazinesByMachinesFamilies.FindAsync(id); MagazinesByMachineFamily item = await context.MagazinesByMachinesFamilies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MagazinesByMachinesFamilies.Remove(item); context.MagazinesByMachinesFamilies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineFamilyId, long bookId) public async Task<ActionResult<long>> CreateAsync(int machineFamilyId, long bookId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new MagazinesByMachineFamily var item = new MagazinesByMachineFamily
{ {

View File

@@ -95,14 +95,14 @@ public class MagazinesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MagazineDto dto) public async Task<ActionResult> UpdateAsync(MagazineDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Magazine model = await context.Magazines.FindAsync(dto.Id); Magazine model = await context.Magazines.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Title = dto.Title; model.Title = dto.Title;
model.NativeTitle = dto.NativeTitle; model.NativeTitle = dto.NativeTitle;
@@ -111,17 +111,19 @@ public class MagazinesController(MarechaiContext context) : ControllerBase
model.CountryId = dto.CountryId; model.CountryId = dto.CountryId;
model.Issn = dto.Issn; model.Issn = dto.Issn;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(MagazineDto dto) public async Task<ActionResult<long>> CreateAsync(MagazineDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Magazine var model = new Magazine
{ {
@@ -150,17 +152,19 @@ public class MagazinesController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Magazine item = await context.Magazines.FindAsync(id); Magazine item = await context.Magazines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Magazines.Remove(item); context.Magazines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -128,14 +128,14 @@ public class MediaController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(MediaDto dto) public async Task<ActionResult> UpdateAsync(MediaDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Media model = await context.Media.FindAsync(dto.Id); Media model = await context.Media.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Title = dto.Title; model.Title = dto.Title;
model.Sequence = dto.Sequence; model.Sequence = dto.Sequence;
@@ -163,17 +163,19 @@ public class MediaController(MarechaiContext context) : ControllerBase
model.StorageInterface = dto.StorageInterface; model.StorageInterface = dto.StorageInterface;
model.TableOfContents = dto.TableOfContents; model.TableOfContents = dto.TableOfContents;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(MediaDto dto) public async Task<ActionResult<ulong>> CreateAsync(MediaDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new Media var model = new Media
{ {
@@ -214,17 +216,19 @@ public class MediaController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Media item = await context.Media.FindAsync(id); Media item = await context.Media.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Media.Remove(item); context.Media.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -28,6 +28,7 @@ using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
@@ -65,29 +66,32 @@ public class MemoriesByMachineController(MarechaiContext context) : ControllerBa
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
MemoryByMachine item = await context.MemoryByMachine.FindAsync(id); MemoryByMachine item = await context.MemoryByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.MemoryByMachine.Remove(item); context.MemoryByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineId, MemoryType type, MemoryUsage usage, long? size, double? speed) public async Task<ActionResult<long>> CreateAsync(int machineId, MemoryType type, MemoryUsage usage, long? size,
double? speed)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new MemoryByMachine var item = new MemoryByMachine
{ {

View File

@@ -28,12 +28,12 @@ using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -158,17 +158,19 @@ public class NewsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
News item = await context.News.FindAsync(id); News item = await context.News.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.News.Remove(item); context.News.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -47,50 +45,53 @@ public class PeopleByBookController(MarechaiContext context) : ControllerBase
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<PersonByBookDto>> GetByBook(long bookId) => (await context.PeopleByBooks public async Task<List<PersonByBookDto>> GetByBook(long bookId) => (await context.PeopleByBooks
.Where(p => p.BookId == bookId) .Where(p => p.BookId == bookId)
.Select(p => new PersonByBookDto .Select(p => new PersonByBookDto
{ {
Id = p.Id, Id = p.Id,
Name = p.Person.Name, Name = p.Person.Name,
Surname = p.Person.Surname, Surname = p.Person.Surname,
Alias = p.Person.Alias, Alias = p.Person.Alias,
DisplayName = DisplayName = p.Person.DisplayName,
p.Person.DisplayName, PersonId = p.PersonId,
PersonId = p.PersonId, RoleId = p.RoleId,
RoleId = p.RoleId, Role = p.Role.Name,
Role = p.Role.Name, BookId = p.BookId
BookId = p.BookId })
}) .ToListAsync()).OrderBy(p => p.FullName)
.ToListAsync()) .ThenBy(p => p.Role)
.OrderBy(p => p.FullName) .ToList();
.ThenBy(p => p.Role)
.ToList();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
PeopleByBook item = await context.PeopleByBooks.FindAsync(id); PeopleByBook item = await context.PeopleByBooks.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.PeopleByBooks.Remove(item); context.PeopleByBooks.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int personId, long bookId, string roleId) public async Task<ActionResult<long>> CreateAsync(int personId, long bookId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new PeopleByBook var item = new PeopleByBook
{ {
PersonId = personId, PersonId = personId,
@@ -103,4 +104,4 @@ public class PeopleByBookController(MarechaiContext context) : ControllerBase
return item.Id; return item.Id;
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,49 +44,54 @@ public class PeopleByDocumentController(MarechaiContext context) : ControllerBas
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<PersonByDocumentDto>> GetByDocument(long documentId) => (await context public async Task<List<PersonByDocumentDto>> GetByDocument(long documentId) => (await context.PeopleByDocuments
.PeopleByDocuments.Where(p => p.DocumentId == documentId) .Where(p => p.DocumentId == documentId)
.Select(p => new PersonByDocumentDto .Select(p => new PersonByDocumentDto
{ {
Id = p.Id, Id = p.Id,
Name = p.Person.Name, Name = p.Person.Name,
Surname = p.Person.Surname, Surname = p.Person.Surname,
Alias = p.Person.Alias, Alias = p.Person.Alias,
DisplayName = p.Person.DisplayName, DisplayName = p.Person.DisplayName,
PersonId = p.PersonId, PersonId = p.PersonId,
RoleId = p.RoleId, RoleId = p.RoleId,
Role = p.Role.Name, Role = p.Role.Name,
DocumentId = p.DocumentId DocumentId = p.DocumentId
}) })
.ToListAsync()).OrderBy(p => p.FullName) .ToListAsync()).OrderBy(p => p.FullName)
.ThenBy(p => p.Role) .ThenBy(p => p.Role)
.ToList(); .ToList();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
PeopleByDocument item = await context.PeopleByDocuments.FindAsync(id); PeopleByDocument item = await context.PeopleByDocuments.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.PeopleByDocuments.Remove(item); context.PeopleByDocuments.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int personId, long documentId, string roleId) public async Task<ActionResult<long>> CreateAsync(int personId, long documentId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new PeopleByDocument var item = new PeopleByDocument
{ {
PersonId = personId, PersonId = personId,
@@ -101,4 +104,4 @@ public class PeopleByDocumentController(MarechaiContext context) : ControllerBas
return item.Id; return item.Id;
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,49 +44,54 @@ public class PeopleByMagazineController(MarechaiContext context) : ControllerBas
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<PersonByMagazineDto>> GetByMagazine(long magazineId) => (await context public async Task<List<PersonByMagazineDto>> GetByMagazine(long magazineId) => (await context.PeopleByMagazines
.PeopleByMagazines.Where(p => p.MagazineId == magazineId) .Where(p => p.MagazineId == magazineId)
.Select(p => new PersonByMagazineDto .Select(p => new PersonByMagazineDto
{ {
Id = p.Id, Id = p.Id,
Name = p.Person.Name, Name = p.Person.Name,
Surname = p.Person.Surname, Surname = p.Person.Surname,
Alias = p.Person.Alias, Alias = p.Person.Alias,
DisplayName = p.Person.DisplayName, DisplayName = p.Person.DisplayName,
PersonId = p.PersonId, PersonId = p.PersonId,
RoleId = p.RoleId, RoleId = p.RoleId,
Role = p.Role.Name, Role = p.Role.Name,
MagazineId = p.MagazineId MagazineId = p.MagazineId
}) })
.ToListAsync()).OrderBy(p => p.FullName) .ToListAsync()).OrderBy(p => p.FullName)
.ThenBy(p => p.Role) .ThenBy(p => p.Role)
.ToList(); .ToList();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
PeopleByMagazine item = await context.PeopleByMagazines.FindAsync(id); PeopleByMagazine item = await context.PeopleByMagazines.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.PeopleByMagazines.Remove(item); context.PeopleByMagazines.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int personId, long magazineId, string roleId) public async Task<ActionResult<long>> CreateAsync(int personId, long magazineId, string roleId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new PeopleByMagazine var item = new PeopleByMagazine
{ {
PersonId = personId, PersonId = personId,
@@ -101,4 +104,4 @@ public class PeopleByMagazineController(MarechaiContext context) : ControllerBas
return item.Id; return item.Id;
} }
} }

View File

@@ -91,14 +91,14 @@ public class PeopleController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(PersonDto dto) public async Task<ActionResult> UpdateAsync(PersonDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Person model = await context.People.FindAsync(dto.Id); Person model = await context.People.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.Surname = dto.Surname; model.Surname = dto.Surname;
@@ -113,17 +113,19 @@ public class PeopleController(MarechaiContext context) : ControllerBase
model.DisplayName = dto.DisplayName; model.DisplayName = dto.DisplayName;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(PersonDto dto) public async Task<ActionResult<int>> CreateAsync(PersonDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Person var model = new Person
{ {
@@ -150,17 +152,19 @@ public class PeopleController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Person item = await context.People.FindAsync(id); Person item = await context.People.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.People.Remove(item); context.People.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -63,29 +63,31 @@ public class ProcessorsByMachineController(MarechaiContext context) : Controller
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
ProcessorsByMachine item = await context.ProcessorsByMachine.FindAsync(id); ProcessorsByMachine item = await context.ProcessorsByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.ProcessorsByMachine.Remove(item); context.ProcessorsByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int processorId, int machineId, float? speed) public async Task<ActionResult<long>> CreateAsync(int processorId, int machineId, float? speed)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new ProcessorsByMachine var item = new ProcessorsByMachine
{ {

View File

@@ -163,14 +163,14 @@ public class ProcessorsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(ProcessorDto dto) public async Task<ActionResult> UpdateAsync(ProcessorDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Processor model = await context.Processors.FindAsync(dto.Id); Processor model = await context.Processors.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.AddrBus = dto.AddrBus; model.AddrBus = dto.AddrBus;
model.CompanyId = dto.CompanyId; model.CompanyId = dto.CompanyId;
@@ -199,17 +199,19 @@ public class ProcessorsController(MarechaiContext context) : ControllerBase
model.Transistors = dto.Transistors; model.Transistors = dto.Transistors;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(ProcessorDto dto) public async Task<ActionResult<int>> CreateAsync(ProcessorDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Processor var model = new Processor
{ {
@@ -250,17 +252,19 @@ public class ProcessorsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Processor item = await context.Processors.FindAsync(id); Processor item = await context.Processors.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Processors.Remove(item); context.Processors.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -47,56 +45,65 @@ public class ResolutionsByGpuController(MarechaiContext context) : ControllerBas
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<ResolutionByGpuDto>> GetByGpu(int resolutionId) => (await context.ResolutionsByGpu public async Task<List<ResolutionByGpuDto>> GetByGpu(int resolutionId) => (await context.ResolutionsByGpu
.Where(r => r.ResolutionId == resolutionId) .Where(r => r.ResolutionId ==
.Select(r => new ResolutionByGpuDto resolutionId)
{ .Select(r => new ResolutionByGpuDto
Id = r.Id, {
GpuId = r.GpuId, Id = r.Id,
Resolution = new ResolutionDto GpuId = r.GpuId,
{ Resolution = new ResolutionDto
Id = r.Resolution.Id, {
Width = r.Resolution.Width, Id = r.Resolution.Id,
Height = r.Resolution.Height, Width = r.Resolution.Width,
Colors = r.Resolution.Colors, Height = r.Resolution.Height,
Palette = r.Resolution.Palette, Colors = r.Resolution.Colors,
Chars = r.Resolution.Chars, Palette = r.Resolution
Grayscale = r.Resolution.Grayscale .Palette,
}, Chars = r.Resolution.Chars,
ResolutionId = r.ResolutionId Grayscale = r.Resolution
}) .Grayscale
.ToListAsync()).OrderBy(r => r.Resolution.Width) },
.ThenBy(r => r.Resolution.Height) ResolutionId = r.ResolutionId
.ThenBy(r => r.Resolution.Chars) })
.ThenBy(r => r.Resolution.Grayscale) .ToListAsync())
.ThenBy(r => r.Resolution.Colors) .OrderBy(r => r.Resolution.Width)
.ThenBy(r => r.Resolution.Palette) .ThenBy(r => r.Resolution.Height)
.ToList(); .ThenBy(r => r.Resolution.Chars)
.ThenBy(r => r.Resolution.Grayscale)
.ThenBy(r => r.Resolution.Colors)
.ThenBy(r => r.Resolution.Palette)
.ToList();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
ResolutionsByGpu item = await context.ResolutionsByGpu.FindAsync(id); ResolutionsByGpu item = await context.ResolutionsByGpu.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.ResolutionsByGpu.Remove(item); context.ResolutionsByGpu.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int resolutionId, int gpuId) public async Task<ActionResult<long>> CreateAsync(int resolutionId, int gpuId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new ResolutionsByGpu var item = new ResolutionsByGpu
{ {
GpuId = gpuId, GpuId = gpuId,
@@ -108,4 +115,4 @@ public class ResolutionsByGpuController(MarechaiContext context) : ControllerBas
return item.Id; return item.Id;
} }
} }

View File

@@ -23,7 +23,6 @@
// Copyright © 2003-2025 Natalia Portillo // Copyright © 2003-2025 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
@@ -34,7 +33,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Marechai.Server.Controllers; namespace Marechai.Server.Controllers;
@@ -46,57 +44,62 @@ public class ResolutionsByScreenController(MarechaiContext context) : Controller
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<List<ResolutionByScreenDto>> GetByScreen(int resolutionId) => (await context public async Task<List<ResolutionByScreenDto>> GetByScreen(int resolutionId) => (await context.ResolutionsByScreen
.ResolutionsByScreen.Where(r => r.ResolutionId == resolutionId) .Where(r => r.ResolutionId == resolutionId)
.Select(r => new ResolutionByScreenDto .Select(r => new ResolutionByScreenDto
{ {
Id = r.Id, Id = r.Id,
ScreenId = r.ScreenId, ScreenId = r.ScreenId,
Resolution = new ResolutionDto Resolution = new ResolutionDto
{ {
Id = r.Resolution.Id, Id = r.Resolution.Id,
Width = r.Resolution.Width, Width = r.Resolution.Width,
Height = r.Resolution.Height, Height = r.Resolution.Height,
Colors = r.Resolution.Colors, Colors = r.Resolution.Colors,
Palette = r.Resolution.Palette, Palette = r.Resolution.Palette,
Chars = r.Resolution.Chars, Chars = r.Resolution.Chars,
Grayscale = r.Resolution.Grayscale Grayscale = r.Resolution.Grayscale
}, },
ResolutionId = r.ResolutionId ResolutionId = r.ResolutionId
}) })
.ToListAsync()).OrderBy(r => r.Resolution.Width) .ToListAsync()).OrderBy(r => r.Resolution.Width)
.ThenBy(r => r.Resolution.Height) .ThenBy(r => r.Resolution.Height)
.ThenBy(r => r.Resolution.Chars) .ThenBy(r => r.Resolution.Chars)
.ThenBy(r => r.Resolution.Grayscale) .ThenBy(r => r.Resolution.Grayscale)
.ThenBy(r => r.Resolution.Colors) .ThenBy(r => r.Resolution.Colors)
.ThenBy(r => r.Resolution.Palette) .ThenBy(r => r.Resolution.Palette)
.ToList(); .ToList();
[HttpDelete] [HttpDelete]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return;
if(userId is null) return Unauthorized();
ResolutionsByScreen item = await context.ResolutionsByScreen.FindAsync(id); ResolutionsByScreen item = await context.ResolutionsByScreen.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.ResolutionsByScreen.Remove(item); context.ResolutionsByScreen.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int resolutionId, int screenId) public async Task<ActionResult<long>> CreateAsync(int resolutionId, int screenId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0;
if(userId is null) return Unauthorized();
var item = new ResolutionsByScreen var item = new ResolutionsByScreen
{ {
ScreenId = screenId, ScreenId = screenId,
@@ -108,4 +111,4 @@ public class ResolutionsByScreenController(MarechaiContext context) : Controller
return item.Id; return item.Id;
} }
} }

View File

@@ -83,14 +83,14 @@ public class ResolutionsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(ResolutionDto dto) public async Task<ActionResult> UpdateAsync(ResolutionDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Resolution model = await context.Resolutions.FindAsync(dto.Id); Resolution model = await context.Resolutions.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Chars = dto.Chars; model.Chars = dto.Chars;
model.Colors = dto.Colors; model.Colors = dto.Colors;
@@ -100,17 +100,19 @@ public class ResolutionsController(MarechaiContext context) : ControllerBase
model.Width = dto.Width; model.Width = dto.Width;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(ResolutionDto dto) public async Task<ActionResult<int>> CreateAsync(ResolutionDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Resolution var model = new Resolution
{ {
@@ -132,17 +134,19 @@ public class ResolutionsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Resolution item = await context.Resolutions.FindAsync(id); Resolution item = await context.Resolutions.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Resolutions.Remove(item); context.Resolutions.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -78,29 +78,31 @@ public class ScreensByMachineController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
ScreensByMachine item = await context.ScreensByMachine.FindAsync(id); ScreensByMachine item = await context.ScreensByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.ScreensByMachine.Remove(item); context.ScreensByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineId, int screenId) public async Task<ActionResult<long>> CreateAsync(int machineId, int screenId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
if(context.ScreensByMachine.Any(s => s.MachineId == machineId && s.ScreenId == screenId)) return 0; if(context.ScreensByMachine.Any(s => s.MachineId == machineId && s.ScreenId == screenId)) return 0;
var item = new ScreensByMachine var item = new ScreensByMachine

View File

@@ -102,18 +102,18 @@ public class ScreensController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(ScreenDto dto) public async Task<ActionResult> UpdateAsync(ScreenDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Screen model = await context.Screens.FindAsync(dto.Id); Screen model = await context.Screens.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
Resolution nativeResolution = await context.Resolutions.FindAsync(dto.NativeResolutionId); Resolution nativeResolution = await context.Resolutions.FindAsync(dto.NativeResolutionId);
if(nativeResolution is null) return; if(nativeResolution is null) return NotFound();
model.Diagonal = dto.Diagonal; model.Diagonal = dto.Diagonal;
model.EffectiveColors = dto.EffectiveColors; model.EffectiveColors = dto.EffectiveColors;
@@ -123,17 +123,19 @@ public class ScreensController(MarechaiContext context) : ControllerBase
model.Width = dto.Width; model.Width = dto.Width;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(ScreenDto dto) public async Task<ActionResult<int>> CreateAsync(ScreenDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new Screen var model = new Screen
{ {
@@ -155,17 +157,19 @@ public class ScreensController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
Screen item = await context.Screens.FindAsync(id); Screen item = await context.Screens.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.Screens.Remove(item); context.Screens.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -74,30 +74,32 @@ public class SoftwareFamiliesController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(SoftwareFamilyDto dto) public async Task<ActionResult> UpdateAsync(SoftwareFamilyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareFamily model = await context.SoftwareFamilies.FindAsync(dto.Id); SoftwareFamily model = await context.SoftwareFamilies.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.ParentId = dto.ParentId; model.ParentId = dto.ParentId;
model.Introduced = dto.Introduced; model.Introduced = dto.Introduced;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(SoftwareFamilyDto dto) public async Task<ActionResult<ulong>> CreateAsync(SoftwareFamilyDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new SoftwareFamily var model = new SoftwareFamily
{ {
@@ -116,17 +118,19 @@ public class SoftwareFamiliesController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareFamily item = await context.SoftwareFamilies.FindAsync(id); SoftwareFamily item = await context.SoftwareFamilies.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.SoftwareFamilies.Remove(item); context.SoftwareFamilies.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -105,14 +105,14 @@ public class SoftwareVariantsController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(SoftwareVariantDto dto) public async Task<ActionResult> UpdateAsync(SoftwareVariantDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareVariant model = await context.SoftwareVariants.FindAsync(dto.Id); SoftwareVariant model = await context.SoftwareVariants.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.Version = dto.Version; model.Version = dto.Version;
@@ -129,17 +129,19 @@ public class SoftwareVariantsController(MarechaiContext context) : ControllerBas
model.DistributionMode = dto.DistributionMode; model.DistributionMode = dto.DistributionMode;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(SoftwareVariantDto dto) public async Task<ActionResult<ulong>> CreateAsync(SoftwareVariantDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new SoftwareVariant var model = new SoftwareVariant
{ {
@@ -168,17 +170,19 @@ public class SoftwareVariantsController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareVariant item = await context.SoftwareVariants.FindAsync(id); SoftwareVariant item = await context.SoftwareVariants.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.SoftwareVariants.Remove(item); context.SoftwareVariants.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -88,14 +88,14 @@ public class SoftwareVersionsController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(SoftwareVersionDto dto) public async Task<ActionResult> UpdateAsync(SoftwareVersionDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareVersion model = await context.SoftwareVersions.FindAsync(dto.Id); SoftwareVersion model = await context.SoftwareVersions.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Name = dto.Name; model.Name = dto.Name;
model.Codename = dto.Codename; model.Codename = dto.Codename;
@@ -105,17 +105,19 @@ public class SoftwareVersionsController(MarechaiContext context) : ControllerBas
model.LicenseId = dto.LicenseId; model.LicenseId = dto.LicenseId;
model.PreviousId = dto.PreviousId; model.PreviousId = dto.PreviousId;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ulong> CreateAsync(SoftwareVersionDto dto) public async Task<ActionResult<ulong>> CreateAsync(SoftwareVersionDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return null; if(userId is null) return Unauthorized();
var model = new SoftwareVersion var model = new SoftwareVersion
{ {
@@ -138,17 +140,19 @@ public class SoftwareVersionsController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(ulong id) public async Task<ActionResult> DeleteAsync(ulong id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoftwareVersion item = await context.SoftwareVersions.FindAsync(id); SoftwareVersion item = await context.SoftwareVersions.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.SoftwareVersions.Remove(item); context.SoftwareVersions.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -62,29 +62,31 @@ public class SoundSynthsByMachineController(MarechaiContext context) : Controlle
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoundByMachine item = await context.SoundByMachine.FindAsync(id); SoundByMachine item = await context.SoundByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.SoundByMachine.Remove(item); context.SoundByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int soundSynthId, int machineId) public async Task<ActionResult<long>> CreateAsync(int soundSynthId, int machineId)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new SoundByMachine var item = new SoundByMachine
{ {

View File

@@ -117,14 +117,14 @@ public class SoundSynthsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task UpdateAsync(SoundSynthDto dto) public async Task<ActionResult> UpdateAsync(SoundSynthDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoundSynth model = await context.SoundSynths.FindAsync(dto.Id); SoundSynth model = await context.SoundSynths.FindAsync(dto.Id);
if(model is null) return; if(model is null) return NotFound();
model.Depth = dto.Depth; model.Depth = dto.Depth;
model.Frequency = dto.Frequency; model.Frequency = dto.Frequency;
@@ -138,17 +138,19 @@ public class SoundSynthsController(MarechaiContext context) : ControllerBase
model.WhiteNoise = dto.WhiteNoise; model.WhiteNoise = dto.WhiteNoise;
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<int> CreateAsync(SoundSynthDto dto) public async Task<ActionResult<int>> CreateAsync(SoundSynthDto dto)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var model = new SoundSynth var model = new SoundSynth
{ {
@@ -174,17 +176,19 @@ public class SoundSynthsController(MarechaiContext context) : ControllerBase
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(int id) public async Task<ActionResult> DeleteAsync(int id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
SoundSynth item = await context.SoundSynths.FindAsync(id); SoundSynth item = await context.SoundSynths.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.SoundSynths.Remove(item); context.SoundSynths.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
} }

View File

@@ -28,6 +28,7 @@ using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Marechai.Data.Dtos; using Marechai.Data.Dtos;
using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
@@ -63,29 +64,32 @@ public class StorageByMachineController(MarechaiContext context) : ControllerBas
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task DeleteAsync(long id) public async Task<ActionResult> DeleteAsync(long id)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return; if(userId is null) return Unauthorized();
StorageByMachine item = await context.StorageByMachine.FindAsync(id); StorageByMachine item = await context.StorageByMachine.FindAsync(id);
if(item is null) return; if(item is null) return NotFound();
context.StorageByMachine.Remove(item); context.StorageByMachine.Remove(item);
await context.SaveChangesWithUserAsync(userId); await context.SaveChangesWithUserAsync(userId);
return Ok();
} }
[HttpPost] [HttpPost]
[Authorize(Roles = "Admin,UberAdmin")] [Authorize(Roles = "Admin,UberAdmin")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<long> CreateAsync(int machineId, StorageType type, StorageInterface @interface, long? capacity) public async Task<ActionResult<long>> CreateAsync(int machineId, StorageType type, StorageInterface @interface,
long? capacity)
{ {
string userId = User.FindFirstValue(ClaimTypes.Sid); string userId = User.FindFirstValue(ClaimTypes.Sid);
if(userId is null) return 0; if(userId is null) return Unauthorized();
var item = new StorageByMachine var item = new StorageByMachine
{ {