@things-factory/integration-marketplace 9.0.0-beta.30 → 9.0.0-beta.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/routers/magento-private-router.js +1 -1
- package/dist-server/routers/magento-private-router.js.map +1 -1
- package/dist-server/routers/shopify-install-private-router.js +1 -1
- package/dist-server/routers/shopify-install-private-router.js.map +1 -1
- package/dist-server/routers/shopify-private-router.js +1 -1
- package/dist-server/routers/shopify-private-router.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
@@ -13,7 +13,7 @@ const constants_1 = require("../graphql/constants");
|
|
13
13
|
const debug = require('debug')('things-factory:integration-marketplace:magento-private-router');
|
14
14
|
const isPathBaseDomain = !env_1.config.get('subdomain');
|
15
15
|
exports.magentoPrivateRouter = new koa_router_1.default();
|
16
|
-
exports.magentoPrivateRouter.get(`${isPathBaseDomain ?
|
16
|
+
exports.magentoPrivateRouter.get(`${isPathBaseDomain ? `/${(0, shell_1.getRoutePrefixForDomainType)()}/:domain` : ''}/callback-magento-pre-install`, async (context, next) => {
|
17
17
|
const { domain, user } = context.state;
|
18
18
|
const { store_base_url: storeURL, oauth_verifier: oauthVerifier, oauth_consumer_key: accessKey, oauth_consumer_secret: accessSecret } = process['MagentoInstallSessions'];
|
19
19
|
// const {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"magento-private-router.js","sourceRoot":"","sources":["../../server/routers/magento-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { Magento } from '../controllers/magento'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-private-router')\n\nconst isPathBaseDomain = !config.get('subdomain')\n\nexport const magentoPrivateRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPrivateRouter.get(\n `${isPathBaseDomain ? '/:domainType/:domain' : ''}/callback-magento-pre-install`,\n async (context, next) => {\n const { domain, user } = context.state\n\n const {\n store_base_url: storeURL,\n oauth_verifier: oauthVerifier,\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n } = process['MagentoInstallSessions']\n\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n // const accessInfoCookies = context.cookies.get('magento-access-info')\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n const magento = new Magento({ oauthConsumerKey: accessKey, oauthConsumerSecret: accessSecret, shop: storeURL })\n const requestURL: string = `${storeURL}oauth/token/request`\n const requestAuthorizationHeader: string = magento.makeRequestAuthorizationHeader(\n requestURL,\n 'POST',\n accessKey,\n accessSecret\n )\n\n const requestTokenResponse = await fetch(`${requestURL}`, {\n method: 'post',\n headers: {\n Authorization: requestAuthorizationHeader,\n 'Content-Type': 'application/json'\n }\n })\n\n if (!requestTokenResponse.ok) {\n const message = `failed to request token from magento : ${\n requestTokenResponse.status\n }, ${await requestTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const requestTokenResponse = new URLSearchParams(\n // 'oauth_token=4cqw0r7vo0s5goyyqnjb72sqj3vxwr0h&oauth_token_secret=rig3x3j5a9z5j6d4ubjwyf9f1l21itrr'\n // )\n\n var requestBody: any = requestTokenResponse.json()\n if (!requestBody.oauth_token) {\n const message = `failed to get oauth-token from magento : ${JSON.stringify(requestBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n const accessURL: string = `${storeURL}oauth/token/access`\n const accessAuthorizationHeader: string = magento.makeAccessAuthorizationHeader(\n accessURL,\n 'POST',\n accessKey,\n requestBody.oauth_token,\n oauthVerifier\n )\n const accessTokenResponse = await fetch(`${accessURL}`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: accessAuthorizationHeader\n },\n body: JSON.stringify({\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n })\n })\n\n if (!accessTokenResponse.ok) {\n const message = `failed to access token from magento : ${\n accessTokenResponse.status\n }, ${await accessTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const accessTokenResponse = new URLSearchParams(\n // 'oauth_token=0lnuajnuzeei2o8xcddii5us77xnb6v0&oauth_token_secret=1c6d2hycnir5ygf39fycs6zhtaagx8pd'\n // )\n\n var accessBody: any = accessTokenResponse.json()\n if (!accessBody.oauth_token) {\n const message = `failed to get access token from magento : ${JSON.stringify(accessBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: oauthVerifier,\n platform: 'magento'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'magento',\n name: 'magento-' + oauthVerifier,\n storeId: oauthVerifier,\n countryCode: '',\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain)}marketplace-store-magento/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
|
1
|
+
{"version":3,"file":"magento-private-router.js","sourceRoot":"","sources":["../../server/routers/magento-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRoutePrefixForDomainType, getRepository } from '@things-factory/shell'\n\nimport { Magento } from '../controllers/magento'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-private-router')\n\nconst isPathBaseDomain = !config.get('subdomain')\n\nexport const magentoPrivateRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPrivateRouter.get(\n `${isPathBaseDomain ? `/${getRoutePrefixForDomainType()}/:domain` : ''}/callback-magento-pre-install`,\n async (context, next) => {\n const { domain, user } = context.state\n\n const {\n store_base_url: storeURL,\n oauth_verifier: oauthVerifier,\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n } = process['MagentoInstallSessions']\n\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n // const accessInfoCookies = context.cookies.get('magento-access-info')\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n const magento = new Magento({ oauthConsumerKey: accessKey, oauthConsumerSecret: accessSecret, shop: storeURL })\n const requestURL: string = `${storeURL}oauth/token/request`\n const requestAuthorizationHeader: string = magento.makeRequestAuthorizationHeader(\n requestURL,\n 'POST',\n accessKey,\n accessSecret\n )\n\n const requestTokenResponse = await fetch(`${requestURL}`, {\n method: 'post',\n headers: {\n Authorization: requestAuthorizationHeader,\n 'Content-Type': 'application/json'\n }\n })\n\n if (!requestTokenResponse.ok) {\n const message = `failed to request token from magento : ${\n requestTokenResponse.status\n }, ${await requestTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const requestTokenResponse = new URLSearchParams(\n // 'oauth_token=4cqw0r7vo0s5goyyqnjb72sqj3vxwr0h&oauth_token_secret=rig3x3j5a9z5j6d4ubjwyf9f1l21itrr'\n // )\n\n var requestBody: any = requestTokenResponse.json()\n if (!requestBody.oauth_token) {\n const message = `failed to get oauth-token from magento : ${JSON.stringify(requestBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n const accessURL: string = `${storeURL}oauth/token/access`\n const accessAuthorizationHeader: string = magento.makeAccessAuthorizationHeader(\n accessURL,\n 'POST',\n accessKey,\n requestBody.oauth_token,\n oauthVerifier\n )\n const accessTokenResponse = await fetch(`${accessURL}`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: accessAuthorizationHeader\n },\n body: JSON.stringify({\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n })\n })\n\n if (!accessTokenResponse.ok) {\n const message = `failed to access token from magento : ${\n accessTokenResponse.status\n }, ${await accessTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const accessTokenResponse = new URLSearchParams(\n // 'oauth_token=0lnuajnuzeei2o8xcddii5us77xnb6v0&oauth_token_secret=1c6d2hycnir5ygf39fycs6zhtaagx8pd'\n // )\n\n var accessBody: any = accessTokenResponse.json()\n if (!accessBody.oauth_token) {\n const message = `failed to get access token from magento : ${JSON.stringify(accessBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: oauthVerifier,\n platform: 'magento'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'magento',\n name: 'magento-' + oauthVerifier,\n storeId: oauthVerifier,\n countryCode: '',\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain)}marketplace-store-magento/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
|
@@ -11,7 +11,7 @@ const constants_1 = require("../graphql/constants");
|
|
11
11
|
const isPathBaseDomain = !env_1.config.get('subdomain');
|
12
12
|
const debug = require('debug')('things-factory:integration-marketplace:shopify-install-private-router');
|
13
13
|
exports.shopifyInstallPrivateRouter = new koa_router_1.default();
|
14
|
-
exports.shopifyInstallPrivateRouter.get(`${isPathBaseDomain ?
|
14
|
+
exports.shopifyInstallPrivateRouter.get(`${isPathBaseDomain ? `/${(0, shell_1.getRoutePrefixForDomainType)()}/:domain` : ''}/callback-shopify-post-install`, async (context, next) => {
|
15
15
|
const { secure } = context;
|
16
16
|
const { domain, user } = context.state;
|
17
17
|
const shopifyCookie = context.cookies.get('shopify-access-token');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shopify-install-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-private-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,+BAAmC;AAEnC,6CAA4C;AAC5C,
|
1
|
+
{"version":3,"file":"shopify-install-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRoutePrefixForDomainType, getRepository } from '@things-factory/shell'\n\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst isPathBaseDomain = !config.get('subdomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-install-private-router')\n\nexport const shopifyInstallPrivateRouter = new Router()\n\nshopifyInstallPrivateRouter.get(\n `${isPathBaseDomain ? `/${getRoutePrefixForDomainType()}/:domain` : ''}/callback-shopify-post-install`,\n async (context, next) => {\n const { secure } = context\n const { domain, user } = context.state\n\n const shopifyCookie = context.cookies.get('shopify-access-token')\n const { access_token: accessToken, shop: shopUrl } = JSON.parse(shopifyCookie)\n const shop = shopUrl.replace('.myshopify.com', '')\n\n context.cookies.set('shopify-access-token', '', {\n secure,\n httpOnly: true\n })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain: { id: domain.id },\n platform: 'shopify',\n name: 'shopify-' + shop,\n storeId: shop,\n countryCode: '',\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain)}marketplace-store-shopify/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
|
@@ -15,7 +15,7 @@ const { apiKey, apiSecret } = shopifyConfig;
|
|
15
15
|
const isPathBaseDomain = !env_1.config.get('subdomain');
|
16
16
|
const debug = require('debug')('things-factory:integration-marketplace:shopify-private-router');
|
17
17
|
exports.shopifyPrivateRouter = new koa_router_1.default();
|
18
|
-
exports.shopifyPrivateRouter.get(`${isPathBaseDomain ?
|
18
|
+
exports.shopifyPrivateRouter.get(`${isPathBaseDomain ? `/${(0, shell_1.getRoutePrefixForDomainType)()}/:domain` : ''}/callback-shopify-install`, async (context, next) => {
|
19
19
|
// https://example.org/callback-shopify-install?shop={shop}&hmac=da9d83c171400a41f8db91a950508985×tamp=1409617544
|
20
20
|
const { hmac, timestamp } = context.query;
|
21
21
|
const { domain, user } = context.state;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shopify-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-private-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,+BAAmC;AAEnC,yDAAoF;AACpF,6CAA4C;AAC5C,
|
1
|
+
{"version":3,"file":"shopify-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-private-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,+BAAmC;AAEnC,yDAAoF;AACpF,6CAA4C;AAC5C,iDAAqG;AAErG,oDAAgD;AAChD,0CAAkE;AAClE,oDAAmD;AAEnD,MAAM,aAAa,GAAG,YAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAA;AACrE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAA;AAC3C,MAAM,gBAAgB,GAAG,CAAC,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAEjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+DAA+D,CAAC,CAAA;AAElF,QAAA,oBAAoB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAEhD,4BAAoB,CAAC,GAAG,CACtB,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAA,mCAA2B,GAAE,UAAU,CAAC,CAAC,CAAC,EAAE,2BAA2B,EACjG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtB,sHAAsH;IACtH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IACzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEtC,IAAI,IAAI,GAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAExD,6CAA6C;IAC7C,IAAI,gBAAgB,GAAG,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,OAAO,CAAC;QACnE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,SAAS;SACpB;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM;YACN,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,wBAAY,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,EAAE,CAAA;IACnD,kBAAkB,CAAC,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;IAClC,kBAAkB,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IACtD,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAA;IAChC,kBAAkB,CAAC,QAAQ,GAAG,kBAAkB,CAAA;IAChD,kBAAkB,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;IACnD,kBAAkB,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAA;IACrD,MAAM,IAAA,qBAAa,EAAC,6BAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAEhE,4CAA4C;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAA;IACrD,MAAM,IAAA,qBAAa,EAAC,6BAAiB,CAAC,CAAC,IAAI,CAAC;QAC1C,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,iCAAqB,CAAC,oBAAoB;QAChD,UAAU,EAAE,gBAAgB,CAAC,EAAE;KAChC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAE3D,KAAK,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAA;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC9B,CAAC,CACF,CAAA","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { VerificationToken, VerificationTokenType } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { getRepository, getRoutePrefixForDomainType, getUrlFromContext } from '@things-factory/shell'\n\nimport { Shopify } from '../controllers/shopify'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\nconst isPathBaseDomain = !config.get('subdomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-private-router')\n\nexport const shopifyPrivateRouter = new Router()\n\nshopifyPrivateRouter.get(\n `${isPathBaseDomain ? `/${getRoutePrefixForDomainType()}/:domain` : ''}/callback-shopify-install`,\n async (context, next) => {\n // https://example.org/callback-shopify-install?shop={shop}&hmac=da9d83c171400a41f8db91a950508985×tamp=1409617544\n const { hmac, timestamp } = context.query\n const { domain, user } = context.state\n\n let shop: any = context.query.shop\n shop = shop.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'shopify',\n name: shop,\n storeId: shop,\n countryCode: '',\n status: STORE_STATUS.INACTIVE,\n creator: user,\n updater: user\n })\n }\n\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = 'stock_allocation'\n marketplaceSetting.domain = marketplaceStore.domain\n marketplaceSetting.creator = marketplaceStore.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n\n /* generate verification-token as a nonce */\n const nonce = shopify.makeVerificationTokenForNonce()\n await getRepository(VerificationToken).save({\n userId: user.id,\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN,\n suppliment: marketplaceStore.id\n })\n\n const redirectUrl = getUrlFromContext(context, '/callback-shopify')\n const redirectTo = shopify.buildAuthURL(redirectUrl, nonce)\n\n debug('get:/callback-shopify-install', redirectTo)\n context.redirect(redirectTo)\n }\n)\n"]}
|