thm-p3-configurator 0.0.425 → 0.0.426
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/src/shared/App.js +116 -0
- package/dist/src/shared/__api__/__tests__/queryKeyFactory.test.js +124 -0
- package/dist/src/shared/__api__/_dummyApi.js +110 -0
- package/dist/src/shared/__api__/authenticatedProxyApi.js +321 -0
- package/dist/src/shared/__api__/businessBranches.js +18 -0
- package/dist/src/shared/__api__/mutations.js +875 -0
- package/dist/src/shared/__api__/orderApi.js +29 -0
- package/dist/src/shared/__api__/publicProxyApi.js +71 -0
- package/dist/src/shared/__api__/queries.js +1031 -0
- package/dist/src/shared/__api__/queryKeyFactory.js +156 -0
- package/dist/src/shared/__components__/Buttons/LinkButton.js +56 -0
- package/dist/src/shared/__components__/Buttons/NavigationButton.js +40 -0
- package/dist/src/shared/__components__/Buttons/OutlinedButton.js +63 -0
- package/dist/src/shared/__components__/Buttons/PrimaryButton.js +55 -0
- package/dist/src/shared/__components__/Cards/Card.js +38 -0
- package/dist/src/shared/__components__/Cards/CardWide.js +27 -0
- package/dist/src/shared/__components__/Cards/ExpandableCard.js +87 -0
- package/dist/src/shared/__components__/Cards/TogglableCard.js +68 -0
- package/dist/src/shared/__components__/DangerAlert.js +23 -0
- package/dist/src/shared/__components__/EmptyState.js +30 -0
- package/dist/src/shared/__components__/Error.js +66 -0
- package/dist/src/shared/__components__/Form/CheckboxInput.js +87 -0
- package/dist/src/shared/__components__/Form/DatePickerInput.js +127 -0
- package/dist/src/shared/__components__/Form/DecimalInput.js +106 -0
- package/dist/src/shared/__components__/Form/DropdownInput.js +205 -0
- package/dist/src/shared/__components__/Form/ErrorMessage.js +23 -0
- package/dist/src/shared/__components__/Form/FormSteps.js +64 -0
- package/dist/src/shared/__components__/Form/LicensePlateInput.js +117 -0
- package/dist/src/shared/__components__/Form/MenuListWithSearchHint.js +25 -0
- package/dist/src/shared/__components__/Form/NumericInput.js +182 -0
- package/dist/src/shared/__components__/Form/RadioButtons.js +93 -0
- package/dist/src/shared/__components__/Form/RadioInput.js +83 -0
- package/dist/src/shared/__components__/Form/SearchableDropdownInput.js +257 -0
- package/dist/src/shared/__components__/Form/TextAreaInput.js +91 -0
- package/dist/src/shared/__components__/Form/TextInput.js +97 -0
- package/dist/src/shared/__components__/Form/TimePickerInput.js +239 -0
- package/dist/src/shared/__components__/Header.js +44 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationAutoComplete.js +229 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationClusteredMap.js +127 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationClusteredTreeMarkers.js +247 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationDetails.js +295 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationInfo.js +140 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationList.js +190 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationListItem.js +116 -0
- package/dist/src/shared/__components__/LocationsSelector/LocationTreeMarker.js +97 -0
- package/dist/src/shared/__components__/LocationsSelector/index.js +156 -0
- package/dist/src/shared/__components__/Modal.js +78 -0
- package/dist/src/shared/__components__/Navbar.js +82 -0
- package/dist/src/shared/__components__/NavigationSteps.js +126 -0
- package/dist/src/shared/__components__/Pagination.js +53 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardCheckbox.js +38 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardDescription.js +84 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardDiscountAlert.js +57 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardImage.js +28 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardPrice.js +37 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardRibbon.js +28 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardSpecifications.js +77 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardUsps.js +82 -0
- package/dist/src/shared/__components__/internal/InternalCustomerDetailsForm.js +1090 -0
- package/dist/src/shared/__constants__/__tests__/index.test.js +38 -0
- package/dist/src/shared/__constants__/cartTable.js +35 -0
- package/dist/src/shared/__constants__/cookiebot.js +7 -0
- package/dist/src/shared/__constants__/index.js +398 -0
- package/dist/src/shared/__constants__/sentry.js +20 -0
- package/dist/src/shared/__containers__/ANWBMembershipInput.js +170 -0
- package/dist/src/shared/__containers__/AppointmentForm.js +546 -0
- package/dist/src/shared/__containers__/BoardComputerCard.js +139 -0
- package/dist/src/shared/__containers__/BottomNavigationBar.js +184 -0
- package/dist/src/shared/__containers__/DiscountProductsSelector.js +151 -0
- package/dist/src/shared/__containers__/ExitIntentModal.js +413 -0
- package/dist/src/shared/__containers__/ExtraProductsOverview.js +202 -0
- package/dist/src/shared/__containers__/LicensePlateForm.js +177 -0
- package/dist/src/shared/__containers__/ManualSelectionForm.js +277 -0
- package/dist/src/shared/__containers__/ProductCartSide.js +377 -0
- package/dist/src/shared/__containers__/ProductDiscountCard.js +169 -0
- package/dist/src/shared/__containers__/ProductsCartOverview.js +934 -0
- package/dist/src/shared/__containers__/ProductsOverview.js +494 -0
- package/dist/src/shared/__containers__/QuestionsForm.js +508 -0
- package/dist/src/shared/__containers__/QuotationForm.js +531 -0
- package/dist/src/shared/__containers__/QuotationSuccessModal.js +34 -0
- package/dist/src/shared/__containers__/SentryWrapper.js +60 -0
- package/dist/src/shared/__containers__/StyleWrapper.js +83 -0
- package/dist/src/shared/__containers__/VehicleData.js +218 -0
- package/dist/src/shared/__containers__/internal/DirectVehicleSelectorModal.js +125 -0
- package/dist/src/shared/__containers__/internal/InternalAppointmentForm.js +1753 -0
- package/dist/src/shared/__containers__/internal/InternalAppointmentSuccessModal.js +116 -0
- package/dist/src/shared/__containers__/internal/InternalBranchSelectorModal.js +449 -0
- package/dist/src/shared/__containers__/internal/InternalCancelDossierEdit.js +73 -0
- package/dist/src/shared/__containers__/internal/InternalDiscountCodeSelector.js +78 -0
- package/dist/src/shared/__containers__/internal/InternalDiscountForm.js +156 -0
- package/dist/src/shared/__containers__/internal/InternalExtraPriceForm.js +143 -0
- package/dist/src/shared/__containers__/internal/InternalLicenseplateModal.js +131 -0
- package/dist/src/shared/__containers__/internal/InternalPriceCalculationSelector.js +52 -0
- package/dist/src/shared/__containers__/internal/InternalQuotationForm.js +1051 -0
- package/dist/src/shared/__containers__/internal/InternalQuotationSuccessModal.js +114 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderCart.js +103 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderFilters.js +318 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderProductOverview.js +198 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderSidebar.js +21 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderSuccessModal.js +57 -0
- package/dist/src/shared/__containers__/internal/OrderTypeSelectorModal.js +136 -0
- package/dist/src/shared/__containers__/internal/index.js +73 -0
- package/dist/src/shared/__context__/ActiveMarkerContext.js +44 -0
- package/dist/src/shared/__context__/AuthRuntimeContext.js +63 -0
- package/dist/src/shared/__context__/AuthSessionContext.js +187 -0
- package/dist/src/shared/__context__/CountryContext.js +63 -0
- package/dist/src/shared/__context__/FormulaContext.js +77 -0
- package/dist/src/shared/__context__/OrderSessionContext.js +1555 -0
- package/dist/src/shared/__context__/ThemeContext.js +57 -0
- package/dist/src/shared/__helpers__/__tests__/dossier.test.js +68 -0
- package/dist/src/shared/__helpers__/__tests__/product.test.js +49 -0
- package/dist/src/shared/__helpers__/__tests__/singleOrderCustomerDetails.test.js +170 -0
- package/dist/src/shared/__helpers__/belgianConfiguratorInfo.js +16 -0
- package/dist/src/shared/__helpers__/cartTable.js +449 -0
- package/dist/src/shared/__helpers__/cookieManager.js +44 -0
- package/dist/src/shared/__helpers__/cookiebot.js +30 -0
- package/dist/src/shared/__helpers__/countryOptions.js +89 -0
- package/dist/src/shared/__helpers__/dossier.js +370 -0
- package/dist/src/shared/__helpers__/geolocation.js +70 -0
- package/dist/src/shared/__helpers__/image.js +115 -0
- package/dist/src/shared/__helpers__/index.js +391 -0
- package/dist/src/shared/__helpers__/montageRate.js +71 -0
- package/dist/src/shared/__helpers__/openingHours.js +211 -0
- package/dist/src/shared/__helpers__/product.js +248 -0
- package/dist/src/shared/__helpers__/queryClient.js +23 -0
- package/dist/src/shared/__helpers__/singleOrderArticles.js +457 -0
- package/dist/src/shared/__helpers__/singleOrderBranchSelector.js +14 -0
- package/dist/src/shared/__helpers__/singleOrderCartArticles.js +79 -0
- package/dist/src/shared/__helpers__/singleOrderCustomerDetails.js +198 -0
- package/dist/src/shared/__helpers__/ui.js +39 -0
- package/dist/src/shared/__hooks__/useArticleTypes.js +23 -0
- package/dist/src/shared/__hooks__/useAuthSession.js +12 -0
- package/dist/src/shared/__hooks__/useBranchTheme.js +80 -0
- package/dist/src/shared/__hooks__/useBreakpoint.js +68 -0
- package/dist/src/shared/__hooks__/useCheckEmailExists.js +90 -0
- package/dist/src/shared/__hooks__/useDebouncedPush.js +23 -0
- package/dist/src/shared/__hooks__/useIsSingleOrder.js +15 -0
- package/dist/src/shared/__hooks__/useIsTmg.js +25 -0
- package/dist/src/shared/__hooks__/useIsTowmotive.js +23 -0
- package/dist/src/shared/__hooks__/usePricingFormula.js +30 -0
- package/dist/src/shared/__hooks__/useSearchParam.js +29 -0
- package/dist/src/shared/__hooks__/useSessionContextReady.js +20 -0
- package/dist/src/shared/__hooks__/useUserLocation.js +51 -0
- package/dist/src/shared/__pages__/AppointmentPage.js +42 -0
- package/dist/src/shared/__pages__/AppointmentThanksPage.js +59 -0
- package/dist/src/shared/__pages__/ExtraProductsPage.js +41 -0
- package/dist/src/shared/__pages__/LicensePlatePage.js +183 -0
- package/dist/src/shared/__pages__/LocationsPage.js +32 -0
- package/dist/src/shared/__pages__/ManualSelectionPage.js +168 -0
- package/dist/src/shared/__pages__/NoProductsPage.js +124 -0
- package/dist/src/shared/__pages__/NotFoundPage.js +27 -0
- package/dist/src/shared/__pages__/OverviewPage.js +79 -0
- package/dist/src/shared/__pages__/ProductsPage.js +48 -0
- package/package.json +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.string.starts-with.js");
|
|
4
|
+
require("core-js/modules/es.weak-map.js");
|
|
5
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
6
|
+
require("core-js/modules/es.weak-map.js");
|
|
7
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
8
|
+
Object.defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports.default = void 0;
|
|
12
|
+
require("core-js/modules/es.string.starts-with.js");
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
require("react-datepicker/src/stylesheets/datepicker-cssmodules.scss");
|
|
15
|
+
var _reactGtmModule = _interopRequireDefault(require("react-gtm-module"));
|
|
16
|
+
var _reactHotLoader = require("react-hot-loader");
|
|
17
|
+
var _reactQuery = require("react-query");
|
|
18
|
+
var _reactRouterDom = require("react-router-dom");
|
|
19
|
+
var _Navbar = _interopRequireDefault(require("./__components__/Navbar"));
|
|
20
|
+
var _constants__ = require("./__constants__");
|
|
21
|
+
var _SentryWrapper = _interopRequireDefault(require("./__containers__/SentryWrapper"));
|
|
22
|
+
var _pages__ = _interopRequireDefault(require("./__pages__"));
|
|
23
|
+
var _TEST_ONLY_INTERNAL_ROUTES = _interopRequireDefault(require("./__pages__/internal/__TEST_ONLY_INTERNAL_ROUTES"));
|
|
24
|
+
var _StyleWrapper = _interopRequireDefault(require("./__containers__/StyleWrapper"));
|
|
25
|
+
var _InternalBranchSelectorModal = _interopRequireDefault(require("./__containers__/internal/InternalBranchSelectorModal"));
|
|
26
|
+
var _ActiveMarkerContext = require("./__context__/ActiveMarkerContext");
|
|
27
|
+
var _CountryContext = require("./__context__/CountryContext");
|
|
28
|
+
var _FormulaContext = require("./__context__/FormulaContext");
|
|
29
|
+
var _OrderSessionContext = require("./__context__/OrderSessionContext");
|
|
30
|
+
var _cookiebot = require("./__helpers__/cookiebot");
|
|
31
|
+
var _queryClient = _interopRequireDefault(require("./__helpers__/queryClient"));
|
|
32
|
+
var _Datalayer = require("./__services__/Datalayer");
|
|
33
|
+
var _Experiments = _interopRequireDefault(require("./__services__/Experiments"));
|
|
34
|
+
var _mainExternal = _interopRequireDefault(require("./__style__/main-external.scss"));
|
|
35
|
+
var _main = _interopRequireDefault(require("./__style__/main.scss"));
|
|
36
|
+
function _interopRequireDefault(e) {
|
|
37
|
+
return e && e.__esModule ? e : {
|
|
38
|
+
default: e
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function _getRequireWildcardCache(e) {
|
|
42
|
+
if ("function" != typeof WeakMap) return null;
|
|
43
|
+
var r = new WeakMap(),
|
|
44
|
+
t = new WeakMap();
|
|
45
|
+
return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
|
|
46
|
+
return e ? t : r;
|
|
47
|
+
})(e);
|
|
48
|
+
}
|
|
49
|
+
function _interopRequireWildcard(e, r) {
|
|
50
|
+
if (!r && e && e.__esModule) return e;
|
|
51
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
|
52
|
+
default: e
|
|
53
|
+
};
|
|
54
|
+
var t = _getRequireWildcardCache(r);
|
|
55
|
+
if (t && t.has(e)) return t.get(e);
|
|
56
|
+
var n = {
|
|
57
|
+
__proto__: null
|
|
58
|
+
},
|
|
59
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
60
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
61
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
62
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
|
63
|
+
}
|
|
64
|
+
return n.default = e, t && t.set(e, n), n;
|
|
65
|
+
}
|
|
66
|
+
_reactGtmModule.default.initialize({
|
|
67
|
+
gtmId: APP_CONFIG.googleTagManagerId || 'GTM-TC67SZ4'
|
|
68
|
+
});
|
|
69
|
+
window.styles = APP_CONFIG.internal ? _main.default : _mainExternal.default;
|
|
70
|
+
const ROUTE_PROGRESS_EVENTS = {
|
|
71
|
+
'/configurator/trekhaakpakket': 'configurator_step_trekhaakpakket',
|
|
72
|
+
'/configurator/toebehoren': 'configurator_step_toebehoren',
|
|
73
|
+
'/configurator/overzicht': 'configurator_step_overzicht',
|
|
74
|
+
'/configurator/montagelocatie': 'configurator_step_montagelocatie',
|
|
75
|
+
'/configurator/gegevens': 'configurator_step_afspraak_maken',
|
|
76
|
+
'/configurator/offerte': 'configurator_step_offerte'
|
|
77
|
+
};
|
|
78
|
+
const ConfiguratorProgressTracker = () => {
|
|
79
|
+
const location = (0, _reactRouterDom.useLocation)();
|
|
80
|
+
const hasTrackedStartRef = (0, _react.useRef)(false);
|
|
81
|
+
const lastTrackedPathRef = (0, _react.useRef)('');
|
|
82
|
+
(0, _react.useEffect)(() => {
|
|
83
|
+
const {
|
|
84
|
+
pathname
|
|
85
|
+
} = location;
|
|
86
|
+
if (!hasTrackedStartRef.current && (pathname === '/' || pathname.startsWith('/configurator'))) {
|
|
87
|
+
hasTrackedStartRef.current = true;
|
|
88
|
+
(0, _Datalayer.pushToDataLayer)({
|
|
89
|
+
event: 'start_configurator'
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const routeEvent = ROUTE_PROGRESS_EVENTS[pathname];
|
|
93
|
+
if (!routeEvent || lastTrackedPathRef.current === pathname) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
lastTrackedPathRef.current = pathname;
|
|
97
|
+
(0, _Datalayer.pushToDataLayer)({
|
|
98
|
+
event: routeEvent
|
|
99
|
+
});
|
|
100
|
+
}, [location]);
|
|
101
|
+
return null;
|
|
102
|
+
};
|
|
103
|
+
const App = () => {
|
|
104
|
+
(0, _cookiebot.listenToCookiebotEvents)();
|
|
105
|
+
(0, _react.useEffect)(() => {
|
|
106
|
+
(0, _Experiments.default)();
|
|
107
|
+
});
|
|
108
|
+
return /*#__PURE__*/_react.default.createElement(_SentryWrapper.default, null, /*#__PURE__*/_react.default.createElement(_FormulaContext.FormulaController, {
|
|
109
|
+
defaultFormula: APP_CONFIG.internal ? null : _constants__.CONFIGURATOR_FORMULAS.THM
|
|
110
|
+
}, /*#__PURE__*/_react.default.createElement(_CountryContext.CountryController, {
|
|
111
|
+
defaultCountry: APP_CONFIG.country
|
|
112
|
+
}, /*#__PURE__*/_react.default.createElement(_OrderSessionContext.OrderSessionController, null, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
|
|
113
|
+
client: _queryClient.default
|
|
114
|
+
}, /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react.default.createElement(_reactHotLoader.AppContainer, null, /*#__PURE__*/_react.default.createElement(_ActiveMarkerContext.ActiveMarkerProvider, null, /*#__PURE__*/_react.default.createElement(_StyleWrapper.default, null, !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_Navbar.default, null), APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalBranchSelectorModal.default, null), !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(ConfiguratorProgressTracker, null), /*#__PURE__*/_react.default.createElement(_pages__.default, null))))))))));
|
|
115
|
+
};
|
|
116
|
+
var _default = exports.default = App;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.json.stringify.js");
|
|
4
|
+
require("core-js/modules/es.json.stringify.js");
|
|
5
|
+
var _queryKeyFactory = require("../queryKeyFactory");
|
|
6
|
+
describe('queryKeyFactory', () => {
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
global.APP_CONFIG = {
|
|
9
|
+
internal: true
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
it('normalizes buildYear into constructionYear without mutating input', () => {
|
|
13
|
+
const params = {
|
|
14
|
+
buildYear: '2024',
|
|
15
|
+
formula: 'THC',
|
|
16
|
+
skipFilters: false,
|
|
17
|
+
discountAmount: 0,
|
|
18
|
+
priceCalculationDate: '2026-03-09'
|
|
19
|
+
};
|
|
20
|
+
const normalized = (0, _queryKeyFactory.normalizeOrderParams)(params);
|
|
21
|
+
expect(normalized).toEqual({
|
|
22
|
+
constructionYear: '2024',
|
|
23
|
+
formula: 'THC',
|
|
24
|
+
skipFilters: false,
|
|
25
|
+
discountAmount: 0,
|
|
26
|
+
priceCalculationDate: '2026-03-09'
|
|
27
|
+
});
|
|
28
|
+
expect(params).toEqual({
|
|
29
|
+
buildYear: '2024',
|
|
30
|
+
formula: 'THC',
|
|
31
|
+
skipFilters: false,
|
|
32
|
+
discountAmount: 0,
|
|
33
|
+
priceCalculationDate: '2026-03-09'
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
it('preserves constructionYear when buildYear is absent', () => {
|
|
37
|
+
expect((0, _queryKeyFactory.normalizeOrderParams)({
|
|
38
|
+
formula: 'THC',
|
|
39
|
+
constructionYear: '02/2020 tot heden'
|
|
40
|
+
})).toEqual({
|
|
41
|
+
formula: 'THC',
|
|
42
|
+
constructionYear: '02/2020 tot heden'
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it('drops priceCalculationDate for external mode', () => {
|
|
46
|
+
global.APP_CONFIG = {
|
|
47
|
+
internal: false
|
|
48
|
+
};
|
|
49
|
+
expect((0, _queryKeyFactory.normalizeOrderParams)({
|
|
50
|
+
formula: 'THC',
|
|
51
|
+
priceCalculationDate: '2026-03-09'
|
|
52
|
+
})).toEqual({
|
|
53
|
+
formula: 'THC'
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
it('serializes order params in stable priority order', () => {
|
|
57
|
+
const first = (0, _queryKeyFactory.serializeOrderParams)({
|
|
58
|
+
cart: '[]',
|
|
59
|
+
formula: 'THC',
|
|
60
|
+
buildYear: '2024',
|
|
61
|
+
licensePlate: '12AB34',
|
|
62
|
+
extraPriceAmount: 10,
|
|
63
|
+
durationAnswer: 'Lang'
|
|
64
|
+
});
|
|
65
|
+
const second = (0, _queryKeyFactory.serializeOrderParams)({
|
|
66
|
+
extraPriceAmount: 10,
|
|
67
|
+
durationAnswer: 'Lang',
|
|
68
|
+
licensePlate: '12AB34',
|
|
69
|
+
formula: 'THC',
|
|
70
|
+
cart: '[]',
|
|
71
|
+
buildYear: '2024'
|
|
72
|
+
});
|
|
73
|
+
expect(first).toBe('licensePlate=12AB34&formula=THC&constructionYear=2024&durationAnswer=Lang&extraPriceAmount=10');
|
|
74
|
+
expect(second).toBe(first);
|
|
75
|
+
});
|
|
76
|
+
it('preserves legacy getOrder request semantics by omitting falsy values', () => {
|
|
77
|
+
expect((0, _queryKeyFactory.serializeOrderParams)({
|
|
78
|
+
licensePlate: '12AB34',
|
|
79
|
+
formula: 'THC',
|
|
80
|
+
discountAmount: 0,
|
|
81
|
+
skipFilters: false,
|
|
82
|
+
extraPriceAmount: null
|
|
83
|
+
})).toBe('licensePlate=12AB34&formula=THC');
|
|
84
|
+
});
|
|
85
|
+
it('builds order query keys from serialized order params', () => {
|
|
86
|
+
expect((0, _queryKeyFactory.getOrderQueryKey)({
|
|
87
|
+
licensePlate: '12AB34',
|
|
88
|
+
formula: 'THC'
|
|
89
|
+
})).toEqual(['order', 'licensePlate=12AB34&formula=THC']);
|
|
90
|
+
});
|
|
91
|
+
it('includes formula in brands and build-years keys', () => {
|
|
92
|
+
expect((0, _queryKeyFactory.getBrandsQueryKey)('TMG')).toEqual(['brands', 'TMG']);
|
|
93
|
+
expect((0, _queryKeyFactory.getBrandsQueryKey)('TBE')).toEqual(['brands', 'TBE']);
|
|
94
|
+
expect((0, _queryKeyFactory.getBuildYearsQueryKey)({
|
|
95
|
+
brand: 'Volvo',
|
|
96
|
+
formula: 'TMG'
|
|
97
|
+
})).toEqual(['buildYears', 'Volvo', 'TMG']);
|
|
98
|
+
});
|
|
99
|
+
it('includes formula in single-order-articles keys', () => {
|
|
100
|
+
const first = (0, _queryKeyFactory.getSingleOrderArticlesKey)({
|
|
101
|
+
filters: {
|
|
102
|
+
brand: 'Volvo',
|
|
103
|
+
articleNumber: '123'
|
|
104
|
+
},
|
|
105
|
+
formula: 'TMG',
|
|
106
|
+
branchId: 'branch-1',
|
|
107
|
+
webshop: false
|
|
108
|
+
});
|
|
109
|
+
const second = (0, _queryKeyFactory.getSingleOrderArticlesKey)({
|
|
110
|
+
filters: {
|
|
111
|
+
articleNumber: '123',
|
|
112
|
+
brand: 'Volvo'
|
|
113
|
+
},
|
|
114
|
+
formula: 'TMG',
|
|
115
|
+
branchId: 'branch-1',
|
|
116
|
+
webshop: false
|
|
117
|
+
});
|
|
118
|
+
expect(first).toEqual(['singleOrderArticles', JSON.stringify({
|
|
119
|
+
articleNumber: '123',
|
|
120
|
+
brand: 'Volvo'
|
|
121
|
+
}), 'TMG', 'branch-1', false]);
|
|
122
|
+
expect(second).toEqual(first);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dummyApi = void 0;
|
|
7
|
+
var _bikeCarrier = _interopRequireDefault(require("../../../public/assets/images/dummy/bike-carrier.jpg"));
|
|
8
|
+
var _extra = _interopRequireDefault(require("../../../public/assets/images/dummy/extra.png"));
|
|
9
|
+
var _licensePlateWhite = _interopRequireDefault(require("../../../public/assets/images/dummy/license-plate-white.png"));
|
|
10
|
+
var _towbar = _interopRequireDefault(require("../../../public/assets/images/dummy/towbar-1.jpg"));
|
|
11
|
+
var _towbar2 = _interopRequireDefault(require("../../../public/assets/images/dummy/towbar-2.jpg"));
|
|
12
|
+
function _interopRequireDefault(e) {
|
|
13
|
+
return e && e.__esModule ? e : {
|
|
14
|
+
default: e
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const dummyApi = exports.dummyApi = {
|
|
18
|
+
getCart: () => ({
|
|
19
|
+
data: {
|
|
20
|
+
editable: [{
|
|
21
|
+
id: 'onetwothree',
|
|
22
|
+
title: 'Trekhaken verticaal afneembaar',
|
|
23
|
+
price: 50,
|
|
24
|
+
image: _towbar.default,
|
|
25
|
+
amount: 50
|
|
26
|
+
}],
|
|
27
|
+
static: [{
|
|
28
|
+
id: 'onetwothree',
|
|
29
|
+
title: 'Trekhaken verticaal afneembaar',
|
|
30
|
+
price: 100,
|
|
31
|
+
image: _towbar2.default
|
|
32
|
+
}]
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
getExtraProducts: () => ({
|
|
36
|
+
data: [{
|
|
37
|
+
isRecommended: false,
|
|
38
|
+
productId: 10,
|
|
39
|
+
productTitle: 'Witte kentekenplaat',
|
|
40
|
+
productDescription: "Witte kentekenplaat voor fietsendragers en aanhangwagens/caravans tot 750 kg.",
|
|
41
|
+
productImage: _licensePlateWhite.default,
|
|
42
|
+
productPrice: 249.99,
|
|
43
|
+
productDiscountedPrice: 199.99,
|
|
44
|
+
productCategory: 'Handige Accessoires'
|
|
45
|
+
}, {
|
|
46
|
+
isRecommended: false,
|
|
47
|
+
productId: 50,
|
|
48
|
+
productTitle: 'Verloopstekker 13- naar 7-polig',
|
|
49
|
+
productDescription: "D.m.v een verloopstekker kunnen ook oudere types\naanhangers, boot- of paardentrailers en fietsendragers\nworden aangesloten op uw 13-polige kabelset.",
|
|
50
|
+
productImage: _extra.default,
|
|
51
|
+
productPrice: 249.99,
|
|
52
|
+
productDiscountedPrice: 199.99,
|
|
53
|
+
productCategory: 'Handige Accessoires'
|
|
54
|
+
}, {
|
|
55
|
+
productId: 20,
|
|
56
|
+
isRecommended: false,
|
|
57
|
+
productTitle: 'Yakima Foldclick 2',
|
|
58
|
+
productDescription: "D.m.v een verloopstekker kunnen ook oudere types\naanhangers, boot- of paardentrailers en\nfietsendragers worden aangesloten op uw\n13-polige kabelset",
|
|
59
|
+
productImage: _bikeCarrier.default,
|
|
60
|
+
productPrice: 299.99,
|
|
61
|
+
productDiscountedPrice: 249.99,
|
|
62
|
+
productCategory: 'Fietsendragers'
|
|
63
|
+
}, {
|
|
64
|
+
productId: 30,
|
|
65
|
+
isRecommended: false,
|
|
66
|
+
productTitle: 'Yakima Foldclick 3',
|
|
67
|
+
productDescription: "D.m.v een verloopstekker kunnen ook oudere types\n aanhangers, boot- of paardentrailers en\n fietsendragers worden aangesloten op uw\n 13-polige kabelset",
|
|
68
|
+
productImage: _bikeCarrier.default,
|
|
69
|
+
productPrice: 500.99,
|
|
70
|
+
productDiscountedPrice: 400.99,
|
|
71
|
+
productCategory: 'Fietsendragers'
|
|
72
|
+
}]
|
|
73
|
+
}),
|
|
74
|
+
getLocations: () => {
|
|
75
|
+
return {
|
|
76
|
+
data: [{
|
|
77
|
+
description: 'Garagebedrijf Peter Peeters is het adres voor trekhaakmontages in Zuiderhout. \r\rBij ons kunt u rekenen op deskundige montage van trekhaak en kabelset. \r\rTevens kunnen wij u uitstekend adviseren over de producten en toepassingen. \r\rKom snel langs of plan een afspraak in.',
|
|
78
|
+
title: 'Trekhaak Montage vestiging',
|
|
79
|
+
postCode: '4921PJ',
|
|
80
|
+
street: 'Brieltjenspolder',
|
|
81
|
+
city: 'Made',
|
|
82
|
+
telephoneNumber: '085-0004122',
|
|
83
|
+
latitude: 51.67353,
|
|
84
|
+
longitude: 4.81503,
|
|
85
|
+
id: 165522,
|
|
86
|
+
image: 'https://trekhaak-labels-api-production.s3.eu-central-1.amazonaws.com/6a88a0b9-5885-4f2a-9243-1dd2e9773fa5'
|
|
87
|
+
}, {
|
|
88
|
+
description: 'Garagebedrijf Peter Peeters is het adres voor trekhaakmontages in Zuiderhout. \r\rBij ons kunt u rekenen op deskundige montage van trekhaak en kabelset. \r\rTevens kunnen wij u uitstekend adviseren over de producten en toepassingen. \r\rKom snel langs of plan een afspraak in.',
|
|
89
|
+
title: 'Misker Hardenberg B.V. (JAMES)',
|
|
90
|
+
postCode: '7772SG',
|
|
91
|
+
street: 'J.C. Kellerlaan',
|
|
92
|
+
city: 'Hardenberg',
|
|
93
|
+
telephoneNumber: '0523 - 262 777',
|
|
94
|
+
latitude: 52.56026,
|
|
95
|
+
longitude: 6.62978,
|
|
96
|
+
id: 1666
|
|
97
|
+
}]
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
createQuotation: quotationInput => ({
|
|
101
|
+
data: {
|
|
102
|
+
success: true
|
|
103
|
+
}
|
|
104
|
+
}),
|
|
105
|
+
createAppointment: appointmentInput => ({
|
|
106
|
+
data: {
|
|
107
|
+
success: true
|
|
108
|
+
}
|
|
109
|
+
})
|
|
110
|
+
};
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.includes.js");
|
|
4
|
+
require("core-js/modules/es.promise.js");
|
|
5
|
+
require("core-js/modules/es.promise.finally.js");
|
|
6
|
+
require("core-js/modules/es.string.includes.js");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.authenticatedProxyApi = void 0;
|
|
11
|
+
require("core-js/modules/es.array.includes.js");
|
|
12
|
+
require("core-js/modules/es.promise.js");
|
|
13
|
+
require("core-js/modules/es.promise.finally.js");
|
|
14
|
+
require("core-js/modules/es.string.includes.js");
|
|
15
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
16
|
+
var _AuthRuntime = require("../__services__/AuthRuntime");
|
|
17
|
+
function _interopRequireDefault(e) {
|
|
18
|
+
return e && e.__esModule ? e : {
|
|
19
|
+
default: e
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const authenticatedClient = _axios.default.create({
|
|
23
|
+
baseURL: APP_CONFIG.proxyUrl,
|
|
24
|
+
withCredentials: true
|
|
25
|
+
});
|
|
26
|
+
const sessionClient = _axios.default.create({
|
|
27
|
+
baseURL: APP_CONFIG.proxyUrl,
|
|
28
|
+
withCredentials: true
|
|
29
|
+
});
|
|
30
|
+
let refreshPromise = null;
|
|
31
|
+
const syncRuntimeSession = function syncRuntimeSession() {
|
|
32
|
+
var _payload$branch$entit, _payload$branch;
|
|
33
|
+
let payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
34
|
+
const authRuntime = (0, _AuthRuntime.getAuthRuntime)();
|
|
35
|
+
if (!(payload !== null && payload !== void 0 && payload.authenticated)) {
|
|
36
|
+
authRuntime.clear();
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
authRuntime.setCsrfToken(payload.csrfToken || null);
|
|
40
|
+
authRuntime.setActiveBranchId((_payload$branch$entit = (_payload$branch = payload.branch) === null || _payload$branch === void 0 ? void 0 : _payload$branch.entityId) !== null && _payload$branch$entit !== void 0 ? _payload$branch$entit : null);
|
|
41
|
+
return true;
|
|
42
|
+
};
|
|
43
|
+
const refreshSession = () => {
|
|
44
|
+
if (!refreshPromise) {
|
|
45
|
+
refreshPromise = sessionClient('api/v1/auth', {
|
|
46
|
+
method: 'PUT'
|
|
47
|
+
}).then(response => {
|
|
48
|
+
syncRuntimeSession((response === null || response === void 0 ? void 0 : response.data) || {});
|
|
49
|
+
return response;
|
|
50
|
+
}).finally(() => {
|
|
51
|
+
refreshPromise = null;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return refreshPromise;
|
|
55
|
+
};
|
|
56
|
+
const resyncSession = async () => {
|
|
57
|
+
const response = await sessionClient('api/v1/auth/session', {
|
|
58
|
+
method: 'GET'
|
|
59
|
+
});
|
|
60
|
+
syncRuntimeSession((response === null || response === void 0 ? void 0 : response.data) || {});
|
|
61
|
+
return response;
|
|
62
|
+
};
|
|
63
|
+
const attachSessionHeaders = function attachSessionHeaders() {
|
|
64
|
+
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
65
|
+
config.headers = config.headers || {};
|
|
66
|
+
const authRuntime = (0, _AuthRuntime.getAuthRuntime)();
|
|
67
|
+
const branchId = authRuntime.getActiveBranchId();
|
|
68
|
+
if (branchId) {
|
|
69
|
+
config.headers['active-branch-id'] = branchId;
|
|
70
|
+
}
|
|
71
|
+
const method = (config.method || 'get').toLowerCase();
|
|
72
|
+
if (!['get', 'head', 'options'].includes(method)) {
|
|
73
|
+
const csrf = authRuntime.getCsrfToken();
|
|
74
|
+
if (csrf) {
|
|
75
|
+
config.headers['X-CSRF-Token'] = csrf;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return config;
|
|
79
|
+
};
|
|
80
|
+
authenticatedClient.interceptors.request.use(config => attachSessionHeaders(config));
|
|
81
|
+
sessionClient.interceptors.request.use(config => {
|
|
82
|
+
const normalizedConfig = attachSessionHeaders(config);
|
|
83
|
+
if (normalizedConfig !== null && normalizedConfig !== void 0 && normalizedConfig.headers) {
|
|
84
|
+
delete normalizedConfig.headers['active-branch-id'];
|
|
85
|
+
}
|
|
86
|
+
return normalizedConfig;
|
|
87
|
+
});
|
|
88
|
+
authenticatedClient.interceptors.response.use(response => response, async error => {
|
|
89
|
+
var _error$response, _originalRequest$url;
|
|
90
|
+
const status = error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status;
|
|
91
|
+
const originalRequest = (error === null || error === void 0 ? void 0 : error.config) || {};
|
|
92
|
+
if (![401, 403].includes(status) || originalRequest._retry || (_originalRequest$url = originalRequest.url) !== null && _originalRequest$url !== void 0 && _originalRequest$url.includes('api/v1/auth')) {
|
|
93
|
+
return Promise.reject(error);
|
|
94
|
+
}
|
|
95
|
+
originalRequest._retry = true;
|
|
96
|
+
try {
|
|
97
|
+
await refreshSession();
|
|
98
|
+
} catch (refreshError) {
|
|
99
|
+
var _sessionResponse$data;
|
|
100
|
+
const sessionResponse = await resyncSession().catch(() => null);
|
|
101
|
+
if (!(sessionResponse !== null && sessionResponse !== void 0 && (_sessionResponse$data = sessionResponse.data) !== null && _sessionResponse$data !== void 0 && _sessionResponse$data.authenticated)) {
|
|
102
|
+
return Promise.reject(refreshError);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return authenticatedClient(originalRequest);
|
|
106
|
+
});
|
|
107
|
+
const authenticatedProxyApi = exports.authenticatedProxyApi = {
|
|
108
|
+
getSession: () => sessionClient('api/v1/auth/session', {
|
|
109
|
+
method: 'GET'
|
|
110
|
+
}),
|
|
111
|
+
putSessionContext: function putSessionContext() {
|
|
112
|
+
let {
|
|
113
|
+
branchEntityId,
|
|
114
|
+
formula,
|
|
115
|
+
module
|
|
116
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
117
|
+
return authenticatedClient('api/v1/auth/context', {
|
|
118
|
+
method: 'PUT',
|
|
119
|
+
data: {
|
|
120
|
+
branchEntityId,
|
|
121
|
+
formula,
|
|
122
|
+
module
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
getArticleTypes: () => authenticatedClient("api/v1/articles/types", {
|
|
127
|
+
method: 'GET'
|
|
128
|
+
}),
|
|
129
|
+
getCountries: () => authenticatedClient("api/v1/countries", {
|
|
130
|
+
method: 'GET'
|
|
131
|
+
}),
|
|
132
|
+
putRefreshToken: () => refreshSession(),
|
|
133
|
+
getArticleGroups: articleTypeId => authenticatedClient("api/v1/articles/groups/".concat(articleTypeId), {
|
|
134
|
+
method: 'GET'
|
|
135
|
+
}),
|
|
136
|
+
getArticleSubGroups: (articleGroupId, formula) => authenticatedClient("api/v1/articles/subgroups/".concat(articleGroupId, "?formula=").concat(formula), {
|
|
137
|
+
method: 'GET'
|
|
138
|
+
}),
|
|
139
|
+
getArticles: filtersQueryString => authenticatedClient("api/v1/articles?".concat(filtersQueryString), {
|
|
140
|
+
method: 'GET'
|
|
141
|
+
}),
|
|
142
|
+
getBrandsByArticleNumbers: articleNumbersString => authenticatedClient("api/v1/articles/brands?".concat(articleNumbersString), {
|
|
143
|
+
method: 'GET'
|
|
144
|
+
}),
|
|
145
|
+
deleteLogout: () => sessionClient("api/v1/auth", {
|
|
146
|
+
method: 'DELETE'
|
|
147
|
+
}),
|
|
148
|
+
getMyProfile: () => authenticatedClient('api/v1/profile', {
|
|
149
|
+
method: 'GET'
|
|
150
|
+
}),
|
|
151
|
+
getBranchTypes: () => authenticatedClient("api/v1/branch-types", {
|
|
152
|
+
method: 'GET'
|
|
153
|
+
}),
|
|
154
|
+
getBranchesByType: _ref => {
|
|
155
|
+
let {
|
|
156
|
+
formula,
|
|
157
|
+
ownershipType,
|
|
158
|
+
organisationType,
|
|
159
|
+
searchTerm,
|
|
160
|
+
isTmg = false,
|
|
161
|
+
isTowCenterBranch = false
|
|
162
|
+
} = _ref;
|
|
163
|
+
return authenticatedClient("api/v1/branches/by-type?searchTerm=".concat(searchTerm, "&formula=").concat(formula, "&ownershipType=").concat(ownershipType, "&organisationType=").concat(organisationType, "&isTmg=").concat(isTmg, "&isTowCenterBranch=").concat(isTowCenterBranch), {
|
|
164
|
+
method: 'GET'
|
|
165
|
+
});
|
|
166
|
+
},
|
|
167
|
+
getBusinessBranches: _ref2 => {
|
|
168
|
+
let {
|
|
169
|
+
searchTerm,
|
|
170
|
+
formula
|
|
171
|
+
} = _ref2;
|
|
172
|
+
return authenticatedClient("api/v1/branches/zakelijk?searchTerm=".concat(searchTerm, "&formula=").concat(formula), {
|
|
173
|
+
method: 'GET'
|
|
174
|
+
});
|
|
175
|
+
},
|
|
176
|
+
getMyBranchesByFormula: formula => authenticatedClient("api/v1/profile/".concat(formula, "/branches"), {
|
|
177
|
+
method: 'GET'
|
|
178
|
+
}),
|
|
179
|
+
getSingleOrderBranchTypes: branchTypesParamsString => authenticatedClient("api/v1/branch-types?".concat(branchTypesParamsString), {
|
|
180
|
+
method: 'GET'
|
|
181
|
+
}),
|
|
182
|
+
getSingleOrderBranches: branchesParamsString => authenticatedClient("api/v1/branches?".concat(branchesParamsString), {
|
|
183
|
+
method: 'GET'
|
|
184
|
+
}),
|
|
185
|
+
getBranchById: id => authenticatedClient("api/v1/branches/".concat(id), {
|
|
186
|
+
method: 'GET'
|
|
187
|
+
}),
|
|
188
|
+
getQuotationById: id => authenticatedClient("api/v1/quotations/".concat(id), {
|
|
189
|
+
method: 'GET'
|
|
190
|
+
}),
|
|
191
|
+
getPlannedAppointmentById: id => authenticatedClient("api/v1/appointments/".concat(id), {
|
|
192
|
+
method: 'GET'
|
|
193
|
+
}),
|
|
194
|
+
getAppointmentRequestById: id => authenticatedClient("api/v1/appointment-requests/".concat(id), {
|
|
195
|
+
method: 'GET'
|
|
196
|
+
}),
|
|
197
|
+
getDossiers: _ref3 => {
|
|
198
|
+
let {
|
|
199
|
+
term,
|
|
200
|
+
offset = 0,
|
|
201
|
+
limit = 10,
|
|
202
|
+
branchId,
|
|
203
|
+
formula
|
|
204
|
+
} = _ref3;
|
|
205
|
+
return authenticatedClient("api/v1/dossiers?term=".concat(term, "&offset=").concat(offset, "&limit=").concat(limit).concat(branchId ? "&branchId=".concat(branchId) : '').concat(formula ? "&formula=".concat(formula) : ''), {
|
|
206
|
+
method: 'GET'
|
|
207
|
+
});
|
|
208
|
+
},
|
|
209
|
+
putDossierById: _ref4 => {
|
|
210
|
+
let {
|
|
211
|
+
id,
|
|
212
|
+
payload
|
|
213
|
+
} = _ref4;
|
|
214
|
+
return authenticatedClient("api/v1/dossiers/".concat(id), {
|
|
215
|
+
method: 'PUT',
|
|
216
|
+
data: payload
|
|
217
|
+
});
|
|
218
|
+
},
|
|
219
|
+
postAppointmentRequest: appointmentRequestPayload => authenticatedClient("api/v1/appointment-requests", {
|
|
220
|
+
method: 'POST',
|
|
221
|
+
data: appointmentRequestPayload,
|
|
222
|
+
headers: {
|
|
223
|
+
'Content-Type': 'application/json'
|
|
224
|
+
}
|
|
225
|
+
}),
|
|
226
|
+
postQuotation: quotationPayload => authenticatedClient("api/v1/quotations", {
|
|
227
|
+
method: 'POST',
|
|
228
|
+
data: quotationPayload,
|
|
229
|
+
headers: {
|
|
230
|
+
'Content-Type': 'application/json'
|
|
231
|
+
}
|
|
232
|
+
}),
|
|
233
|
+
postSingleOrder: singleOrderPayload => authenticatedClient("api/v1/single-orders", {
|
|
234
|
+
method: 'POST',
|
|
235
|
+
data: singleOrderPayload,
|
|
236
|
+
headers: {
|
|
237
|
+
'Content-Type': 'application/json'
|
|
238
|
+
}
|
|
239
|
+
}),
|
|
240
|
+
postShopifyOrder: shopifyOrderPayload => authenticatedClient("api/v1/single-orders/shopify", {
|
|
241
|
+
method: 'POST',
|
|
242
|
+
data: shopifyOrderPayload
|
|
243
|
+
}),
|
|
244
|
+
postAppointment: appointmentPayload => authenticatedClient("api/v1/appointments", {
|
|
245
|
+
method: 'POST',
|
|
246
|
+
data: appointmentPayload,
|
|
247
|
+
headers: {
|
|
248
|
+
'Content-Type': 'application/json'
|
|
249
|
+
}
|
|
250
|
+
}),
|
|
251
|
+
putQuotationById: _ref5 => {
|
|
252
|
+
let {
|
|
253
|
+
payload,
|
|
254
|
+
id
|
|
255
|
+
} = _ref5;
|
|
256
|
+
return authenticatedClient("api/v1/quotations/".concat(id), {
|
|
257
|
+
method: 'PUT',
|
|
258
|
+
data: payload,
|
|
259
|
+
headers: {
|
|
260
|
+
'Content-Type': 'application/json'
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
},
|
|
264
|
+
putAppointmentById: _ref6 => {
|
|
265
|
+
let {
|
|
266
|
+
payload,
|
|
267
|
+
id
|
|
268
|
+
} = _ref6;
|
|
269
|
+
return authenticatedClient("api/v1/appointments/".concat(id), {
|
|
270
|
+
method: 'PUT',
|
|
271
|
+
data: payload,
|
|
272
|
+
headers: {
|
|
273
|
+
'Content-Type': 'application/json'
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
},
|
|
277
|
+
putAppointmentRequestById: _ref7 => {
|
|
278
|
+
let {
|
|
279
|
+
payload,
|
|
280
|
+
id
|
|
281
|
+
} = _ref7;
|
|
282
|
+
return authenticatedClient("api/v1/appointment-requests/".concat(id, "?action=order"), {
|
|
283
|
+
method: 'PUT',
|
|
284
|
+
data: payload,
|
|
285
|
+
headers: {
|
|
286
|
+
'Content-Type': 'application/json'
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
},
|
|
290
|
+
getActiveDiscounts: _ref8 => {
|
|
291
|
+
let {
|
|
292
|
+
formulaCode,
|
|
293
|
+
limit,
|
|
294
|
+
offset
|
|
295
|
+
} = _ref8;
|
|
296
|
+
return authenticatedClient("api/v1/discounts?limit=".concat(limit, "&offset=").concat(offset, "&formulaCode=").concat(formulaCode), {
|
|
297
|
+
method: 'GET',
|
|
298
|
+
headers: {
|
|
299
|
+
'Content-Type': 'application/json'
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
},
|
|
303
|
+
getPartBrands: () => authenticatedClient("api/v1/configurator/part-brands", {
|
|
304
|
+
method: 'GET'
|
|
305
|
+
}),
|
|
306
|
+
getOrder: orderParameters => {
|
|
307
|
+
const basePath = APP_CONFIG.internal ? 'api/v1' : 'api/public/v1';
|
|
308
|
+
return authenticatedClient("".concat(basePath, "/configurator/order?").concat(orderParameters), {
|
|
309
|
+
method: 'GET'
|
|
310
|
+
});
|
|
311
|
+
},
|
|
312
|
+
getArticlePrices: partsQueryString => {
|
|
313
|
+
if (!APP_CONFIG.internal) {
|
|
314
|
+
return null;
|
|
315
|
+
}
|
|
316
|
+
const basePath = APP_CONFIG.internal ? 'api/v1' : 'api/public/v1';
|
|
317
|
+
return authenticatedClient("".concat(basePath, "/configurator/prices?").concat(partsQueryString), {
|
|
318
|
+
method: 'GET'
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveBusinessBranchesFormula = void 0;
|
|
7
|
+
var _constants__ = require("../__constants__");
|
|
8
|
+
const resolveBusinessBranchesFormula = formulaRaw => {
|
|
9
|
+
var _ref, _formulaRaw$entityId;
|
|
10
|
+
if (formulaRaw == null) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if (typeof formulaRaw === 'string') {
|
|
14
|
+
return formulaRaw;
|
|
15
|
+
}
|
|
16
|
+
return (_ref = (_formulaRaw$entityId = formulaRaw === null || formulaRaw === void 0 ? void 0 : formulaRaw.entityId) !== null && _formulaRaw$entityId !== void 0 ? _formulaRaw$entityId : formulaRaw === null || formulaRaw === void 0 ? void 0 : formulaRaw.id) !== null && _ref !== void 0 ? _ref : (0, _constants__.getConfiguratorFormulaCode)(formulaRaw);
|
|
17
|
+
};
|
|
18
|
+
exports.resolveBusinessBranchesFormula = resolveBusinessBranchesFormula;
|