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 networkGroupsRoutes = require('../routes/network-groups');
|
||||||
const networkResourcesRoutes = require('../routes/network-resources');
|
const networkResourcesRoutes = require('../routes/network-resources');
|
||||||
const networkWizardRoutes = require('../routes/network-wizard');
|
const networkWizardRoutes = require('../routes/network-wizard');
|
||||||
|
const networkWgRedeemRoutes = require('../routes/network-wg-redeem');
|
||||||
const sitesRoutes = require('../routes/sites');
|
const sitesRoutes = require('../routes/sites');
|
||||||
const credentialsRoutes = require('../routes/credentials');
|
const credentialsRoutes = require('../routes/credentials');
|
||||||
const arrRoutes = require('../routes/arr');
|
const arrRoutes = require('../routes/arr');
|
||||||
@@ -782,6 +783,31 @@ async function createApp() {
|
|||||||
asyncHandler: ctx.asyncHandler,
|
asyncHandler: ctx.asyncHandler,
|
||||||
log: ctx.log,
|
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 ───────────────────────────────────────────────────────
|
// ── end P7 mounts ───────────────────────────────────────────────────────
|
||||||
apiRouter.use(sitesRoutes({
|
apiRouter.use(sitesRoutes({
|
||||||
asyncHandler: ctx.asyncHandler,
|
asyncHandler: ctx.asyncHandler,
|
||||||
|
|||||||
Reference in new issue
Block a user