From 37deda35878fd3beac32b6298ab2e10367b83364 Mon Sep 17 00:00:00 2001 From: Fabien O'Carroll Date: Tue, 12 Oct 2021 14:13:47 +0200 Subject: [PATCH] Fixed handling of labs flag for Offers no-issue Because we only called `init` if the labs flag is enabled, when starting up a site without the flag enabled - the listener for adding redirects wasn't active. So new Offers would not have their redirects setup. --- core/server/services/offers/service.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/server/services/offers/service.js b/core/server/services/offers/service.js index 5ad4e242ca..cbcc59cd0b 100644 --- a/core/server/services/offers/service.js +++ b/core/server/services/offers/service.js @@ -25,15 +25,22 @@ module.exports = { this.api = offersModule.api; this.repository = offersModule.repository; + let initCalled = false; if (labs.isSet('offers')) { // handles setting up redirects - await offersModule.init(); + const promise = offersModule.init(); + initCalled = true; + await promise; } // TODO: Delete after GA let offersEnabled = labs.isSet('offers'); events.on('settings.labs.edited', async () => { - if (labs.isSet('offers') !== offersEnabled) { + if (labs.isSet('offers') && !initCalled) { + const promise = offersModule.init(); + initCalled = true; + await promise; + } else if (labs.isSet('offers') !== offersEnabled) { offersEnabled = labs.isSet('offers'); if (offersEnabled) {