import { Injectable, Logger } from '@nestjs/common'; import { Device } from '../entities'; import { DeviceRepository } from '../repositories'; @Injectable() export class DeviceService { private readonly logger = new Logger(DeviceService.name); constructor(private readonly deviceRepository: DeviceRepository) {} findUserDeviceById(deviceId: string, userId: string) { this.logger.log(`Finding device with id ${deviceId} for user ${userId}`); return this.deviceRepository.findUserDeviceById(deviceId, userId); } createDevice(data: Partial) { this.logger.log(`Creating device with data ${JSON.stringify(data)}`); return this.deviceRepository.createDevice(data); } updateDevice(deviceId: string, data: Partial) { this.logger.log(`Updating device with id ${deviceId} with data ${JSON.stringify(data)}`); return this.deviceRepository.updateDevice(deviceId, data); } async getTokens(userId: string): Promise { this.logger.log(`Getting tokens for user ${userId}`); const devices = await this.deviceRepository.getTokens(userId); return devices.map((device) => device.fcmToken!); } }