44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { dataSource } from "../data-source";
|
|
import { user } from "../entity/user";
|
|
import InternalException from "../exceptions/internalException";
|
|
|
|
export default abstract class UserService {
|
|
/**
|
|
* @description get user by id
|
|
* @param id number
|
|
* @returns {Promise<user>}
|
|
*/
|
|
static async getById(id: number): Promise<user> {
|
|
return await dataSource
|
|
.getRepository(user)
|
|
.createQueryBuilder("user")
|
|
.where("user.id = :id", { id: id })
|
|
.getOneOrFail()
|
|
.then((res) => {
|
|
return res;
|
|
})
|
|
.catch((err) => {
|
|
throw new InternalException("user not found by id");
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @description get user by username
|
|
* @param username string
|
|
* @returns {Promise<user>}
|
|
*/
|
|
static async getByUsername(username: string): Promise<user> {
|
|
return await dataSource
|
|
.getRepository(user)
|
|
.createQueryBuilder("user")
|
|
.select()
|
|
.where("user.username = :username", { username: username })
|
|
.getOneOrFail()
|
|
.then((res) => {
|
|
return res;
|
|
})
|
|
.catch((err) => {
|
|
throw new InternalException("user not found by username");
|
|
});
|
|
}
|
|
}
|