sprinklers3/server/repositories/UserRepository.ts

34 lines
962 B
TypeScript
Raw Normal View History

import { EntityRepository, FindOneOptions, Repository } from "typeorm";
2018-08-31 21:59:06 -06:00
import { User } from "@server/entities";
export interface FindUserOptions {
2018-09-02 02:57:55 -06:00
devices: boolean;
}
2018-09-02 02:57:55 -06:00
function applyDefaultOptions(
options?: Partial<FindUserOptions>
): FindOneOptions<User> {
const opts: FindUserOptions = { devices: false, ...options };
const relations = [opts.devices && "devices"].filter(Boolean) as string[];
return { relations };
}
@EntityRepository(User)
export class UserRepository extends Repository<User> {
2018-09-02 02:57:55 -06:00
findAll(options?: Partial<FindUserOptions>) {
const opts = applyDefaultOptions(options);
return super.find(opts);
}
2018-08-12 11:55:15 +03:00
2018-09-02 02:57:55 -06:00
findById(id: number, options?: Partial<FindUserOptions>) {
const opts = applyDefaultOptions(options);
return super.findOne(id, opts);
}
2018-09-02 02:57:55 -06:00
findByUsername(username: string, options?: Partial<FindUserOptions>) {
const opts = applyDefaultOptions(options);
return this.findOne({ username }, opts);
}
}