website refactor
This commit is contained in:
@@ -39,7 +39,7 @@ export interface UserListResult {
|
||||
* Output port for user management operations
|
||||
* Implemented by infrastructure layer
|
||||
*/
|
||||
export interface IAdminUserRepository {
|
||||
export interface AdminUserRepository {
|
||||
findById(id: UserId): Promise<AdminUser | null>;
|
||||
findByEmail(email: Email): Promise<AdminUser | null>;
|
||||
emailExists(email: Email): Promise<boolean>;
|
||||
@@ -1,6 +1,6 @@
|
||||
import { vi, describe, it, expect, beforeEach } from 'vitest';
|
||||
import { ListUsersUseCase, ListUsersResult } from './ListUsersUseCase';
|
||||
import { IAdminUserRepository } from '../ports/IAdminUserRepository';
|
||||
import { AdminUserRepository } from '../ports/AdminUserRepository';
|
||||
import { AdminUser } from '../../domain/entities/AdminUser';
|
||||
import { AuthorizationService } from '../../domain/services/AuthorizationService';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Result } from '@core/shared/application/Result';
|
||||
import { Result } from '@core/shared/domain/Result';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
import type { IAdminUserRepository } from '../ports/IAdminUserRepository';
|
||||
import type { AdminUserRepository } from '../ports/AdminUserRepository';
|
||||
import { AuthorizationService } from '../../domain/services/AuthorizationService';
|
||||
import { UserId } from '../../domain/value-objects/UserId';
|
||||
import { UserRole } from '../../domain/value-objects/UserRole';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { IEntity } from '@core/shared/domain';
|
||||
import type { Entity } from '@core/shared/domain';
|
||||
import { UserId } from '../value-objects/UserId';
|
||||
import { Email } from '../value-objects/Email';
|
||||
import { UserRole } from '../value-objects/UserRole';
|
||||
@@ -17,7 +17,7 @@ export interface AdminUserProps {
|
||||
primaryDriverId: string | undefined;
|
||||
}
|
||||
|
||||
export class AdminUser implements IEntity<UserId> {
|
||||
export class AdminUser implements Entity<UserId> {
|
||||
readonly id: UserId;
|
||||
private _email: Email;
|
||||
private _roles: UserRole[];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors';
|
||||
import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors';
|
||||
|
||||
export abstract class AdminDomainError extends Error implements IDomainError<CommonDomainErrorKind> {
|
||||
export abstract class AdminDomainError extends Error implements DomainError<CommonDomainErrorKind> {
|
||||
readonly type = 'domain' as const;
|
||||
readonly context = 'admin-domain';
|
||||
abstract readonly kind: CommonDomainErrorKind;
|
||||
@@ -13,7 +13,7 @@ export abstract class AdminDomainError extends Error implements IDomainError<Com
|
||||
|
||||
export class AdminDomainValidationError
|
||||
extends AdminDomainError
|
||||
implements IDomainError<'validation'>
|
||||
implements DomainError<'validation'>
|
||||
{
|
||||
readonly kind = 'validation' as const;
|
||||
|
||||
@@ -24,7 +24,7 @@ export class AdminDomainValidationError
|
||||
|
||||
export class AdminDomainInvariantError
|
||||
extends AdminDomainError
|
||||
implements IDomainError<'invariant'>
|
||||
implements DomainError<'invariant'>
|
||||
{
|
||||
readonly kind = 'invariant' as const;
|
||||
|
||||
@@ -35,7 +35,7 @@ export class AdminDomainInvariantError
|
||||
|
||||
export class AuthorizationError
|
||||
extends AdminDomainError
|
||||
implements IDomainError<'authorization'>
|
||||
implements DomainError<'authorization'>
|
||||
{
|
||||
readonly kind = 'authorization' as const;
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ export interface StoredAdminUser {
|
||||
* Repository interface for AdminUser entity
|
||||
* Follows clean architecture - this is an output port from application layer
|
||||
*/
|
||||
export interface IAdminUserRepository {
|
||||
export interface AdminUserRepository {
|
||||
/**
|
||||
* Find user by ID
|
||||
*/
|
||||
@@ -1,11 +1,11 @@
|
||||
import { IValueObject } from '@core/shared/domain';
|
||||
import { ValueObject } from '@core/shared/domain';
|
||||
import { AdminDomainValidationError } from '../errors/AdminDomainError';
|
||||
|
||||
export interface EmailProps {
|
||||
value: string;
|
||||
}
|
||||
|
||||
export class Email implements IValueObject<EmailProps> {
|
||||
export class Email implements ValueObject<EmailProps> {
|
||||
readonly value: string;
|
||||
|
||||
private constructor(value: string) {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { IValueObject } from '@core/shared/domain';
|
||||
import { ValueObject } from '@core/shared/domain';
|
||||
import { AdminDomainValidationError } from '../errors/AdminDomainError';
|
||||
|
||||
export interface UserIdProps {
|
||||
value: string;
|
||||
}
|
||||
|
||||
export class UserId implements IValueObject<UserIdProps> {
|
||||
export class UserId implements ValueObject<UserIdProps> {
|
||||
readonly value: string;
|
||||
|
||||
private constructor(value: string) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IValueObject } from '@core/shared/domain';
|
||||
import { ValueObject } from '@core/shared/domain';
|
||||
import { AdminDomainValidationError } from '../errors/AdminDomainError';
|
||||
|
||||
export type UserRoleValue = string;
|
||||
@@ -7,7 +7,7 @@ export interface UserRoleProps {
|
||||
value: UserRoleValue;
|
||||
}
|
||||
|
||||
export class UserRole implements IValueObject<UserRoleProps> {
|
||||
export class UserRole implements ValueObject<UserRoleProps> {
|
||||
readonly value: UserRoleValue;
|
||||
|
||||
private constructor(value: UserRoleValue) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IValueObject } from '@core/shared/domain';
|
||||
import { ValueObject } from '@core/shared/domain';
|
||||
import { AdminDomainValidationError } from '../errors/AdminDomainError';
|
||||
|
||||
export type UserStatusValue = string;
|
||||
@@ -7,7 +7,7 @@ export interface UserStatusProps {
|
||||
value: UserStatusValue;
|
||||
}
|
||||
|
||||
export class UserStatus implements IValueObject<UserStatusProps> {
|
||||
export class UserStatus implements ValueObject<UserStatusProps> {
|
||||
readonly value: UserStatusValue;
|
||||
|
||||
private constructor(value: UserStatusValue) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IAdminUserRepository, UserFilter, UserListQuery, UserListResult, StoredAdminUser } from '../../domain/repositories/IAdminUserRepository';
|
||||
import { AdminUserRepository, UserFilter, UserListQuery, UserListResult, StoredAdminUser } from '../../domain/repositories/AdminUserRepository';
|
||||
import { AdminUser } from '../../domain/entities/AdminUser';
|
||||
import { UserId } from '../../domain/value-objects/UserId';
|
||||
import { Email } from '../../domain/value-objects/Email';
|
||||
@@ -7,7 +7,7 @@ import { Email } from '../../domain/value-objects/Email';
|
||||
* In-memory implementation of AdminUserRepository for testing and development
|
||||
* Follows TDD - created with tests first
|
||||
*/
|
||||
export class InMemoryAdminUserRepository implements IAdminUserRepository {
|
||||
export class InMemoryAdminUserRepository implements AdminUserRepository {
|
||||
private storage: Map<string, StoredAdminUser> = new Map();
|
||||
|
||||
async findById(id: UserId): Promise<AdminUser | null> {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { DataSource, Repository } from 'typeorm';
|
||||
import type { IAdminUserRepository, UserListQuery, UserListResult, UserFilter, StoredAdminUser } from '@core/admin/domain/repositories/IAdminUserRepository';
|
||||
import type { AdminUserRepository, UserListQuery, UserListResult, UserFilter, StoredAdminUser } from '@core/admin/domain/repositories/AdminUserRepository';
|
||||
import { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||
import { AdminUserOrmEntity } from '../entities/AdminUserOrmEntity';
|
||||
import { AdminUserOrmMapper } from '../mappers/AdminUserOrmMapper';
|
||||
import { Email } from '@core/admin/domain/value-objects/Email';
|
||||
import { UserId } from '@core/admin/domain/value-objects/UserId';
|
||||
|
||||
export class TypeOrmAdminUserRepository implements IAdminUserRepository {
|
||||
export class TypeOrmAdminUserRepository implements AdminUserRepository {
|
||||
private readonly repository: Repository<AdminUserOrmEntity>;
|
||||
private readonly mapper: AdminUserOrmMapper;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user