UNPKG

@central-credit/app

Version:

Application Central Credit

55 lines (49 loc) 1.47 kB
// Copyright IBM Corp. 2018. All Rights Reserved. // Node module: loopback4-example-shopping // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT import { DefaultCrudRepository, juggler, repository, HasOneRepositoryFactory } from '@loopback/repository' import { User, UserCredentials } from '../models' import { inject, Getter } from '@loopback/core' import { UserCredentialsRepository } from './user-credentials.repository' export type Credentials = { email: string password: string } export class UserRepository extends DefaultCrudRepository< User, typeof User.prototype.id > { public readonly userCredentials: HasOneRepositoryFactory< UserCredentials, typeof User.prototype.id > constructor( @inject('datasources.mongo') protected datasource: juggler.DataSource, @repository.getter('UserCredentialsRepository') protected userCredentialsRepositoryGetter: Getter<UserCredentialsRepository> ) { super(User, datasource) this.userCredentials = this.createHasOneRepositoryFactoryFor( 'userCredentials', userCredentialsRepositoryGetter ) } async findCredentials( userId: typeof User.prototype.id ): Promise<UserCredentials | undefined> { try { return await this.userCredentials(userId).get() } catch (err) { if (err.code === 'ENTITY_NOT_FOUND') { return undefined } throw err } } }