A bit more prefer-default and I added the new store constants. They are *not* being used yet, but I like the idea of getting them in and giving folks an opportunity to get used to the idea.

This commit is contained in:
DavidAtSafelite 2023-08-10 07:33:38 -04:00
parent f44d13505c
commit 65c9ce64c2
16 changed files with 468 additions and 22 deletions

View file

@ -9,4 +9,4 @@ const cookieNames = {
SESSION_KEY: 'skey'
};
export { cookieNames };
export default Object.freeze(cookieNames);

View file

@ -1,7 +1,7 @@
const coverageStatuses = {
const coverageStatuses = Object.freeze({
PENDING: 'Pending',
NO_COMP: 'No Comp',
VERIFIED: 'Verified'
};
});
export { coverageStatuses };
export default coverageStatuses;

View file

@ -1,9 +1,9 @@
const damageLocationsCms = {
const damageLocationsCms = Object.freeze({
WINDSHIELD: 'WINDSHIELD',
SIDEDOOR: 'SIDEDOOR',
REARWINDOW: 'REARWINDOW',
DRIVERSIDE: 'DRIVERSIDE',
PASSENGERSIDE: 'PASSENGERSIDE'
};
});
export { damageLocationsCms };
export default damageLocationsCms;

View file

@ -1,4 +1,4 @@
const damageLocationsSelected = {
const damageLocationsSelected = Object.freeze({
WINDSHIELD: 'Windshield',
SIDEDOOR: 'SideDoor',
REARWINDOW: 'RearWindow',
@ -16,6 +16,6 @@ const damageLocationsSelected = {
PASSENGERSIDE: 'PassengerSide',
STATIONARY: 'Stationary',
SLIDER: 'Slider'
};
});
export { damageLocationsSelected };
export default damageLocationsSelected;

View file

@ -1,4 +1,4 @@
import { cookieNames } from '@/constants/cookie-names';
import cookieNames from '@/constants/cookie-names';
import applicationConfig from '@/constants/application-config';
import { useMainStore } from '@/store';

View file

@ -1,5 +1,5 @@
import damageCustomLabels from '@/constants/damage-custom-labels';
import { damageLocationsSelected } from '@/constants/damage-locations-selected';
import damageLocationsSelected from '@/constants/damage-locations-selected';
import { useMainStore } from '@/store';
export function getDamageString() {

View file

@ -2,7 +2,7 @@ import { navigationScenarios } from '@/router/router-constants/navigation-scenar
import { RouterLinkStub } from '@vue/test-utils';
import { vehicleCategories } from '@/constants/vehicle-categories.js';
import { issPageValues } from '@/router/router-constants/issPage-values';
import { cookieNames } from '@/constants/cookie-names';
import cookieNames from '@/constants/cookie-names';
import { Form } from 'vee-validate';
import baseMixin from '@/mixins/base-mixin';
import {

View file

@ -13,11 +13,12 @@
<script>
import buttonQuestion from '@/digital-components/button-question/button-question';
import { processIfStatements } from '@/helpers/cms-content-helper';
import { damageLocationsSelected as glassLocations } from '@/constants/damage-locations-selected';
import damageLocationsSelected from '@/constants/damage-locations-selected';
import servicePackageRadio from '@/layouts/service-packages/service-package-question/service-package-radio/service-package-radio';
import { partTypeStrings } from '@/constants/part-type-strings';
import { useMainStore } from '@/store';
import { allGlassPartsAndItemsHavePrices } from '@/layouts/service-packages/service-package-helper/service-package-helper';
const glassLocations = damageLocationsSelected;
const packageNames = {
TIER_ONE: 'TierOne',

View file

@ -47,7 +47,7 @@ import replaceOptionsQuestion from '@/layouts/vehicle-damage/replace-options-que
import { defineRule } from 'vee-validate';
import { required } from '@/helpers/validation-rules';
import { errorMessages } from '@/constants/error-messages';
import { damageLocationsSelected } from '@/constants/damage-locations-selected';
import damageLocationsSelected from '@/constants/damage-locations-selected';
// DEFINE VALIDATION RULES
defineRule('damage-side-required', required(errorMessages.DAMAGE_SIDE_REQUIRED));

View file

@ -89,8 +89,8 @@ import { settleAllPromises } from '@/helpers/layout-helper';
import { Form, defineRule } from 'vee-validate';
import { required } from '@/helpers/validation-rules';
import { errorMessages } from '@/constants/error-messages';
import { damageLocationsCms } from '@/constants/damage-locations-cms.js';
import { damageLocationsSelected } from '@/constants/damage-locations-selected.js';
import damageLocationsCms from '@/constants/damage-locations-cms.js';
import damageLocationsSelected from '@/constants/damage-locations-selected.js';
import { useMainStore } from '@/store';
// DEFINE VALIDATION RULES

View file

@ -49,7 +49,7 @@ import alert from '@/ux-components/alert/alert';
import { defineRule } from 'vee-validate';
import { required } from '@/helpers/validation-rules';
import { errorMessages } from '@/constants/error-messages';
import { damageLocationsSelected } from '@/constants/damage-locations-selected.js';
import damageLocationsSelected from '@/constants/damage-locations-selected.js';
// DEFINE VALIDATION RULES
defineRule('windshield-damage-type-required',

View file

@ -14,7 +14,7 @@ import {
GaEvents,
ValueToLogTypes
} from '@/constants/analytics';
import { cookieNames } from '@/constants/cookie-names';
import cookieNames from '@/constants/cookie-names';
import { useMainStore } from '@/store';
export default {

191
src/store/constants/apis.js Normal file
View file

@ -0,0 +1,191 @@
/* eslint-disable camelcase */
/* eslint-disable jsdoc/check-tag-names */
/**
* @constant API_VERSION
* @endpoint
* @private
* @type {number}
* @description The version number utilized to access the web api endpoints.
* @static
* @readonly
*/
const API_VERSION = Object.freeze('1');
/**
* @member APIs
* @memberof StoreConstants
* @endpoint constant
* @description
* This store enumeration is used to specify the category of api by providing a segment of the API URL.
* @property {string} ANALYTICS - The Analytics API (see {@link https://digitalapi.dev.safelite.io/analytics/swagger/index.html}).
* @property {string} AUTHENTICATION - The Authentication API (see {@link https://digitalapi.dev.safelite.io/clientauth/swagger/index.html}).
* @property {string} CONTENT - The Content API (see {@link https://digitalapi.dev.safelite.io/content/swagger/index.html}).
* @property {string} COVERAGE - The Coverage API (see {@link https://digitalapi.dev.safelite.io/coverage/swagger/index.html}).
* @property {string} EXPERIMENTS - The Experiments API (see {@link https://digitalapi.dev.safelite.io/experiments/swagger/index.html}).
* @property {string} GOOGLE - The Google Maps API (see {@link https://developers.google.com/maps/documentation}).
* @property {string} LOCATION - The Location API (see {@link https://digitalapi.dev.safelite.io/location/swagger/index.html}).
* @property {string} PARTS - The Parts API (see {@link https://digitalapi.dev.safelite.io/parts/swagger/index.html}).
* @property {string} PRICE - The Price API (see {@link https://digitalapi.dev.safelite.io/price/swagger/index.html}).
* @property {string} VEHICLE - The Vehicle API (see {@link https://digitalapi.dev.safelite.io/vehicle/swagger/index.html}).
* @static
* @readonly
*/
const APIs = Object.freeze({
ANALYTICS: `analytics/api/v${API_VERSION}/analytics/`,
AUTHENTICATION: `clientauth/api/v${API_VERSION}/clientauth/`,
CONTENT: `content/api/v${API_VERSION}/content/`,
COVERAGE: `coverage/api/v${API_VERSION}/coverage/`,
EXPERIMENTS: `experiments/api/v${API_VERSION}/experiments/`,
GOOGLE: 'https://maps.googleapis.com/maps/api/js?key={apiKey}&libraries=places',
LOCATION: `location/api/v${API_VERSION}/location/`,
PARTS: `parts/api/v${API_VERSION}/parts/`,
PRICE: `price/api/v${API_VERSION}/price/`,
VEHICLE: `vehicle/api/v${API_VERSION}/vehicle/`
});
/**
* @member ENDPOINTs
* @memberof StoreConstants
* @endpoint
* @description
* This store enumeration is used to specify the individual endpoints by providing the primary segment of the EndPoint URL.
* @property {object} ANALYTICS - The Analytics API Category.
* @property {string} ANALYTICS.CustomEvent - The ANALYTICS.CustomEvent EndPoint URL Segment.
* @property {string} ANALYTICS.ExperimentsByUser - The ANALYTICS.ExperimentsByUser EndPoint URL Segment.
* @property {string} ANALYTICS.PageView - The ANALYTICS.PageView EndPoint URL Segment.
* @property {string} ANALYTICS.Session - The ANALYTICS.Session EndPoint URL Segment.
* @property {object} AUTHENTICATION - The Authentication API Category.
* @property {string} AUTHENTICATION.ClientTag - The AUTHENTICATION.ClientTag EndPoint URL Segment.
* @property {object} CONTENT - The Content API Category.
* @property {string} CONTENT.PageData - The CONTENT.PageData EndPoint URL Segment.
* @property {object} COVERAGE - The Coverage API Category.
* @property {string} COVERAGE.PolicyInfo - The COVERAGE.PolicyInfo EndPoint URL Segment.
* @property {object} EXPERIMENTS - The Experiments API Category.
* @property {string} EXPERIMENTS.ExperimentExposure - The EXPERIMENTS.ExperimentExposureExperiments EndPoint URL Segment.
* @property {string} EXPERIMENTS.ExperimentsForTrigger - The EXPERIMENTS.ExperimentsForTrigger EndPoint URL Segment.
* @property {object} GOOGLE - The Google Maps API Category.
* @property {string} GOOGLE.Places - The GOOGLE.Places (Google Maps) EndPoint URL Segment.
* @property {object} LOCATION - The Location API Category.
* @property {string} LOCATION.ServiceabilityDetails - The LOCATION.ServiceabilityDetails EndPoint URL Segment.
* @property {string} LOCATION.Zip - The LOCATION.Zip EndPoint URL Segment.
* @property {object} PARTS - The Parts API Category.
* @property {string} PARTS.CapabilityAnswers - The PARTS.CapabilityAnswers EndPoint URL Segment.
* @property {string} PARTS.CapabilityQuestions - The PARTS.CapabilityQuestions EndPoint URL Segment.
* @property {string} PARTS.DamageOptions - The PARTS.DamageOptions EndPoint URL Segment.
* @property {string} PARTS.Parts - The PARTS.Parts EndPoint URL Segment.
* @property {string} PARTS.PartsOrQuestions - The PARTS.PartsOrQuestions EndPoint URL Segment.
* @property {string} PARTS.RainDefense - The PARTS.RainDefense EndPoint URL Segment.
* @property {string} PARTS.SupportingItems - The PARTS.SupportingItems EndPoint URL Segment.
* @property {string} PARTS.Wipers - The PARTS.Wipers EndPoint URL Segment.
* @property {object} PRICE - The Price API Category.
* @property {string} PRICE.OrderItems - The PRICE.OrderItems EndPoint URL Segment.
* @property {object} VEHICLE - The Vehicle API Category.
* @property {string} VEHICLE.Makes - The VEHICLE.Makes EndPoint URL Segment.
* @property {string} VEHICLE.Models - The VEHICLE.Models EndPoint URL Segment.
* @property {string} VEHICLE.Styles - The VEHICLE.Styles EndPoint URL Segment.
* @property {string} VEHICLE.Vehicle - The VEHICLE.Vehicle EndPoint URL Segment.
* @property {string} VEHICLE.Years - The VEHICLE.Years EndPoint URL Segment.
* @property {object} VEHICLE.VIN - The Vehicle VIN API Category.
* @property {string} VEHICLE.VIN.ByAddress - The VEHICLE.VIN.ByAddress EndPoint URL Segment.
* @property {string} VEHICLE.VIN.ByPlate - The VEHICLE.VIN.ByPlate EndPoint URL Segment.
* @property {string} VEHICLE.VIN.ByVIN - The VEHICLE.VIN.ByVIN EndPoint URL Segment.
* @property {string} VEHICLE.VIN.IsByAddress - The VEHICLE.VIN.IsByAddress EndPoint URL Segment.
* @static
* @readonly
* @default
*/
const ENDPOINTs = Object.freeze({
ANALYTICS: {
CustomEvent: `${APIs.ANALYTICS}log-custom-event`,
ExperimentsByUser: `${APIs.ANALYTICS}get-experiments/{}`,
PageView: `${APIs.ANALYTICS}log-page-view`,
Session: `${APIs.ANALYTICS}initialize`
},
AUTHENTICATION: {
ClientTag: `${APIs.AUTHENTICATION}validate-client-tag/{}`
},
CONTENT: {
PageData: `${APIs.CONTENT}{}/{}`
},
COVERAGE: {
PolicyInfo: `${APIs.COVERAGE}get-policy-information`
},
EXPERIMENTS: {
ExperimentExposure: `${APIs.EXPERIMENTS}log-exposure`,
ExperimentsForTrigger: `${APIs.EXPERIMENTS}run`
},
GOOGLE: {
Places: APIs.GOOGLE
},
LOCATION: {
ServiceabilityDetails: `${APIs.LOCATION}serviceability-details?zip={}&carId={}&{}&{}`,
Zip: `${APIs.LOCATION}zip/{}`
},
PARTS: {
CapabilityAnswers: `${APIs.PARTS}part-from-capability-answer`,
CapabilityQuestions: `${APIs.PARTS}capability-questions/{}/{}`,
DamageOptions: `${APIs.PARTS}damage-options/{}`,
Parts: `${APIs.PARTS}parts`,
PartsOrQuestions: `${APIs.PARTS}parts-or-questions`,
RainDefense: `${APIs.PARTS}rain-defense`,
SupportingItems: `${APIs.PARTS}supporting-items`,
Wipers: `${APIs.PARTS}wipers/{}/{}`
},
PRICE: {
OrderItems: `${APIs.PRICE}order-items?{}`
},
VEHICLE: {
Makes: `${APIs.VEHICLE}makes/{}`,
Models: `${APIs.VEHICLE}models/{}/{}`,
Styles: `${APIs.VEHICLE}styles/{}/{}/{}`,
Vehicle: `${APIs.VEHICLE}lookup/{}/{}/{}/{}`,
Years: `${APIs.VEHICLE}years`,
VIN: {
ByAddress: `${APIs.VEHICLE}lookup-vin-by-address`,
ByPlate: `${APIs.VEHICLE}lookup-vin-by-plate`,
ByVIN: `${APIs.VEHICLE}lookup`,
IsByAddress: `${APIs.VEHICLE}is-vin-by-address-permissible?state={}`
}
}
});
/**
* @member HTTP_VERBS
* @memberof StoreConstants
* @endpoint
* @description
* This store enumeration is used by endpoints to specify the type of http request.
* @property {string} GET - The http verb **get**
* @property {string} POST - The http verb **post**
* @static
* @readonly
*/
const HTTP_VERBS = Object.freeze({ GET: 'get', POST: 'post' });
/**
* @module StoreConstants
* @endpoint constant
* @type {StoreConstants}
* @description
* Constants that are utilized by the Store and Endpoint system.
* @author T-Wrecks Team
* @copyright Safelite
* @property {StoreConstants.APIs} APIs
* This store enumeration is used to specify the category of api by providing a segment of the API URL.
* @remarks
* This is being exposed for testing purposes.
* @property {StoreConstants.ENDPOINTs} ENDPOINTs
* This store enumeration is used to specify the specific endpoint URLs.
* @property {StoreConstants.HTTP_VERBS} HTTP_VERBS
* This store enumeration is used by endpoints to specify the type of http request.
* @static
* @readonly
* @default
*/
const StoreConstants = {
APIs,
ENDPOINTs,
HTTP_VERBS
};
export default StoreConstants;

View file

@ -0,0 +1,254 @@
/* eslint-disable max-len */
/* eslint-disable camelcase */
import PAYLOAD_PROPERTIES from '@/store/endpoints/property-resolver.js';
/**
* @member ANALYTICS
* @memberof DefaultPayloads
* @endpoint
* @description
* This default payload object is used to specify the default payloads for the Analytics Service.
* @see {@link https://digitalapi.dev.safelite.io/analytics/swagger/index.html}
* @property {object} LogCustomEventPayload
* This default payload object provides payload properties for a call to the **log-custom-event** endpoint.
* @property {object} LogPageViewPayload
* This default payload object provides payload properties for a call to the **log-page-view** endpoint.
* @property {object} InitializeSessionPayload
* This default payload object provides payload properties for a call to the **initialize** endpoint.
* @static
* @readonly
*/
const ANALYTICS = {
LogCustomEventPayload: {},
LogPageViewPayload: {},
InitializeSessionPayload: {}
};
// #region ANALYTICS Custom Event Default Payload Setup
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.UserId.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.SessionKey.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.SessionId.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.PageName.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.ApplicationName.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.Category.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.Action.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.Label.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.Value.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.ShouldUseSessionId.Name] = '';
ANALYTICS.LogCustomEventPayload[PAYLOAD_PROPERTIES.ExperimentsForUser.Name] = '';
// #endregion
// #region ANALYTICS Page View Default Payload Setup
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.UserId.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.SessionKey.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.SessionId.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.PageName.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.ApplicationName.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.Action.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.Event.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.ShouldUseSessionId.Name] = '';
ANALYTICS.LogPageViewPayload[PAYLOAD_PROPERTIES.ExperimentsForUser.Name] = '';
// #endregion
// #region ANALYTICS Session Default Payload Setup
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.ApplicationName.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.UserId.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.DeviceId.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.SessionId.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.UserAgent.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.OperatorId.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.UserName.Name] = '';
ANALYTICS.InitializeSessionPayload[PAYLOAD_PROPERTIES.Referrer.Name] = '';
// #endregion
// #region ANALYTICS Deep Freeze
Object.freeze(ANALYTICS.LogCustomEventPayload);
Object.freeze(ANALYTICS.LogPageViewPayload);
Object.freeze(ANALYTICS.InitializeSessionPayload);
Object.freeze(ANALYTICS);
// #endregion
/**
* @member COVERAGE
* @memberof DefaultPayloads
* @endpoint
* @description
* This default payload object is used to specify the default payloads for the Coverage Service.
* @see {@link https://digitalapi.dev.safelite.io/coverage/swagger/index.html}
* @property {object} PolicyInfoPayload
* This default payload object provides payload properties for a call to the **get-policy-information** endpoint.
* @static
* @readonly
*/
const COVERAGE = {
PolicyInfoPayload: {}
};
// #region COVERAGE Policy Info Default Payload Setup
COVERAGE.PolicyInfoPayload[PAYLOAD_PROPERTIES.AccountNumber.Name] = '';
COVERAGE.PolicyInfoPayload[PAYLOAD_PROPERTIES.PolicyNumber.Name] = '';
COVERAGE.PolicyInfoPayload[PAYLOAD_PROPERTIES.DateOfLoss.Name] = '';
COVERAGE.PolicyInfoPayload[PAYLOAD_PROPERTIES.ZipCodeForCoverage.Name] = '';
COVERAGE.PolicyInfoPayload[PAYLOAD_PROPERTIES.PlaceholderCorrelationId.Name] = '';
// #endregion
// #region COVERAGE Deep Freeze
Object.freeze(COVERAGE.PolicyInfoPayload);
Object.freeze(COVERAGE);
// #endregion
/**
* @member EXPERIMENTS
* @memberof DefaultPayloads
* @endpoint
* @description
* This default payload object is used to specify the default payloads for the Experiment Service.
* @see {@link https://digitalapi.dev.safelite.io/experiments/swagger/index.html}
* @property {object} LogExperimentExposurePayload
* This default payload object provides payload properties for a call to the **log-exposure** endpoint.
* @property {object} RunExperimentsForTriggerPayload
* This default payload object provides payload properties for a call to the **run** endpoint.
* @static
* @readonly
*/
const EXPERIMENTS = {
LogExperimentExposurePayload: {},
RunExperimentsForTriggerPayload: {}
};
// #region EXPERIMENTS Experiment Exposure Default Payload Setup
EXPERIMENTS.LogExperimentExposurePayload[PAYLOAD_PROPERTIES.ExperimentForLogging.Name] = '';
// #endregion
// #region EXPERIMENTS Experiments For Trigger Default Payload Setup
EXPERIMENTS.RunExperimentsForTriggerPayload[PAYLOAD_PROPERTIES.ApplicationName.Name] = '';
EXPERIMENTS.RunExperimentsForTriggerPayload[PAYLOAD_PROPERTIES.UserId.Name] = '';
EXPERIMENTS.RunExperimentsForTriggerPayload[PAYLOAD_PROPERTIES.TriggerEvent.Name] = '';
EXPERIMENTS.RunExperimentsForTriggerPayload[PAYLOAD_PROPERTIES.TriggerValue.Name] = '';
EXPERIMENTS.RunExperimentsForTriggerPayload[PAYLOAD_PROPERTIES.ExperimentOrder.Name] = '';
// #endregion
// #region EXPERIMENTS Deep Freeze
Object.freeze(EXPERIMENTS.LogExperimentExposurePayload);
Object.freeze(EXPERIMENTS.RunExperimentsForTriggerPayload);
Object.freeze(EXPERIMENTS);
// #endregion
/**
* @member PARTS
* @memberof DefaultPayloads
* @endpoint
* @description
* This default payload object is used to specify the default payloads for the Part Service.
* @see {@link https://digitalapi.dev.safelite.io/parts/swagger/index.html}
* @property {object} ItemFromCapabilityAnswerPayload
* This default payload object provides payload properties for a call to the **part-from-capability-answer** endpoint.
* @property {object} PartsPayload
* This default payload object provides payload properties for a call to the **parts** endpoint.
* @property {object} PartsOrQuestionsPayload
* This default payload object provides payload properties for a call to the **parts-or-question** endpoint.
* @property {object} SupportingItemsPayload
* This default payload object provides payload properties for a call to the **supporting-items** endpoint.
* @static
* @readonly
*/
const PARTS = {
ItemFromCapabilityAnswerPayload: {},
PARTS_PartsPayload: {},
PartsOrQuestionsPayload: {},
SupportingItemsPayload: {}
};
// #region PARTS Item From Capability Answer Default Payload Setup
PARTS.ItemFromCapabilityAnswerPayload[PAYLOAD_PROPERTIES.Part.Name] = '';
PARTS.ItemFromCapabilityAnswerPayload[PAYLOAD_PROPERTIES.CapAnswerResults.Name] = '';
// #endregion
// #region PARTs Parts Default Payload Setup
PARTS.PartsPayload[PAYLOAD_PROPERTIES.CarId.Name] = '';
PARTS.PartsPayload[PAYLOAD_PROPERTIES.GlassPieces.Name] = '';
PARTS.PartsPayload[PAYLOAD_PROPERTIES.AnswerResults.Name] = '';
PARTS.PartsPayload[PAYLOAD_PROPERTIES.Zip.Name] = '';
PARTS.PartsPayload[PAYLOAD_PROPERTIES.VIN.Name] = '';
// #endregion
// #region PARTs Parts Or Questions Default Payload Setup
PARTS.PartsOrQuestionsPayload[PAYLOAD_PROPERTIES.CarId.Name] = '';
PARTS.PartsOrQuestionsPayload[PAYLOAD_PROPERTIES.GlassPieces.Name] = '';
PARTS.PartsOrQuestionsPayload[PAYLOAD_PROPERTIES.Zip.Name] = '';
PARTS.PartsOrQuestionsPayload[PAYLOAD_PROPERTIES.VIN.Name] = '';
// #endregion
// #region PARTs Supporting Items Default Payload Setup
PARTS.SupportingItemsPayload[PAYLOAD_PROPERTIES.CarId.Name] = '';
PARTS.SupportingItemsPayload[PAYLOAD_PROPERTIES.DamageType.Name] = '';
PARTS.SupportingItemsPayload[PAYLOAD_PROPERTIES.ParentAcctNumber.Name] = '';
PARTS.SupportingItemsPayload[PAYLOAD_PROPERTIES.Parts.Name] = '';
PARTS.SupportingItemsPayload[PAYLOAD_PROPERTIES.NumberOfChips.Name] = '';
// #endregion
// #region PARTS Deep Freeze
Object.freeze(PARTS.ItemFromCapabilityAnswerPayload);
Object.freeze(PARTS.PartsPayload);
Object.freeze(PARTS.PartsOrQuestionsPayload);
Object.freeze(PARTS.SupportingItemsPayload);
Object.freeze(PARTS);
// #endregion
/**
* @member VEHICLE
* @memberof DefaultPayloads
* @endpoint
* @description
* This default payload object is used to specify the default payloads for the Vehicle Service.
* @see {@link https://digitalapi.dev.safelite.io/vehicle/swagger/index.html}
* @property {object} VIN - A subcategory of the Vehicle API that provides VIN related information.
* @property {object} VIN.ByAddressLookupPayload
* This default payload object provides payload properties for a call to the **lookup-vin-by-address** endpoint.
* @property {object} VIN.ByPlateLookupPayload
* This default payload object provides payload properties for a call to the **lookup-vin-by-plate** endpoint.
* @property {object} VIN.ByLookupPayload
* This default payload object provides payload properties for a call to the **lookup** endpoint.
* @static
* @readonly
*/
const VEHICLE = {
VIN: {
ByAddressLookupPayload: {},
ByPlateLookupPayload: {},
ByLookupPayload: {}
}
};
// #region VEHICLE VIN By Address Lookup Default Payload Setup
VIN.ByAddressLookupPayload[PAYLOAD_PROPERTIES.LicenseLastName.Name] = '';
VIN.ByAddressLookupPayload[PAYLOAD_PROPERTIES.LicenseStreetAddr.Name] = '';
VIN.ByAddressLookupPayload[PAYLOAD_PROPERTIES.LicenseZip.Name] = '';
VIN.ByAddressLookupPayload[PAYLOAD_PROPERTIES.LicenseState.Name] = '';
// #endregion
// #region VEHICLE VIN By Plate Lookup Default Payload Setup
VIN.ByPlateLookupPayload[PAYLOAD_PROPERTIES.LicensePlate.Name] = '';
VIN.ByPlateLookupPayload[PAYLOAD_PROPERTIES.LicenseState.Name] = '';
// #endregion
// #region VEHICLE VIN By Lookup Default Payload Setup
VIN.ByLookupPayload[PAYLOAD_PROPERTIES.VIN.Name] = '';
// #endregion
// #region VEHICLE Deep Freeze
Object.freeze(VEHICLE.VIN.ByAddressLookupPayload);
Object.freeze(VEHICLE.VIN.ByPlateLookupPayload);
Object.freeze(VEHICLE.VIN.ByLookupPayload);
Object.freeze(VEHICLE.VIN);
Object.freeze(VEHICLE);
// #endregion
/**
* @module DefaultPayloads
* @endpoint constant
* @type {DefaultPayloads}
* @author T-Wrecks Team
* @copyright Safelite
* @description Constants that are utilized by Endpoint system to provide default payloads.
* @remarks This defines properties for payloads.
* @property {DefaultPayloads.ANALYTICS} ANALYTICS - The Analytics API Category.
* @property {DefaultPayloads.COVERAGE} COVERAGE - The Coverage API Category.
* @property {DefaultPayloads.EXPERIMENTS} EXPERIMENTS - The Experiments API Category.
* @property {DefaultPayloads.PARTS} PARTS - The Parts API Category.
* @property {DefaultPayloads.VEHICLE} VEHICLE - The Vehicle API Category.
* @static
* @readonly
* @default
*/
const DefaultPayloads = {
ANALYTICS,
COVERAGE,
EXPERIMENTS,
PARTS,
VEHICLE
};
export default Object.freeze(DefaultPayloads);

View file

@ -8,8 +8,8 @@ import globalMethods from '@/global-methods';
import { experimentTriggers } from '@/constants/experiments';
import applicationConfig from '@/constants/application-config';
import { issPageValues } from '@/router/router-constants/issPage-values';
import { damageLocationsSelected } from '@/constants/damage-locations-selected';
import { coverageStatuses } from '@/constants/coverage-statuses';
import damageLocationsSelected from '@/constants/damage-locations-selected';
import coverageStatuses from '@/constants/coverage-statuses';
const storeId = 'main';

View file

@ -2,7 +2,7 @@ import { useMainStore } from '@/store/index.js';
import { setActivePinia, createPinia } from 'pinia';
import globalMethods from '@/global-methods.js';
import { getRandomString, getRandomGuid, getRandomInt, getRandomBoolean } from '@/helpers/data-generation.js';
import { coverageStatuses } from '@/constants/coverage-statuses.js';
import coverageStatuses from '@/constants/coverage-statuses.js';
describe('Store', () => {
let store;