Files
schedule-parser-next/src/schedule/schedule-replacer.service.ts
n08i40k 6ffe39a4a9 1.3.0
Добавлена совместимость с Firebase Cloud Messaging.

Сервис и контроллер модуля schedule-replacer были перенесены в модуль schedule.
2024-10-05 00:36:50 +04:00

57 lines
1.3 KiB
TypeScript

import { Injectable } from "@nestjs/common";
import { PrismaService } from "../prisma/prisma.service";
import { ScheduleReplacerDto } from "../dto/schedule-replacer.dto";
import { plainToClass } from "class-transformer";
@Injectable()
export class ScheduleReplacerService {
constructor(private readonly prismaService: PrismaService) {}
async hasByEtag(etag: string): Promise<boolean> {
return (
(await this.prismaService.scheduleReplace.count({
where: { etag: etag },
})) > 0
);
}
async getByEtag(etag: string): Promise<ScheduleReplacerDto | null> {
const response = await this.prismaService.scheduleReplace.findUnique({
where: { etag: etag },
});
if (response == null) return null;
return plainToClass(ScheduleReplacerDto, response);
}
async clear(): Promise<number> {
const count = await this.prismaService.scheduleReplace.count();
await this.prismaService.scheduleReplace.deleteMany({});
return count;
}
async setByEtag(etag: string, buffer: Buffer): Promise<void> {
if (
(await this.prismaService.scheduleReplace.count({
where: { etag: etag },
})) > 0
) {
await this.prismaService.scheduleReplace.update({
where: { etag: etag },
data: {
data: buffer,
},
});
return;
}
await this.prismaService.scheduleReplace.create({
data: {
etag: etag,
data: buffer,
},
});
}
}