website refactor
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import 'reflect-metadata';
|
||||
|
||||
import { ValidationPipe, INestApplication } from '@nestjs/common';
|
||||
import { INestApplication, ValidationPipe } from '@nestjs/common';
|
||||
import { Reflector } from '@nestjs/core';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import request from 'supertest';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, it, expect, vi } from 'vitest';
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { AdminController } from './AdminController';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
import { ListUsersRequestDto } from './dtos/ListUsersRequestDto';
|
||||
import { UserListResponseDto, UserResponseDto } from './dtos/UserResponseDto';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
|
||||
describe('AdminController', () => {
|
||||
let controller: AdminController;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { ListUsersInput } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { Controller, Get, Inject, Query, Req, UseGuards } from '@nestjs/common';
|
||||
import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
|
||||
import { AdminService } from './AdminService';
|
||||
import { ListUsersRequestDto } from './dtos/ListUsersRequestDto';
|
||||
import { UserListResponseDto } from './dtos/UserResponseDto';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
import type { Request } from 'express';
|
||||
import { AuthorizationGuard } from '../auth/AuthorizationGuard';
|
||||
import { RequireAuthenticatedUser } from '../auth/RequireAuthenticatedUser';
|
||||
import { RequireRoles } from '../auth/RequireRoles';
|
||||
import { AuthorizationGuard } from '../auth/AuthorizationGuard';
|
||||
import type { Request } from 'express';
|
||||
import type { ListUsersInput } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { AdminService } from './AdminService';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
import { ListUsersRequestDto } from './dtos/ListUsersRequestDto';
|
||||
import { UserListResponseDto } from './dtos/UserResponseDto';
|
||||
|
||||
@ApiTags('admin')
|
||||
@Controller('admin')
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { ListUsersUseCase } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
|
||||
import type { Provider } from '@nestjs/common';
|
||||
import { Module } from '@nestjs/common';
|
||||
import { InMemoryAdminPersistenceModule } from '../../persistence/inmemory/InMemoryAdminPersistenceModule';
|
||||
import { AdminService } from './AdminService';
|
||||
import { AdminController } from './AdminController';
|
||||
import { AuthModule } from '../auth/AuthModule';
|
||||
import { ListUsersUseCase } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { GetDashboardStatsUseCase } from './use-cases/GetDashboardStatsUseCase';
|
||||
import { InitializationLogger } from '../../shared/logging/InitializationLogger';
|
||||
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
|
||||
import { AuthModule } from '../auth/AuthModule';
|
||||
import { AdminController } from './AdminController';
|
||||
import { AdminService } from './AdminService';
|
||||
import { GetDashboardStatsUseCase } from './use-cases/GetDashboardStatsUseCase';
|
||||
|
||||
export const ADMIN_USER_REPOSITORY_TOKEN = 'IAdminUserRepository';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { AdminService } from './AdminService';
|
||||
import { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||
import { Result } from '@core/shared/domain/Result';
|
||||
import { vi, describe, it, expect, beforeEach } from 'vitest';
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { AdminService } from './AdminService';
|
||||
|
||||
// Mock use cases
|
||||
const mockListUsersUseCase = {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ListUsersUseCase, ListUsersInput, ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { GetDashboardStatsUseCase, GetDashboardStatsInput } from './use-cases/GetDashboardStatsUseCase';
|
||||
import { UserListResponseDto, UserResponseDto } from './dtos/UserResponseDto';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
import { ListUsersInput, ListUsersResult, ListUsersUseCase } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { DashboardStatsResponseDto } from './dto/DashboardStatsResponseDto';
|
||||
import { UserListResponseDto, UserResponseDto } from './dtos/UserResponseDto';
|
||||
import { GetDashboardStatsInput, GetDashboardStatsUseCase } from './use-cases/GetDashboardStatsUseCase';
|
||||
|
||||
@Injectable()
|
||||
export class AdminService {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ApiPropertyOptional } from '@nestjs/swagger';
|
||||
import { IsOptional, IsString, IsNumber, Min, Max } from 'class-validator';
|
||||
import { IsNumber, IsOptional, IsString, Max, Min } from 'class-validator';
|
||||
|
||||
export class ListUsersRequestDto {
|
||||
@ApiPropertyOptional({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ListUsersPresenter } from './ListUsersPresenter';
|
||||
import { ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||
import { ListUsersPresenter } from './ListUsersPresenter';
|
||||
|
||||
describe('ListUsersPresenter', () => {
|
||||
describe('TDD - Test First', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
import { ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||
import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto';
|
||||
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto';
|
||||
|
||||
export type ListUsersViewModel = UserListResponseDto;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Result } from '@core/shared/domain/Result';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
|
||||
import { AuthorizationService } from '@core/admin/domain/services/AuthorizationService';
|
||||
import { UserId } from '@core/admin/domain/value-objects/UserId';
|
||||
import { Result } from '@core/shared/domain/Result';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
|
||||
export interface DashboardStatsResult {
|
||||
totalUsers: number;
|
||||
|
||||
Reference in New Issue
Block a user