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.
 
 
 
 
 
 

28 lines
675 B

import { UserItem } from '@/models/user'
import { UserItemListRepository } from '@/repositories/user/interface'
export class UserDTO {
id: number
username: string
constructor(item: UserItem) {
this.id = item.id
this.username = item.username
}
}
export class UserApplicationService {
constructor(
private readonly repository: UserItemListRepository
) {}
public async getMyProfile(): Promise<UserDTO> {
const item = await this.repository.getMe()
return new UserDTO(item)
}
public async list(query: string): Promise<UserDTO[]> {
const items = await this.repository.list(query)
return items.map(item => new UserDTO(item))
}
}