From 81a0570c1b64891f286ee86d34d6f77090d525e3 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 5 Jun 2026 00:37:02 +1000 Subject: Deleted server-specific files --- Controllers/ApiUserController.cs | 113 --------------------------------------- 1 file changed, 113 deletions(-) delete mode 100644 Controllers/ApiUserController.cs (limited to 'Controllers/ApiUserController.cs') diff --git a/Controllers/ApiUserController.cs b/Controllers/ApiUserController.cs deleted file mode 100644 index 3230218..0000000 --- a/Controllers/ApiUserController.cs +++ /dev/null @@ -1,113 +0,0 @@ -using HyperBooru.ApiModels; -using HyperBooru.Services; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; - -namespace HyperBooru.Controllers; - -[ApiController] -[Authorize] -[Route("/api/user")] -public class ApiUserController : Controller { - private IDbContextFactory dbFactory; - - public ApiUserController(IDbContextFactory dbFactory) => - this.dbFactory = dbFactory; - - [HttpGet] - public async Task GetAllUsersAsync() { - using var db = dbFactory.CreateDbContext(); - - return Ok(await db.Users - .Select(u => (ApiModels.User) u) - .ToArrayAsync()); - } - - [HttpGet("{userId}")] - public async Task GetUserAsync([FromRoute] Guid userId) { - using var db = dbFactory.CreateDbContext(); - - var user = await db.Users - .FirstOrDefaultAsync(u => u.Guid == userId); - - if(user is null) - throw new ObjectNotFoundException([ userId ]); - - return Ok((ApiModels.User) user); - } - - [HttpPost] - public async Task CreateUserAsync([FromBody] ApiModels.UserCreateRequest request) { - using var db = dbFactory.CreateDbContext(); - - using var transaction = await db.Database.BeginTransactionAsync(); - - if(await db.Users.AnyAsync(u => u.Username == request.Username)) - throw new ApiModels.ArgumentException("Username already exists"); - - var user = new User() { - Username = request.Username, - PasswordHash = UserService.HashPassword(request.Password) - }; - - db.Users.Add(user); - - await db.SaveChangesAsync(); - await transaction.CommitAsync(); - - return Ok((ApiModels.User) user); - } - - [HttpPatch("{userId}")] - public async Task UpdateUserAsync( - [FromRoute] Guid userId, - [FromBody] ApiModels.UserUpdateRequest request) { - - using var db = dbFactory.CreateDbContext(); - - using var transaction = await db.Database.BeginTransactionAsync(); - - var user = await db.Users.FirstOrDefaultAsync(u => u.Guid == userId); - if(user is null) - throw new ObjectNotFoundException([ userId ]); - - if(request.Username is not null) { - if(string.IsNullOrWhiteSpace(request.Username)) - throw new ApiModels.ArgumentException("Username cannot be empty"); - user.Username = request.Username; - } - - if(request.Password is not null) { - if(string.IsNullOrWhiteSpace(request.Password)) - throw new ApiModels.ArgumentException("Password cannot be empty"); - user.PasswordHash = UserService.HashPassword(request.Password); - } - - await db.SaveChangesAsync(); - await transaction.CommitAsync(); - - return Ok((ApiModels.User) user); - } - - [HttpDelete("{userId}")] - public async Task DeleteUserAsync([FromRoute] Guid userId) { - if(userId == HBContext.AdminUser) - throw new ApiModels.ArgumentException("Cannot delete the admin user"); - - using var db = dbFactory.CreateDbContext(); - - using var transaction = await db.Database.BeginTransactionAsync(); - - var user = await db.Users.FirstOrDefaultAsync(u => u.Guid == userId); - if(user is null) - throw new ObjectNotFoundException([ userId ]); - - db.Users.Remove(user); - - await db.SaveChangesAsync(); - await transaction.CommitAsync(); - - return Ok((ApiModels.User) user); - } -} -- cgit v1.3