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.
 
 
 
 
 
 

22 lines
731 B

import { plainToInstance } from 'class-transformer'
import ApiService from '@/services/api.service'
import { UserRepository } from '@/domain/models/user/userRepository'
import { UserItem } from '~/domain/models/user/user'
export class APIUserRepository implements UserRepository {
constructor(
private readonly request = ApiService
) {}
async getMe(): Promise<UserItem> {
const url = '/me'
const response = await this.request.get(url)
return plainToInstance(UserItem, response.data)
}
async list(query: string): Promise<UserItem[]> {
const url = `/users?q=${query}`
const response = await this.request.get(url)
return response.data.map((item: any) => plainToInstance(UserItem, item))
}
}