P7: mount public WG invite redemption route (lazy provider, 503 when not wireguard)
This commit is contained in:
1 file changed
+26
@@ -89,6 +89,7 @@ const networkLifecycleRoutes = require('../routes/network-lifecycle');
|
||||
const networkGroupsRoutes = require('../routes/network-groups');
|
||||
const networkResourcesRoutes = require('../routes/network-resources');
|
||||
const networkWizardRoutes = require('../routes/network-wizard');
|
||||
const networkWgRedeemRoutes = require('../routes/network-wg-redeem');
|
||||
const sitesRoutes = require('../routes/sites');
|
||||
const credentialsRoutes = require('../routes/credentials');
|
||||
const arrRoutes = require('../routes/arr');
|
||||
@@ -782,6 +783,31 @@ async function createApp() {
|
||||
asyncHandler: ctx.asyncHandler,
|
||||
log: ctx.log,
|
||||
}));
|
||||
|
||||
// Public WG invite redemption (DC-150). Lazy provider resolution: the
|
||||
// factory requires a provider at construction; get one only when the
|
||||
// WireGuard provider is registered, else mount a 503 stub.
|
||||
const p7WgProviderFactory = () => {
|
||||
const prov = getActiveProvider();
|
||||
return prov && prov.id && prov.id() === 'wireguard' ? prov : null;
|
||||
};
|
||||
let p7WgRedeemRouter = null;
|
||||
const p7WgRedeemLazy = (req, res, next) => {
|
||||
if (!p7WgRedeemRouter) {
|
||||
const prov = p7WgProviderFactory();
|
||||
if (!prov) {
|
||||
return res.status(503).json({ error: 'network provider not active' });
|
||||
}
|
||||
p7WgRedeemRouter = networkWgRedeemRoutes({
|
||||
provider: prov,
|
||||
endpoint: ctx.networkWgEndpoint,
|
||||
asyncHandler: ctx.asyncHandler,
|
||||
log: ctx.log,
|
||||
});
|
||||
}
|
||||
return p7WgRedeemRouter(req, res, next);
|
||||
};
|
||||
apiRouter.use('/network/wg', p7WgRedeemLazy);
|
||||
// ── end P7 mounts ───────────────────────────────────────────────────────
|
||||
apiRouter.use(sitesRoutes({
|
||||
asyncHandler: ctx.asyncHandler,
|
||||
|
||||
Reference in new issue
Block a user