Compare commits

..

No commits in common. "87a2250852d5836ca52f8374bca0436eba855437" and "e3a188814654cd297c3ea4940ecb59e0c9cc6ac6" have entirely different histories.

6 changed files with 14 additions and 62 deletions

View file

@ -4,5 +4,4 @@ public class ProductTableGet
{ {
public string ProductTableName { get; set; } public string ProductTableName { get; set; }
public string ProductTableId { get; set; } public string ProductTableId { get; set; }
public string CompanyTableId { get; set; }
} }

View file

@ -35,7 +35,7 @@ public class AdminOnlyHandler : AuthorizationHandler<AdminOnlyRequirement>
} }
catch (NotFoundException _) catch (NotFoundException _)
{ {
throw new ForbiddenException("You need to be logged in to do this action."); throw new ForbiddenException();
} }
if (_userProfileService.IsUserProfileAdmin(userProfile)) if (_userProfileService.IsUserProfileAdmin(userProfile))

View file

@ -1,70 +1,38 @@
namespace DrinkRateAPI.Exceptions; namespace DrinkRateAPI.Exceptions;
public class DrinkRateException : Exception public abstract class DrinkRateException : Exception;
{
public DrinkRateException() : base() { }
public DrinkRateException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 400 - Bad request /// 400 - Bad request
/// </summary> /// </summary>
public class BadRequestException : DrinkRateException public class BadRequestException : DrinkRateException;
{
public BadRequestException() : base() { }
public BadRequestException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 401 - Unauthenticated /// 401 - Unauthenticated
/// </summary> /// </summary>
public class UnauthenticatedException : DrinkRateException public class UnauthenticatedException : DrinkRateException;
{
public UnauthenticatedException() : base() { }
public UnauthenticatedException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 402 - Payment required /// 402 - Payment required
/// </summary> /// </summary>
public class PaymentRequiredException : DrinkRateException public class PaymentRequiredException : DrinkRateException;
{
public PaymentRequiredException() : base() { }
public PaymentRequiredException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 403 - Forbidden /// 403 - Forbidden
/// </summary> /// </summary>
public class ForbiddenException : DrinkRateException public class ForbiddenException : DrinkRateException;
{
public ForbiddenException() : base() { }
public ForbiddenException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 404 - Not found /// 404 - Not found
/// </summary> /// </summary>
public class NotFoundException : DrinkRateException public class NotFoundException : DrinkRateException;
{
public NotFoundException() : base() { }
public NotFoundException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 418 - I'm a teapot /// 418 - I'm a teapot
/// </summary> /// </summary>
public class IamATeapotException : DrinkRateException public class IamATeapotException : DrinkRateException;
{
public IamATeapotException() : base() { }
public IamATeapotException(string message) : base(message) { }
}
/// <summary> /// <summary>
/// 451 - Unavailable for lagal reasons /// 451 - Unavailable for lagal reasons
/// </summary> /// </summary>
public class UnavailableForLagalReasonsException : DrinkRateException public class UnavailableForLagalReasonsException : DrinkRateException;
{
public UnavailableForLagalReasonsException() : base() { }
public UnavailableForLagalReasonsException(string message) : base(message) { }
}

View file

@ -13,7 +13,7 @@ public class ApplicationUserService(ApplicationDbContext context)
{ {
var appUserId = identity.FindFirst(ClaimTypes.NameIdentifier)?.Value; var appUserId = identity.FindFirst(ClaimTypes.NameIdentifier)?.Value;
var profile = await _context.UserProfiles var profile = await _context.UserProfiles
.FirstOrDefaultAsync(x => x.ApplicationUserId.ToString() == appUserId && !x.IsDeleted) .FirstOrDefaultAsync(x => x.ApplicationUserId.ToString() == appUserId)
?? throw new NotFoundException(); ?? throw new NotFoundException();
return profile; return profile;

View file

@ -4,7 +4,6 @@ using DrinkRateAPI.Contexts;
using DrinkRateAPI.DbEntities; using DrinkRateAPI.DbEntities;
using DrinkRateAPI.Exceptions; using DrinkRateAPI.Exceptions;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Npgsql;
namespace DrinkRateAPI.Services; namespace DrinkRateAPI.Services;
@ -25,20 +24,7 @@ public class ProductCompanyTableCoupleService(ApplicationDbContext context)
}; };
_context.CompanyTable.Add(companyTable); _context.CompanyTable.Add(companyTable);
await _context.SaveChangesAsync();
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException ex) when
(ex.InnerException is PostgresException
{
SqlState: PostgresErrorCodes.UniqueViolation
}
)
{
throw new BadRequestException("Product table or company table with the same name already exists.");
}
return await GetProductCompanyTableCouplePostResponse( return await GetProductCompanyTableCouplePostResponse(
productCompanyTableCouplePost.ProductTableName, productCompanyTableCouplePost.ProductTableName,

View file

@ -15,13 +15,12 @@ public class ProductTableService(ApplicationDbContext context)
{ {
var productTable = var productTable =
await _context.ProductTable.FirstOrDefaultAsync(x => x.ProductTableName == productTableName) ?? await _context.ProductTable.FirstOrDefaultAsync(x => x.ProductTableName == productTableName) ??
throw new NotFoundException($"Product table with the name {productTableName} not found."); throw new NotFoundException();
return new ProductTableGet return new ProductTableGet
{ {
ProductTableName = productTable.ProductTableName, ProductTableName = productTable.ProductTableName,
ProductTableId = productTable.Id.ToString(), ProductTableId = productTable.Id.ToString()
CompanyTableId = productTable.CompanyTableId.ToString(),
}; };
} }
} }