You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
522 B

  1. import { RoleItem } from '@/models/role'
  2. import { RoleItemListRepository } from '@/repositories/role/interface'
  3. export class RoleDTO {
  4. id: number
  5. rolename: string
  6. constructor(item: RoleItem) {
  7. this.id = item.id
  8. this.rolename = item.name
  9. }
  10. }
  11. export class RoleApplicationService {
  12. constructor(
  13. private readonly repository: RoleItemListRepository
  14. ) {}
  15. public async list(): Promise<RoleDTO[]> {
  16. const items = await this.repository.list()
  17. return items.map(item => new RoleDTO(item))
  18. }
  19. }