Skip to content

Commit 6614159

Browse files
authored
Merge pull request #5 from companieshouse/feature/get-order-for-mid
added MID to get order
2 parents 7abb20d + 9e081d2 commit 6614159

File tree

7 files changed

+181
-42
lines changed

7 files changed

+181
-42
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
root = true
22

33
[*]
4-
indent_size = 2
4+
indent_size = 4
55
indent_style = space
66
insert_final_newline = true
77
charset = utf-8

dist/services/order/order/mapping.js

Lines changed: 26 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/services/order/order/mapping.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/services/order/order/types.d.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Order is the interface used within this SDK.
33
*/
44
export interface Order {
5-
deliveryDetails: {
5+
deliveryDetails?: {
66
addressLine1: string;
77
addressLine2: string;
88
country: string;
@@ -88,12 +88,19 @@ export interface FilingHistoryItemOptions {
8888
filingHistoryDescriptionValues: Record<string, any>;
8989
filingHistoryCost: string;
9090
}
91-
export declare type ItemOptions = CertificateItemOptions | CertifiedCopyItemOptions;
91+
export interface MissingImageDeliveryItemOptions {
92+
filingHistoryDate: string;
93+
filingHistoryDescription: string;
94+
filingHistoryId: string;
95+
filingHistoryType: string;
96+
filingHistoryDescriptionValues: Record<string, any>;
97+
}
98+
export declare type ItemOptions = CertificateItemOptions | CertifiedCopyItemOptions | MissingImageDeliveryItemOptions;
9299
/**
93100
* OrderResource is what is returned from the api.
94101
*/
95102
export interface OrderResource {
96-
delivery_details: {
103+
delivery_details?: {
97104
address_line_1: string;
98105
address_line_2: string;
99106
country: string;
@@ -179,4 +186,11 @@ export interface FilingHistoryItemOptionsResource {
179186
filing_history_description_values: Record<string, any>;
180187
filing_history_cost: string;
181188
}
182-
export declare type ItemOptionsResource = CertificateItemOptionsResource | CertifiedCopyItemOptionsResource;
189+
export interface MissingImageDeliveryItemOptionsResource {
190+
filing_history_date: string;
191+
filing_history_description: string;
192+
filing_history_id: string;
193+
filing_history_type: string;
194+
filing_history_description_values: Record<string, any>;
195+
}
196+
export declare type ItemOptionsResource = CertificateItemOptionsResource | CertifiedCopyItemOptionsResource | MissingImageDeliveryItemOptionsResource;

src/services/order/order/mapping.ts

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
import { Order, OrderResource, Item, ItemResource, ItemOptions, ItemOptionsResource, CertificateItemOptionsResource } from "./types";
1+
import {
2+
Order, OrderResource, Item, ItemResource, ItemOptions, ItemOptionsResource,
3+
CertificateItemOptionsResource, CertifiedCopyItemOptionsResource,
4+
MissingImageDeliveryItemOptionsResource
5+
} from "./types";
26

37
export default class OrderMapping {
48
public static mapOrderResourceToOrder (orderResource: OrderResource): Order {
59
const order: Order = {
610
deliveryDetails: {
7-
addressLine1: orderResource.delivery_details.address_line_1,
8-
addressLine2: orderResource.delivery_details.address_line_2,
9-
country: orderResource.delivery_details.country,
10-
forename: orderResource.delivery_details.forename,
11-
locality: orderResource.delivery_details.locality,
12-
poBox: orderResource.delivery_details.po_box,
13-
postalCode: orderResource.delivery_details.postal_code,
14-
region: orderResource.delivery_details.region,
15-
surname: orderResource.delivery_details.surname
11+
addressLine1: orderResource?.delivery_details?.address_line_1,
12+
addressLine2: orderResource?.delivery_details?.address_line_2,
13+
country: orderResource?.delivery_details?.country,
14+
forename: orderResource?.delivery_details?.forename,
15+
locality: orderResource?.delivery_details?.locality,
16+
poBox: orderResource?.delivery_details?.po_box,
17+
postalCode: orderResource?.delivery_details?.postal_code,
18+
region: orderResource?.delivery_details?.region,
19+
surname: orderResource?.delivery_details?.surname
1620
},
1721
items: orderResource.items.map((item) => {
1822
return this.mapItemResourceToItem(item)
@@ -50,7 +54,7 @@ export default class OrderMapping {
5054
itemCost: i?.item_cost,
5155
productType: i?.product_type
5256
})),
53-
itemOptions: this.mapItemOptionsResourceToItemOptions(itemResource.item_options),
57+
itemOptions: this.mapItemOptionsResourceToItemOptions(itemResource.item_options, itemResource.kind),
5458
itemUri: itemResource.item_uri,
5559
kind: itemResource.kind,
5660
links: {
@@ -69,8 +73,9 @@ export default class OrderMapping {
6973
return Object.values(input).some((value) => value !== undefined) ? input : undefined;
7074
}
7175

72-
private static mapItemOptionsResourceToItemOptions (itemResource: ItemOptionsResource): ItemOptions {
73-
if ("certificate_type" in itemResource) {
76+
private static mapItemOptionsResourceToItemOptions (itemResource: ItemOptionsResource, kind: string): ItemOptions {
77+
if (kind === "item#certificate") {
78+
itemResource = itemResource as CertificateItemOptionsResource;
7479
const directorDetails = this.removeEmptyObjects({
7580
includeBasicInformation: itemResource?.director_details?.include_basic_information
7681
});
@@ -95,7 +100,8 @@ export default class OrderMapping {
95100
forename: itemResource.forename,
96101
surname: itemResource.surname
97102
}
98-
} else {
103+
} else if (kind === "item#certified-copy") {
104+
itemResource = itemResource as CertifiedCopyItemOptionsResource;
99105
return {
100106
deliveryTimescale: itemResource.delivery_timescale,
101107
deliveryMethod: itemResource.delivery_method,
@@ -108,6 +114,15 @@ export default class OrderMapping {
108114
filingHistoryCost: f.filing_history_cost
109115
}))
110116
}
117+
} else {
118+
itemResource = itemResource as MissingImageDeliveryItemOptionsResource;
119+
return {
120+
filingHistoryDate: itemResource.filing_history_date,
121+
filingHistoryDescription: itemResource.filing_history_description,
122+
filingHistoryId: itemResource.filing_history_id,
123+
filingHistoryType: itemResource.filing_history_type,
124+
filingHistoryDescriptionValues: itemResource.filing_history_description_values
125+
}
111126
}
112127
}
113128
}

0 commit comments

Comments
 (0)