summaryrefslogtreecommitdiff
path: root/server/providers/services/users.service.ts
blob: 21438a449e5f388f32e1fe6f64e96f43d20a5d1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import * as bcrypt from 'bcrypt';
import { User } from '../../entities/user.entity';

@Injectable()
export class UsersService {
  constructor(
    @InjectRepository(User)
    private usersRespository: Repository<User>,
  ) {}

  findBy(options: Record<string, any>) {
    return this.usersRespository.findOne(options);
  }

  find(id: number) {
    return this.usersRespository.findOne(id);
  }

  create(user: User) {
    return this.usersRespository.save(user);
  }

  async verify(email: string, password: string) {
    const user = await this.usersRespository.findOne({ email });
    if (!user) return { verified: false, user: null };
    const verified: boolean = await bcrypt.compare(
      password,
      user.password_hash,
    );
    return { verified, user: verified ? user : null };
  }
}