import { IUserTokenRepository } from '@app/domain'; import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { UserTokenEntity } from '../entities'; @Injectable() export class UserTokenRepository implements IUserTokenRepository { constructor(@InjectRepository(UserTokenEntity) private repository: Repository) {} getByToken(token: string): Promise { return this.repository.findOne({ where: { token }, relations: { user: true } }); } getAll(userId: string): Promise { return this.repository.find({ where: { userId, }, relations: { user: true, }, order: { updatedAt: 'desc', createdAt: 'desc', }, }); } create(userToken: Partial): Promise { return this.repository.save(userToken); } save(userToken: Partial): Promise { return this.repository.save(userToken); } async delete(userId: string, id: string): Promise { await this.repository.delete({ userId, id }); } }