UNPKG

@xo-union/tk-component-header-nav

Version:
84 lines (83 loc) 3.14 kB
"use strict"; var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property"); var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); _Object$defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/find")); var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/includes")); var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/json/stringify")); const PLANNING_TOOLS_URL = process.env.UNION_DEPLOYMENT_ENV === 'production' ? 'https://prod.bluecard.theknot.com/api/v2/result' : 'https://qa.bluecard.theknot.com/api/v2/result'; const GUEST_FED_URL = process.env.UNION_DEPLOYMENT_ENV === 'production' ? 'https://graphql.guests.theknot.com/graphql' : 'https://qa-graphql.guests.theknot.com/graphql'; const GUEST_FED_API_KEY = process.env.UNION_DEPLOYMENT_ENV === 'production' ? '2gr5fNa22D1S7wLi8dRG26akkp4sy6JFai4O3tva' : '9S0scH6dss5QOzcrFuAHw95VQBa1sgoC7xDGQnpn'; const getSessionToken = () => { try { var _context; return (0, _find.default)(_context = document.cookie.split(';')).call(_context, x => (0, _includes.default)(x).call(x, 'xo-session-token')).split('=')[1]; } catch { return undefined; } }; class DataFetcher { static async fetchHasWeddingVision() { const memberSessionToken = getSessionToken(); if (!memberSessionToken) { return false; } const headers = new Headers(); headers.append('xo-member-token', memberSessionToken); const requestOptions = { method: 'GET', headers, mode: 'cors' }; let response; try { response = await fetch(PLANNING_TOOLS_URL, requestOptions); } catch { return false; } if (response.status !== 200) { return false; } const body = await response.json(); if ('color_recommendation' in body && 'style_recommendation' in body) { return true; } return false; } static async fetchWeddingWebsiteAttributes() { const memberSessionToken = getSessionToken(); if (!memberSessionToken) { return false; } const headers = new Headers(); headers.append('x-api-key', GUEST_FED_API_KEY); headers.append('token', memberSessionToken); headers.append('Content-Type', 'application/json'); const graphql = (0, _stringify.default)({ query: '{weddingWebsite {slug state}}' }); const requestOptions = { method: 'POST', headers, body: graphql }; let response; const defaultAttributes = { slug: '', state: 'unpublished' }; try { var _body$data; response = await fetch(GUEST_FED_URL, requestOptions); const body = await response.json(); return (body === null || body === void 0 ? void 0 : (_body$data = body.data) === null || _body$data === void 0 ? void 0 : _body$data.weddingWebsite) || defaultAttributes; } catch { return defaultAttributes; } } } var _default = DataFetcher; exports.default = _default;