Skip to content

Commit

Permalink
feat: add package type packet (#204)
Browse files Browse the repository at this point in the history
INT-358
  • Loading branch information
Mark-Ernst authored Feb 27, 2024
1 parent 004458f commit c545873
Show file tree
Hide file tree
Showing 12 changed files with 44 additions and 8 deletions.
1 change: 1 addition & 0 deletions src/config/defaultStrings.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export const getDefaultStrings = () => ({

[STRINGS.PACKAGE_TYPE_DIGITAL_STAMP]: 'Digitale postzegel',
[STRINGS.PACKAGE_TYPE_MAILBOX]: 'Brievenbuspakje',
[STRINGS.PACKAGE_TYPE_PACKAGE_SMALL]: 'Klein pakket',

[STRINGS.ERROR_3212]: '{} is verplicht.',
[STRINGS.ERROR_3224]: '',
Expand Down
9 changes: 9 additions & 0 deletions src/data/carrierFeatures.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ export const FEATURES_PACKAGE_TYPE_MAILBOX = [
CONFIG.ALLOW_PACKAGE_TYPE_MAILBOX,
];

/**
* Permissions to enable package type packet.
*
* @type {string[]}
*/
export const FEATURES_PACKAGE_TYPE_PACKAGE_SMALL = [
CONFIG.ALLOW_PACKAGE_TYPE_PACKAGE_SMALL,
];

/**
* Permissions to enable pickup.
*
Expand Down
14 changes: 10 additions & 4 deletions src/data/carriers/abstractCarrierConfiguration.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { ALLOW_PACKAGE_TYPE_DIGITAL_STAMP, ALLOW_PACKAGE_TYPE_MAILBOX } from '@/data/keys/configKeys';
import {
ALLOW_PACKAGE_TYPE_DIGITAL_STAMP,
ALLOW_PACKAGE_TYPE_MAILBOX,
ALLOW_PACKAGE_TYPE_PACKAGE_SMALL,
} from '@/data/keys/configKeys';
import {BELGIUM, NETHERLANDS} from '@myparcel/js-sdk/dist/constant/countries-iso2';
import { CITY, POSTAL_CODE, STREET } from '../keys/addressKeys';
import { PACKAGE_TYPE_DIGITAL_STAMP, PACKAGE_TYPE_MAILBOX, PACKAGE_TYPE_PACKAGE } from '@/data/keys/settingsConsts';
import { NETHERLANDS } from '@myparcel/js-sdk/dist/constant/countries-iso2';
import { PACKAGE_TYPE_DIGITAL_STAMP, PACKAGE_TYPE_MAILBOX, PACKAGE_TYPE_PACKAGE, PACKAGE_TYPE_PACKAGE_SMALL } from '@/data/keys/settingsConsts';
import { flatten } from 'lodash-es';
import { validatePlatform } from '@/delivery-options/config/validatePlatform';

Expand Down Expand Up @@ -65,8 +69,10 @@ export class AbstractCarrierConfiguration {
switch (packageTypeName) {
case PACKAGE_TYPE_PACKAGE:
return true;
case PACKAGE_TYPE_PACKAGE_SMALL:
return ![NETHERLANDS, BELGIUM].includes(country) && this.hasFeature(ALLOW_PACKAGE_TYPE_PACKAGE_SMALL);
case PACKAGE_TYPE_MAILBOX:
return country === NETHERLANDS && this.hasFeature(ALLOW_PACKAGE_TYPE_MAILBOX);
return this.hasFeature(ALLOW_PACKAGE_TYPE_MAILBOX);
case PACKAGE_TYPE_DIGITAL_STAMP:
return country === NETHERLANDS && this.hasFeature(ALLOW_PACKAGE_TYPE_DIGITAL_STAMP);
default:
Expand Down
1 change: 1 addition & 0 deletions src/data/carriers/postNlCarrierConfiguration.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export class PostNlCarrierConfiguration extends AbstractCarrierConfiguration {
FEATURES.FEATURES_ONLY_RECIPIENT,
FEATURES.FEATURES_PACKAGE_TYPE_DIGITAL_STAMP,
FEATURES.FEATURES_PACKAGE_TYPE_MAILBOX,
FEATURES.FEATURES_PACKAGE_TYPE_PACKAGE_SMALL,
FEATURES.FEATURES_MONDAY_DELIVERY,
FEATURES.FEATURES_PICKUP,
FEATURES.FEATURES_SIGNATURE,
Expand Down
2 changes: 2 additions & 0 deletions src/data/keys/configKeys.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ export const PRICE_STANDARD_DELIVERY = 'priceStandardDelivery';
*/
export const ALLOW_PACKAGE_TYPE_DIGITAL_STAMP = 'allowPackageTypeDigitalStamp';
export const ALLOW_PACKAGE_TYPE_MAILBOX = 'allowPackageTypeMailbox';
export const ALLOW_PACKAGE_TYPE_PACKAGE_SMALL = 'allowPackageTypePackageSmall';
export const PRICE_PACKAGE_TYPE_DIGITAL_STAMP = 'pricePackageTypeDigitalStamp';
export const PRICE_PACKAGE_TYPE_MAILBOX = 'pricePackageTypeMailbox';
export const PRICE_PACKAGE_TYPE_PACKAGE_SMALL = 'pricePackageTypePackageSmall';

/*
* For use with Monday delivery.
Expand Down
2 changes: 2 additions & 0 deletions src/data/keys/packageTypeConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ import * as STRINGS from '@/data/keys/stringsKeys';
export const packageTypeLabelMap = {
[CONSTS.PACKAGE_TYPE_MAILBOX]: STRINGS.PACKAGE_TYPE_MAILBOX,
[CONSTS.PACKAGE_TYPE_DIGITAL_STAMP]: STRINGS.PACKAGE_TYPE_DIGITAL_STAMP,
[CONSTS.PACKAGE_TYPE_PACKAGE_SMALL]: STRINGS.PACKAGE_TYPE_PACKAGE_SMALL,
};

export const packageTypePriceMap = {
[CONSTS.PACKAGE_TYPE_PACKAGE]: CONFIG.PRICE_STANDARD_DELIVERY,
[CONSTS.PACKAGE_TYPE_PACKAGE_SMALL]: CONFIG.PRICE_PACKAGE_TYPE_PACKAGE_SMALL,
[CONSTS.PACKAGE_TYPE_MAILBOX]: CONFIG.PRICE_PACKAGE_TYPE_MAILBOX,
[CONSTS.PACKAGE_TYPE_DIGITAL_STAMP]: CONFIG.PRICE_PACKAGE_TYPE_DIGITAL_STAMP,
};
5 changes: 5 additions & 0 deletions src/data/keys/settingsConsts.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import * as PLATFORMS from '@/data/keys/platformKeys';
export const DEFAULT_PLATFORM = PLATFORMS.MYPARCEL;

export const PACKAGE_TYPE_PACKAGE = 'package';
export const PACKAGE_TYPE_PACKAGE_SMALL = 'package_small';
export const PACKAGE_TYPE_DIGITAL_STAMP = 'digital_stamp';
export const PACKAGE_TYPE_MAILBOX = 'mailbox';

Expand Down Expand Up @@ -44,4 +45,8 @@ export const PACKAGE_TYPE_OPTIONS = [
text: 'package_types.digital_stamp',
value: PACKAGE_TYPE_DIGITAL_STAMP,
},
{
text: 'package_types.package_small',
value: PACKAGE_TYPE_PACKAGE_SMALL,
},
];
1 change: 1 addition & 0 deletions src/data/keys/stringsKeys.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export const PICKUP_LOCATIONS_MAP_BUTTON = 'pickupLocationsMapButton';

export const PACKAGE_TYPE_DIGITAL_STAMP = 'packageTypeDigitalStamp';
export const PACKAGE_TYPE_MAILBOX = 'packageTypeMailbox';
export const PACKAGE_TYPE_PACKAGE_SMALL = 'packageTypePackageSmall';

export const ERROR_3212 = 'error3212';
export const ERROR_3224 = 'error3224';
Expand Down
1 change: 1 addition & 0 deletions src/delivery-options/data/delivery/fetchDeliveryOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export function fetchDeliveryOptions(carrier = configBus.currentCarrier, platfor
.hasFeature([
CONFIG.ALLOW_PACKAGE_TYPE_MAILBOX,
CONFIG.ALLOW_PACKAGE_TYPE_DIGITAL_STAMP,
CONFIG.ALLOW_PACKAGE_TYPE_PACKAGE_SMALL,
]);

return fetchFromEndpoint(
Expand Down
4 changes: 2 additions & 2 deletions src/delivery-options/data/pickup/getPickupLocations.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as STRINGS from '@/data/keys/stringsKeys';
import { PICKUP, formConfigPickup } from '@/config/formConfig';
import { PACKAGE_TYPE } from '@/data/keys/configKeys';
import { PACKAGE_TYPE_PACKAGE } from '@/data/keys/settingsConsts';
import { PACKAGE_TYPE_PACKAGE, PACKAGE_TYPE_PACKAGE_SMALL } from '@/data/keys/settingsConsts';
import { configBus } from '../../config/configBus';
import { createPickupOptions } from '@/delivery-options/data/pickup/createPickupOptions';
import { getPriceLabelFromFormConfig } from '@/delivery-options/data/prices/getPriceLabelFromFormConfig';
Expand All @@ -12,7 +12,7 @@ import { getPriceLabelFromFormConfig } from '@/delivery-options/data/prices/getP
* @returns {Object|undefined}
*/
export function getPickupLocations() {
if (!configBus.carrierDataWithPickupLocations.length || configBus.get(PACKAGE_TYPE) !== PACKAGE_TYPE_PACKAGE) {
if (!configBus.carrierDataWithPickupLocations.length || ![PACKAGE_TYPE_PACKAGE, PACKAGE_TYPE_PACKAGE_SMALL].includes(configBus.get(PACKAGE_TYPE))) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,9 @@ Object {
Array [
"allowPackageTypeMailbox",
],
Array [
"allowPackageTypePackageSmall",
],
Array [
"allowMondayDelivery",
"saturdayCutoffTime",
Expand Down Expand Up @@ -589,6 +592,9 @@ Object {
Array [
"allowPackageTypeMailbox",
],
Array [
"allowPackageTypePackageSmall",
],
Array [
"allowMondayDelivery",
"saturdayCutoffTime",
Expand Down
6 changes: 4 additions & 2 deletions tests/unit/delivery-options/carrierConfiguration.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
FEATURES_PICKUP,
FEATURES_SATURDAY_DELIVERY,
} from '@/data/carrierFeatures';
import { PACKAGE_TYPE_DIGITAL_STAMP, PACKAGE_TYPE_MAILBOX } from '@/data/keys/settingsConsts';
import { PACKAGE_TYPE_DIGITAL_STAMP, PACKAGE_TYPE_MAILBOX, PACKAGE_TYPE_PACKAGE_SMALL } from '@/data/keys/settingsConsts';
import { AbstractCarrierConfiguration } from '@/data/carriers/abstractCarrierConfiguration';
import { MYPARCEL } from '@/data/keys/platformKeys';

Expand Down Expand Up @@ -59,7 +59,9 @@ describe('CarrierConfiguration', () => {
it('(dis)allows package type', () => {
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_DIGITAL_STAMP, 'NL')).toBe(false);
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_MAILBOX, 'NL')).toBe(true);
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_MAILBOX, 'BE')).toBe(false);
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_MAILBOX, 'BE')).toBe(true);
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_PACKAGE_SMALL, 'NL')).toBe(false);
expect(config.allowsPackageTypeIn(PACKAGE_TYPE_PACKAGE_SMALL, 'BE')).toBe(false);
expect(config.allowsPackageTypeIn('NonExistentType', 'NL')).toBe(false);
});

Expand Down

0 comments on commit c545873

Please sign in to comment.