From a4d7bb9cdc464893e7f9148daf7ad0120c1cea83 Mon Sep 17 00:00:00 2001 From: n08i40k Date: Thu, 10 Oct 2024 23:52:51 +0400 Subject: [PATCH] 1.3.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Мда... Хуже не придумаешь. --- package-lock.json | 4 ++-- package.json | 2 +- src/firebase-admin/firebase-admin.controller.ts | 12 +++++------- src/firebase-admin/firebase-admin.service.ts | 14 +++++++------- src/schedule/schedule.service.ts | 15 +++++++++++++++ 5 files changed, 30 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30086bf..4de20bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "schedule-parser-next", - "version": "1.3.4", + "version": "1.3.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "schedule-parser-next", - "version": "1.3.4", + "version": "1.3.5", "license": "UNLICENSED", "dependencies": { "@nestjs/cache-manager": "^2.2.2", diff --git a/package.json b/package.json index 7f0422f..7bd2e8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "schedule-parser-next", - "version": "1.3.4", + "version": "1.3.5", "description": "", "author": "N08I40K", "private": true, diff --git a/src/firebase-admin/firebase-admin.controller.ts b/src/firebase-admin/firebase-admin.controller.ts index aa0e7eb..55605c8 100644 --- a/src/firebase-admin/firebase-admin.controller.ts +++ b/src/firebase-admin/firebase-admin.controller.ts @@ -21,7 +21,6 @@ import { isSemVer } from "class-validator"; @UseGuards(AuthGuard) export class FirebaseAdminController { private readonly oldTopics = new Set(["app-update", "schedule-update"]); - private readonly defaultTopics = new Set(["common"]); constructor(private readonly firebaseAdminService: FirebaseAdminService) {} @@ -39,7 +38,7 @@ export class FirebaseAdminController { ).userDto; await this.firebaseAdminService - .subscribe(updatedUser, this.defaultTopics, true) + .subscribe(updatedUser, new Set(), true) .then((userDto) => this.firebaseAdminService.unsubscribe(userDto, this.oldTopics), ); @@ -58,11 +57,7 @@ export class FirebaseAdminController { ); } - await this.firebaseAdminService.updateApp( - userDto, - version, - this.defaultTopics, - ); + await this.firebaseAdminService.updateApp(userDto, version); } @Post("post-update") @@ -70,6 +65,9 @@ export class FirebaseAdminController { @ResultDto(null) async postUpdate(@Body() postUpdateDto: FcmPostUpdateDto): Promise { await this.firebaseAdminService.sendByTopic("common", { + android: { + priority: "high", + }, data: { type: "app-update", version: postUpdateDto.version, diff --git a/src/firebase-admin/firebase-admin.service.ts b/src/firebase-admin/firebase-admin.service.ts index 6111206..c7c2959 100644 --- a/src/firebase-admin/firebase-admin.service.ts +++ b/src/firebase-admin/firebase-admin.service.ts @@ -23,6 +23,8 @@ export class FirebaseAdminService implements OnModuleInit { private app: App; private messaging: Messaging; + private readonly defaultTopics = new Set(["common"]); + onModuleInit() { this.app = initializeApp({ credential: credential.cert(firebaseConstants.serviceAccountPath), @@ -86,10 +88,12 @@ export class FirebaseAdminService implements OnModuleInit { topics: Set, force: boolean = false, ): Promise { + const newTopics = new Set([...this.defaultTopics, ...topics]); + const fcm = user.fcm; const currentTopics = new Set(fcm.topics); - for (const topic of topics) { + for (const topic of newTopics) { if (fcm.topics.includes(topic) && !force) continue; await this.messaging.subscribeToTopic(fcm.token, topic); @@ -105,12 +109,8 @@ export class FirebaseAdminService implements OnModuleInit { }); } - async updateApp( - userDto: UserDto, - version: string, - topics: Set, - ): Promise { - await this.subscribe(userDto, topics, true).then(async (userDto) => { + async updateApp(userDto: UserDto, version: string): Promise { + await this.subscribe(userDto, new Set(), true).then(async (userDto) => { await this.usersService.update({ where: { id: userDto.id }, data: { version: version }, diff --git a/src/schedule/schedule.service.ts b/src/schedule/schedule.service.ts index 1de1cfc..f17ba2c 100644 --- a/src/schedule/schedule.service.ts +++ b/src/schedule/schedule.service.ts @@ -48,6 +48,21 @@ export class ScheduleService { this.scheduleReplacerService, ); } + + setInterval(async () => { + const now = new Date(); + if (now.getHours() != 7 || now.getMinutes() != 30) return; + + await this.firebaseAdminService.sendByTopic("common", { + android: { + priority: "high", + ttl: 60 * 60 * 1000, + }, + data: { + type: "lessons-start", + }, + }); + }, 60000); } getCacheStatus(): CacheStatusDto {