import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { UserTokenEntity } from '../entities/user-token.entity'; import { IUserTokenRepository } from '@app/domain/user-token'; @Injectable() export class UserTokenRepository implements IUserTokenRepository { constructor( @InjectRepository(UserTokenEntity) private userTokenRepository: Repository, ) {} async get(userToken: string): Promise { return this.userTokenRepository.findOne({ where: { token: userToken }, relations: { user: true } }); } async create(userToken: Partial): Promise { return this.userTokenRepository.save(userToken); } async delete(id: string): Promise { await this.userTokenRepository.delete(id); } async deleteAll(userId: string): Promise { await this.userTokenRepository.delete({ user: { id: userId } }); } }