42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import { createAppRegisterHandler } from "@saleor/app-sdk/handlers/next";
|
|
|
|
import { saleorApp } from "../../saleor-app";
|
|
import { createClient } from "../../lib/create-graphql-client";
|
|
import { logger } from "../../lib/logger";
|
|
import { getBaseUrl } from "../../lib/get-base-url";
|
|
import { registerNotifyWebhook } from "../../lib/register-notify-webhook";
|
|
|
|
const allowedUrlsPattern = process.env.ALLOWED_DOMAIN_PATTERN;
|
|
|
|
/**
|
|
* Required endpoint, called by Saleor to install app.
|
|
* It will exchange tokens with app, so saleorApp.apl will contain token
|
|
*/
|
|
export default createAppRegisterHandler({
|
|
apl: saleorApp.apl,
|
|
allowedSaleorUrls: [
|
|
(url) => {
|
|
if (allowedUrlsPattern) {
|
|
const regex = new RegExp(allowedUrlsPattern);
|
|
|
|
return regex.test(url);
|
|
}
|
|
|
|
return true;
|
|
},
|
|
],
|
|
onAuthAplSaved: async (request, ctx) => {
|
|
// Subscribe to Notify using the mutation since it does not use subscriptions and can't be subscribed via manifest
|
|
// FIXME:
|
|
// logger.debug("onAuthAplSaved executing");
|
|
// const baseUrl = getBaseUrl(request.headers);
|
|
// const client = createClient(ctx.authData.saleorApiUrl, async () =>
|
|
// Promise.resolve({ token: ctx.authData.token })
|
|
// );
|
|
// await registerNotifyWebhook({
|
|
// client: client,
|
|
// baseUrl: baseUrl,
|
|
// });
|
|
// logger.debug("Webhook registered");
|
|
},
|
|
});
|