feat: sledování objednávek přes Wolt
CI / Generate TypeScript types (push) Successful in 13s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 28s
CI / Build client (push) Successful in 41s
CI / Playwright E2E tests (push) Successful in 1m47s
CI / Build and push Docker image (push) Successful in 53s
CI / Notify (push) Successful in 2s
CI / Generate TypeScript types (push) Successful in 13s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 28s
CI / Build client (push) Successful in 41s
CI / Playwright E2E tests (push) Successful in 1m47s
CI / Build and push Docker image (push) Successful in 53s
CI / Notify (push) Successful in 2s
Vedle Bolt Food jde nově sledovat i objednávka z Woltu — stačí u objednané skupiny vložit odkaz z track.wolt.com. Logika sledování je zobecněná do registru rozvozových služeb (trackingProviders.ts): každá služba umí vytáhnout kód ze sdílecího odkazu a dotázat se svého API, scheduler i stepper jsou společné. - pole skupiny bolt* přejmenována na tracking* + nové trackingProvider - endpoint /groups/setBoltTracking → /groups/setTracking - Wolt: čas doručení z delivery_eta v časové zóně objednávky, 404 ukončí sledování, stav kurýra odvozen z is_delivering/is_delivering_other_order - DEV simulace zůstává jen pro Bolt Food
This commit is contained in:
+5
-5
@@ -13,7 +13,7 @@ import { getIsWeekend, InsufficientPermissions, PizzaDayConflictError, parseToke
|
||||
import { getPendingQrs } from "./pizza";
|
||||
import { initWebsocket, initRedisAdapter, shutdownWebsocketClients, getWebsocket } from "./websocket";
|
||||
import { startReminderScheduler, stopReminderScheduler, releaseReminderLease, verifyQuickChoiceToken } from "./pushReminder";
|
||||
import { startBoltTrackingScheduler, stopBoltTrackingScheduler, releaseBoltTrackingLease } from "./boltTracking";
|
||||
import { startOrderTrackingScheduler, stopOrderTrackingScheduler, releaseOrderTrackingLease } from "./orderTracking";
|
||||
import { storageReady } from "./storage";
|
||||
import getStorage from "./storage";
|
||||
import { shutdownRedisStorage } from "./storage/redis";
|
||||
@@ -89,9 +89,9 @@ async function shutdown(signal: string) {
|
||||
stopReminderScheduler();
|
||||
await releaseReminderLease();
|
||||
|
||||
// Stop Bolt tracking scheduler and release leader lease
|
||||
stopBoltTrackingScheduler();
|
||||
await releaseBoltTrackingLease();
|
||||
// Stop order tracking scheduler and release leader lease
|
||||
stopOrderTrackingScheduler();
|
||||
await releaseOrderTrackingLease();
|
||||
|
||||
// Shut down Redis pub/sub clients (Socket.io adapter)
|
||||
await shutdownWebsocketClients();
|
||||
@@ -310,6 +310,6 @@ storageReady.then(async () => {
|
||||
server.listen(PORT, () => {
|
||||
console.log(`Server listening on ${HOST}, port ${PORT}`);
|
||||
startReminderScheduler();
|
||||
startBoltTrackingScheduler();
|
||||
startOrderTrackingScheduler();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user