mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
move shouldSendNotifications property to the AppleNotificationSender
This commit is contained in:
@@ -8,6 +8,7 @@ import { TimedApiBasedRepositoryLoader } from "./loaders/TimedApiBasedRepository
|
||||
import { ETANotificationScheduler } from "./notifications/schedulers/ETANotificationScheduler";
|
||||
import { configDotenv } from "dotenv";
|
||||
import { loadTestData } from "./loaders/loadTestData";
|
||||
import { AppleNotificationSender } from "./notifications/senders/AppleNotificationSender";
|
||||
|
||||
configDotenv();
|
||||
|
||||
@@ -24,7 +25,8 @@ async function main() {
|
||||
let notificationService: ETANotificationScheduler;
|
||||
if (process.argv.length > 2 && process.argv[2] == "integration-testing") {
|
||||
await loadTestData(repository);
|
||||
notificationService = new ETANotificationScheduler(repository, false);
|
||||
const appleNotificationSender = new AppleNotificationSender(false);
|
||||
notificationService = new ETANotificationScheduler(repository, appleNotificationSender);
|
||||
} else {
|
||||
const repositoryDataUpdater = new TimedApiBasedRepositoryLoader(
|
||||
repository
|
||||
@@ -32,7 +34,6 @@ async function main() {
|
||||
await repositoryDataUpdater.start();
|
||||
notificationService = new ETANotificationScheduler(repository);
|
||||
}
|
||||
notificationService.reloadAPNsTokenIfTimePassed();
|
||||
|
||||
const { url } = await startStandaloneServer(server, {
|
||||
listen: {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
import { GetterRepository } from "../../repositories/GetterRepository";
|
||||
import jwt from "jsonwebtoken";
|
||||
import fs from "fs";
|
||||
import { TupleKey } from "../../types/TupleKey";
|
||||
import { IEta } from "../../entities/entities";
|
||||
import http2 from "http2";
|
||||
import { AppleNotificationSender, NotificationAlertArguments } from "../senders/AppleNotificationSender";
|
||||
|
||||
export interface ScheduledNotificationData {
|
||||
@@ -16,7 +13,6 @@ export class ETANotificationScheduler {
|
||||
public readonly secondsThresholdForNotificationToFire = 180;
|
||||
|
||||
constructor(private repository: GetterRepository,
|
||||
private shouldActuallySendNotifications = true,
|
||||
private appleNotificationSender = new AppleNotificationSender()
|
||||
) {
|
||||
this.etaSubscriberCallback = this.etaSubscriberCallback.bind(this);
|
||||
@@ -35,10 +31,6 @@ export class ETANotificationScheduler {
|
||||
private deviceIdsToDeliverTo: { [key: string]: Set<string> } = {}
|
||||
|
||||
private async sendEtaNotificationImmediately(notificationData: ScheduledNotificationData): Promise<boolean> {
|
||||
if (!this.shouldActuallySendNotifications) {
|
||||
return true; // pretend that the notification sent
|
||||
}
|
||||
|
||||
const { deviceId, shuttleId, stopId } = notificationData;
|
||||
|
||||
const shuttle = await this.repository.getShuttleById(shuttleId);
|
||||
|
||||
@@ -16,6 +16,9 @@ export class AppleNotificationSender {
|
||||
private apnsToken: string | undefined = undefined;
|
||||
private _lastRefreshedTimeMs: number | undefined = undefined;
|
||||
|
||||
constructor(private shouldActuallySendNotifications = true) {
|
||||
}
|
||||
|
||||
get lastRefreshedTimeMs(): number | undefined {
|
||||
return this._lastRefreshedTimeMs;
|
||||
}
|
||||
@@ -64,6 +67,11 @@ export class AppleNotificationSender {
|
||||
* notification was sent successfully.
|
||||
*/
|
||||
public async sendNotificationImmediately(deviceId: string, notificationAlertArguments: NotificationAlertArguments) {
|
||||
if (!this.shouldActuallySendNotifications) {
|
||||
// pretend that the notification sent
|
||||
return true;
|
||||
}
|
||||
|
||||
this.reloadAPNsTokenIfTimePassed();
|
||||
|
||||
const bundleId = process.env.APNS_BUNDLE_ID;
|
||||
|
||||
Reference in New Issue
Block a user