fix(backend): make API types internal

This commit is contained in:
2026-05-07 14:06:37 -04:00
parent d1621ecb36
commit 9022fa7d93
208 changed files with 347 additions and 344 deletions

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Configuration;
public record JwtOptions
internal record JwtOptions
{
public const string SectionName = "Authentication:Jwt";

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Contracts;
public interface IUserLookup
internal interface IUserLookup
{
Task<UserReference?> GetUserAsync(Guid userId, CancellationToken cancellationToken = default);
}

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Contracts;
public static class KnownRoles
internal static class KnownRoles
{
public const string Administrator = "administrator";
public const string Manager = "manager";

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Contracts;
public record UserReference(
internal record UserReference(
Guid Id,
string Fullname,
string? PortraitUrl);

View File

@@ -4,7 +4,7 @@ using Socialize.Api.Modules.Identity.Models;
namespace Socialize.Api.Modules.Identity.Data;
public class IdentityService(
internal class IdentityService(
UserManager userManager,
IHttpContextAccessor contextAccessor
)

View File

@@ -2,7 +2,7 @@
namespace Socialize.Api.Modules.Identity.Data;
public class Role : IdentityRole<Guid>
internal class Role : IdentityRole<Guid>
{
public Role() { }
public Role(string roleName) : base(roleName) { }

View File

@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Identity;
namespace Socialize.Api.Modules.Identity.Data;
public class User : IdentityUser<Guid>
internal class User : IdentityUser<Guid>
{
[MaxLength(256)] public string? Alias { get; set; }
[MaxLength(256)] public string? Firstname { get; set; }

View File

@@ -3,7 +3,7 @@ using Microsoft.Extensions.Options;
namespace Socialize.Api.Modules.Identity.Data;
public sealed class UserManager(
internal sealed class UserManager(
IUserStore<User> store,
IOptions<IdentityOptions> optionsAccessor,
IPasswordHasher<User> passwordHasher,

View File

@@ -6,11 +6,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangeAddressRequest(
internal record ChangeAddressRequest(
string? Address);
[PublicAPI]
public class ChangeAddressHandler(
internal class ChangeAddressHandler(
UserManager userManager)
: Endpoint<ChangeAddressRequest>
{

View File

@@ -6,11 +6,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangeAliasRequest(
internal record ChangeAliasRequest(
string? Alias);
[PublicAPI]
public class ChangeAliasHandler(
internal class ChangeAliasHandler(
UserManager userManager)
: Endpoint<ChangeAliasRequest>
{

View File

@@ -6,11 +6,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangeBirthDateRequest(
internal record ChangeBirthDateRequest(
DateTime BirthDate);
[PublicAPI]
public class ChangeBirthDateHandler(
internal class ChangeBirthDateHandler(
UserManager userManager)
: Endpoint<ChangeBirthDateRequest>
{

View File

@@ -6,11 +6,11 @@ using Microsoft.AspNetCore.Identity;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangeEmailRequest(
internal record ChangeEmailRequest(
string? Email);
[PublicAPI]
public class ChangeEmailHandler(
internal class ChangeEmailHandler(
UserManager userManager)
: Endpoint<ChangeEmailRequest>
{

View File

@@ -6,12 +6,12 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangeFullnameRequest(
internal record ChangeFullnameRequest(
string? Firstname,
string? Lastname);
[PublicAPI]
public class ChangeFullnameHandler(
internal class ChangeFullnameHandler(
UserManager userManager)
: Endpoint<ChangeFullnameRequest>
{

View File

@@ -6,11 +6,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangePhoneRequest(
internal record ChangePhoneRequest(
string? PhoneNumber);
[PublicAPI]
public class ChangePhoneHandler(
internal class ChangePhoneHandler(
UserManager userManager)
: Endpoint<ChangePhoneRequest>
{

View File

@@ -7,15 +7,15 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ChangePortraitRequest(
internal record ChangePortraitRequest(
IFormFile File);
[PublicAPI]
public record ChangePortraitResponse(
internal record ChangePortraitResponse(
string BlobUrl);
[PublicAPI]
public sealed class ChangePortraitRequestValidator : Validator<ChangePortraitRequest>
internal sealed class ChangePortraitRequestValidator : Validator<ChangePortraitRequest>
{
public ChangePortraitRequestValidator()
{
@@ -26,7 +26,7 @@ public sealed class ChangePortraitRequestValidator : Validator<ChangePortraitReq
}
[PublicAPI]
public class ChangePortraitHandler(
internal class ChangePortraitHandler(
UserManager userManager,
IBlobStorage blobStorage)
: Endpoint<ChangePortraitRequest, ChangePortraitResponse>

View File

@@ -8,11 +8,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ForgotPasswordRequest(
internal record ForgotPasswordRequest(
string Email);
[PublicAPI]
public class ForgotPasswordHandler(
internal class ForgotPasswordHandler(
UserManager userManager,
IEmailSender emailSender,
IOptionsSnapshot<WebsiteOptions> options)

View File

@@ -7,7 +7,7 @@ using Socialize.Api.Infrastructure.Security;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public class GetCurrentUserQueryHandler(
internal class GetCurrentUserQueryHandler(
IdentityService identityService)
: EndpointWithoutRequest<UserDto>
{

View File

@@ -6,7 +6,7 @@ using Socialize.Api.Modules.Identity.Models;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public class GetCurrentUserPortraitHandler(
internal class GetCurrentUserPortraitHandler(
IdentityService identityService,
IBlobStorage blobStorage
)

View File

@@ -8,17 +8,17 @@ using Socialize.Api.Modules.Identity.Services;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record LoginRequest(
internal record LoginRequest(
string Email,
string Password);
[PublicAPI]
public record LoginResponse(
internal record LoginResponse(
string AccessToken,
string RefreshToken);
[PublicAPI]
public class LoginHandler(
internal class LoginHandler(
UserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions,
AccessTokenFactory accessTokenFactory)

View File

@@ -11,7 +11,7 @@ using Socialize.Api.Modules.Identity.Services;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public class FacebookUserInfo
internal class FacebookUserInfo
{
[JsonPropertyName("id")] public required string Id { get; init; }
[JsonPropertyName("email")] public string? Email { get; init; } // Email might be null if not granted
@@ -20,28 +20,28 @@ public class FacebookUserInfo
}
[PublicAPI]
public class FacebookPictureData
internal class FacebookPictureData
{
[JsonPropertyName("data")] public required FacebookPicture Picture { get; init; }
}
[PublicAPI]
public class FacebookPicture
internal class FacebookPicture
{
[JsonPropertyName("url")] public required string Url { get; init; }
}
[PublicAPI]
public record LoginWithFacebookRequest(
internal record LoginWithFacebookRequest(
string Token);
[PublicAPI]
public record LoginWithFacebookResponse(
internal record LoginWithFacebookResponse(
string AccessToken,
string RefreshToken);
[PublicAPI]
public class LoginWithFacebookHandler(
internal class LoginWithFacebookHandler(
IHttpClientFactory httpClientFactory,
UserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions,

View File

@@ -20,7 +20,7 @@ internal class GoogleToken
[JsonPropertyName("prompt")] public required string Prompt { get; init; }
}
public class GoogleUserInfo
internal class GoogleUserInfo
{
[JsonPropertyName("id")] public required string Id { get; init; }
[JsonPropertyName("email")] public required string Email { get; init; }
@@ -32,16 +32,16 @@ public class GoogleUserInfo
}
[PublicAPI]
public record LoginWithGoogleRequest(
internal record LoginWithGoogleRequest(
string Token);
[PublicAPI]
public record LoginWithGoogleResponse(
internal record LoginWithGoogleResponse(
string AccessToken,
string RefreshToken);
[PublicAPI]
public class LoginWithGoogleHandler(
internal class LoginWithGoogleHandler(
IHttpClientFactory httpClientFactory,
UserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions,

View File

@@ -9,16 +9,16 @@ using Socialize.Api.Modules.Identity.Services;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record RefreshTokenRequest(
internal record RefreshTokenRequest(
string RefreshToken);
[PublicAPI]
public record RefreshTokenResponse(
internal record RefreshTokenResponse(
string AccessToken,
string RefreshToken);
[PublicAPI]
public class RefreshTokenHandler(
internal class RefreshTokenHandler(
UserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions,
AccessTokenFactory accessTokenFactory)

View File

@@ -6,17 +6,17 @@ using Socialize.Api.Modules.Identity.Services;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record RegisterRequest(
internal record RegisterRequest(
string Email,
string Password,
string Name);
[PublicAPI]
public record RegisterResponse(
internal record RegisterResponse(
string Message);
[PublicAPI]
public class RegisterHandler(
internal class RegisterHandler(
UserManager userManager,
EmailVerificationService emailVerificationService)
: Endpoint<RegisterRequest, RegisterResponse>

View File

@@ -5,15 +5,15 @@ using Socialize.Api.Modules.Identity.Services;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ResendVerificationRequest(
internal record ResendVerificationRequest(
string Email);
[PublicAPI]
public record ResendVerificationResponse(
internal record ResendVerificationResponse(
string Message);
[PublicAPI]
public class ResendVerificationHandler(
internal class ResendVerificationHandler(
EmailVerificationService emailWriter,
UserManager userManager)
: Endpoint<ResendVerificationRequest, ResendVerificationResponse>

View File

@@ -5,13 +5,13 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record ResetPasswordRequest(
internal record ResetPasswordRequest(
string Email,
string Token,
string NewPassword);
[PublicAPI]
public class ResetPasswordHandler(
internal class ResetPasswordHandler(
UserManager userManager)
: Endpoint<ResetPasswordRequest>
{

View File

@@ -6,11 +6,11 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record SetPasswordRequest(
internal record SetPasswordRequest(
string NewPassword);
[PublicAPI]
public class SetPasswordHandler(
internal class SetPasswordHandler(
UserManager userManager)
: Endpoint<SetPasswordRequest>
{

View File

@@ -6,16 +6,16 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Handlers;
[PublicAPI]
public record VerifyEmailRequest(
internal record VerifyEmailRequest(
string UserId,
string Token);
[PublicAPI]
public record VerifyEmailResponse(
internal record VerifyEmailResponse(
string Message);
[PublicAPI]
public class VerifyEmailHandler(
internal class VerifyEmailHandler(
UserManager userManager)
: Endpoint<VerifyEmailRequest, VerifyEmailResponse>
{

View File

@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Identity;
namespace Socialize.Api.Modules.Identity;
public static class IdentityResultExtensions
internal static class IdentityResultExtensions
{
public static Result ToApplicationResult(this IdentityResult result)
{

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Models;
public class Result(
internal class Result(
bool succeeded,
IEnumerable<string> errors)
{
@@ -18,7 +18,7 @@ public class Result(
}
}
public class Result<T>(
internal class Result<T>(
T? value,
bool succeeded,
IEnumerable<string> errors)

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Models;
public class RoleModel
internal class RoleModel
{
public Guid Id { get; set; }
public string? Name { get; set; }

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Models;
public class UserDto
internal class UserDto
{
public Guid Id { get; init; }
public IList<string> UserRoles { get; init; } = [];

View File

@@ -1,6 +1,6 @@
namespace Socialize.Api.Modules.Identity.Models;
public class UserModel
internal class UserModel
{
public Guid Id { get; set; }
public string Username { get; init; } = null!;

View File

@@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Identity;
namespace Socialize.Api.Modules.Identity;
public static class ModuleRegistration
internal static class ModuleRegistration
{
public static WebApplicationBuilder AddIdentityModule(
this WebApplicationBuilder builder)

View File

@@ -7,7 +7,7 @@ using Microsoft.Extensions.Options;
namespace Socialize.Api.Modules.Identity.Services;
public sealed class AccessTokenFactory(
internal sealed class AccessTokenFactory(
UserManager userManager,
IOptionsSnapshot<JwtOptions> jwtOptions)
{

View File

@@ -7,7 +7,7 @@ using Microsoft.Extensions.Options;
namespace Socialize.Api.Modules.Identity.Services;
[PublicAPI]
public sealed class EmailVerificationService(
internal sealed class EmailVerificationService(
IOptionsSnapshot<WebsiteOptions> options,
UserManager userManager,
IEmailSender emailSender)

View File

@@ -3,7 +3,7 @@ using Socialize.Api.Modules.Identity.Data;
namespace Socialize.Api.Modules.Identity.Services;
public sealed class UserLookup(
internal sealed class UserLookup(
UserManager userManager)
: IUserLookup
{