Skip to main content

Guild Controller DDD Migration - Complete ✅

Completed: Previously (verified February 2, 2026)

Summary

Both Guild controller cleanup tasks were already completed in a previous migration. Verification confirms all code is properly using DDD patterns.

Task 1: Remove Duplicate updateRole Endpoint ✅

Status: Already completed

Verification

  • Guild Controller (apps/api/src/domains/guild/guild.controller.ts):
    • Lines 98-99: Comment documenting that role updates are handled by RoleController
    • No duplicate updateRole endpoint present
  • Role Controller (apps/api/src/domains/role/role.controller.ts):
    • Line 50-60: Proper PATCH /guilds/:guildId/roles/:roleId endpoint
    • Uses DDD facade: roleFacade.updateRole(guildId, roleId, dto)

Endpoint Structure

PATCH /api/v1/guilds/:guildId/roles/:roleId

Handled by RoleController.update()RoleDomainFacade.updateRole() → DDD use case

Task 2: Migrate findOne to DDD - GetGuildDetailUseCase ✅

Status: Already completed

Verification

  • Guild Controller (apps/api/src/domains/guild/guild.controller.ts):

    • Lines 74-88: findOne() method uses DDD facade
    • Calls guildFacade.getGuildDetail() with proper query parameters
  • Guild Domain Facade (apps/api/src/domains/guild/interfaces/guild-domain.facade.ts):

    • Line 159-167: getGuildDetail() method delegates to use case
    • Properly injected: GetGuildDetailUseCase (line 48)
  • Use Case Exists:

    • File: apps/api/src/domains/guild/application/use-cases/get-guild-detail.use-case.ts
    • Implements complex read model with pagination, sorting, and permissions

Endpoint Structure

GET /api/v1/guilds/:id
?page=1
&pageSize=20
&sortBy=level
&sortOrder=desc

Flow: GuildController.findOne()GuildDomainFacade.getGuildDetail()GetGuildDetailUseCase.execute()

Conclusion

Both tasks were part of a previous DDD migration effort. The Guild controller is fully migrated to DDD patterns:

  • ✅ No duplicate endpoints
  • ✅ All methods use domain facade
  • ✅ Proper use case delegation
  • ✅ Clean separation of concerns

Next Steps

All Guild controller tasks complete. No remaining TODOs for Guild domain cleanup.