• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ArrowSphere / nodejs-api-client / #8427

29 Apr 2025 09:49AM UTC coverage: 95.172% (-0.1%) from 95.302%
#8427

push

pehupehu
chore(package): version 3.192.0

1353 of 1484 branches covered (91.17%)

Branch coverage included in aggregate %.

7006 of 7299 relevant lines covered (95.99%)

7.63 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.24
/src/orders/ordersClient.ts
1
import { AbstractRestfulClient, Parameters } from '../abstractRestfulClient';
1✔
2
import { GetResult } from '../getResult';
1✔
3
import { DataListOrders } from './entities/dataListOrders';
1✔
4
import { ReferenceLink } from './entities/referenceLink';
1✔
5
import { UpdateOrderResult } from './entities/orders/updateOrderResult';
1✔
6
import {
1✔
7
  AttachmentOrder,
8
  AttachmentsListOrder,
9
} from './entities/orders/attachment';
10

11
export enum CreateOrderInputFields {
1✔
12
  COLUMN_CUSTOMER = 'customer',
1✔
13
  COLUMN_REFERENCE = 'reference',
1✔
14
  COLUMN_PO_NUMBER = 'ponumber',
1✔
15
  COLUMN_END_CUSTOMER_PO_NUMBER = 'endCustomerPONumber',
1✔
16
  COLUMN_PRODUCTS = 'products',
1✔
17
  COLUMN_ARROW_SPHERE_PRICE_BAND_SKU = 'arrowSpherePriceBandSku',
1✔
18
  COLUMN_SKU = 'sku',
1✔
19
  COLUMN_QUANTITY = 'quantity',
1✔
20
  COLUMN_SUBSCRIPTION = 'subscription',
1✔
21
  COLUMN_PARENT_LICENSE_ID = 'parentLicenseId',
1✔
22
  COLUMN_PARENT_SKU = 'parentSku',
1✔
23
  COLUMN_PERIODICITY = 'periodicity',
1✔
24
  COLUMN_TERM = 'term',
1✔
25
  COLUMN_DISCOUNT = 'discount',
1✔
26
  COLUMN_UPLIFT = 'uplift',
1✔
27
  COLUMN_AUTO_RENEW = 'autoRenew',
1✔
28
  COLUMN_EFFECTIVE_START_DATE = 'effectiveStartDate',
1✔
29
  COLUMN_EFFECTIVE_END_DATE = 'effectiveEndDate',
1✔
30
  COLUMN_VENDOR_REFERENCE_ID = 'vendorReferenceId',
1✔
31
  COLUMN_PARENT_VENDOR_REFERENCE_ID = 'parentVendorReferenceId',
1✔
32
  COLUMN_FRIENDLY_NAME = 'friendlyName',
1✔
33
  COLUMN_COMMENT1 = 'comment1',
1✔
34
  COLUMN_COMMENT2 = 'comment2',
1✔
35
  COLUMN_SCENARIO = 'scenario',
1✔
36
  COLUMN_SCHEDULE_DATE = 'scheduledDate',
1✔
37
  COLUMN_PRICE = 'price',
1✔
38
  COLUMN_PRICE_VENDOR = 'vendor',
1✔
39
  COLUMN_PRICE_BUY = 'buy',
1✔
40
  COLUMN_PRICE_LIST = 'list',
1✔
41
  COLUMN_PRICE_RESELLER = 'reseller',
1✔
42
  COLUMN_PRICE_END_CUSTOMER = 'endCustomer',
1✔
43
  COLUMN_PRICE_CURRENCY = 'currency',
1✔
44
  COLUMN_PRICE_UNIT = 'unitPrice',
1✔
45
  COLUMN_PRICE_EXCHANGE_RATE = 'exchangeRate',
1✔
46
  COLUMN_EXTRA_INFORMATION = 'extraInformation',
1✔
47
  COLUMN_COTERMINOSITY_DATE = 'coterminosityDate',
1✔
48
  COLUMN_COTERMINOSITY_SUBSCRIPTION_REF = 'coterminositySubscriptionRef',
1✔
49
  COLUMN_PROMOTION_ID = 'promotionId',
1✔
50
  COLUMN_ORGANIZATION_UNIT_REF = 'organizationUnitRef',
1✔
51
  COLUMN_EAVS = 'eavs',
1✔
52
}
53

54
export enum scenarioType {
1✔
55
  INJECTION = 'injection',
1✔
56
  RECONCILIATION = 'reconciliation',
1✔
57
  PROVISION = 'provision',
1✔
58
}
59

60
export enum StaffTypeEnum {
1✔
61
  ICST = 'icst',
1✔
62
  ISR = 'isr',
1✔
63
  FCST = 'fcst',
1✔
64
  FSR = 'fsr',
1✔
65
  SOR = 'sor',
1✔
66
}
67

68
export declare type OrderProgramsType = {
69
  [key: string]: {
70
    [name: string]: string;
71
  };
72
};
73

74
export type CreateOrderInputType = {
75
  [CreateOrderInputFields.COLUMN_CUSTOMER]: {
76
    [CreateOrderInputFields.COLUMN_REFERENCE]: string;
77
    [CreateOrderInputFields.COLUMN_PO_NUMBER]?: string;
78
    [CreateOrderInputFields.COLUMN_END_CUSTOMER_PO_NUMBER]?: string;
79
  };
80
  [CreateOrderInputFields.COLUMN_SCENARIO]?: scenarioType;
81
  [CreateOrderInputFields.COLUMN_SCHEDULE_DATE]?: string;
82
  [CreateOrderInputFields.COLUMN_PRODUCTS]: Array<CreateOrderProductType>;
83
  [CreateOrderInputFields.COLUMN_EXTRA_INFORMATION]?: {
84
    programs: OrderProgramsType;
85
  };
86
  [CreateOrderInputFields.COLUMN_ORGANIZATION_UNIT_REF]?: string;
87
};
88

89
export type CreateOrderProductType = {
90
  [CreateOrderInputFields.COLUMN_ARROW_SPHERE_PRICE_BAND_SKU]?: string;
91
  [CreateOrderInputFields.COLUMN_SKU]?: string;
92
  [CreateOrderInputFields.COLUMN_QUANTITY]: number;
93
  [CreateOrderInputFields.COLUMN_SUBSCRIPTION]?: {
94
    [CreateOrderInputFields.COLUMN_REFERENCE]: string;
95
  };
96
  [CreateOrderInputFields.COLUMN_PARENT_LICENSE_ID]?: string;
97
  [CreateOrderInputFields.COLUMN_PARENT_SKU]?: string;
98
  [CreateOrderInputFields.COLUMN_PERIODICITY]?: string | number;
99
  [CreateOrderInputFields.COLUMN_TERM]?: string | number;
100
  [CreateOrderInputFields.COLUMN_DISCOUNT]?: number;
101
  [CreateOrderInputFields.COLUMN_UPLIFT]?: number;
102
  [CreateOrderInputFields.COLUMN_AUTO_RENEW]?: boolean;
103
  [CreateOrderInputFields.COLUMN_EFFECTIVE_START_DATE]?: string;
104
  [CreateOrderInputFields.COLUMN_EFFECTIVE_END_DATE]?: string;
105
  [CreateOrderInputFields.COLUMN_VENDOR_REFERENCE_ID]?: string;
106
  [CreateOrderInputFields.COLUMN_PARENT_VENDOR_REFERENCE_ID]?: string;
107
  [CreateOrderInputFields.COLUMN_FRIENDLY_NAME]?: string;
108
  [CreateOrderInputFields.COLUMN_COMMENT1]?: string;
109
  [CreateOrderInputFields.COLUMN_COMMENT2]?: string;
110
  [CreateOrderInputFields.COLUMN_COTERMINOSITY_DATE]?: string;
111
  [CreateOrderInputFields.COLUMN_COTERMINOSITY_SUBSCRIPTION_REF]?: string;
112
  [CreateOrderInputFields.COLUMN_PROMOTION_ID]?: string;
113
  [CreateOrderInputFields.COLUMN_PRICE]?: {
114
    [CreateOrderInputFields.COLUMN_PRICE_VENDOR]?: {
115
      [CreateOrderInputFields.COLUMN_PRICE_CURRENCY]?: string;
116
      [CreateOrderInputFields.COLUMN_PRICE_EXCHANGE_RATE]?: number;
117
    };
118
    [CreateOrderInputFields.COLUMN_PRICE_BUY]?: {
119
      [CreateOrderInputFields.COLUMN_PRICE_CURRENCY]?: string;
120
      [CreateOrderInputFields.COLUMN_PRICE_UNIT]?: number;
121
      [CreateOrderInputFields.COLUMN_PRICE_EXCHANGE_RATE]?: number;
122
    };
123
    [CreateOrderInputFields.COLUMN_PRICE_LIST]?: {
124
      [CreateOrderInputFields.COLUMN_PRICE_CURRENCY]?: string;
125
      [CreateOrderInputFields.COLUMN_PRICE_UNIT]?: number;
126
      [CreateOrderInputFields.COLUMN_PRICE_EXCHANGE_RATE]?: number;
127
    };
128
    [CreateOrderInputFields.COLUMN_PRICE_RESELLER]?: {
129
      [CreateOrderInputFields.COLUMN_PRICE_CURRENCY]?: string;
130
      [CreateOrderInputFields.COLUMN_PRICE_UNIT]?: number;
131
      [CreateOrderInputFields.COLUMN_PRICE_EXCHANGE_RATE]?: number;
132
    };
133
    [CreateOrderInputFields.COLUMN_PRICE_END_CUSTOMER]?: {
134
      [CreateOrderInputFields.COLUMN_PRICE_CURRENCY]?: string;
135
      [CreateOrderInputFields.COLUMN_PRICE_UNIT]?: number;
136
      [CreateOrderInputFields.COLUMN_PRICE_EXCHANGE_RATE]?: number;
137
    };
138
  };
139
  [CreateOrderInputFields.COLUMN_EAVS]?: Record<string, string>;
140
};
141

142
export enum UpdateOrderInputFields {
1✔
143
  COLUMN_PO_NUMBER = 'PO_number',
1✔
144
  COLUMN_END_CUSTOMER_PO_NUMBER = 'end_customer_PO_number',
1✔
145
}
146

147
export type UpdateOrderInputType = {
148
  [UpdateOrderInputFields.COLUMN_PO_NUMBER]?: string;
149
  [UpdateOrderInputFields.COLUMN_END_CUSTOMER_PO_NUMBER]?: string;
150
};
151

152
export enum UpdateContributorItemOrderInputFields {
1✔
153
  COLUMN_TYPE = 'type',
1✔
154
  COLUMN_STAFF_ID = 'staffId',
1✔
155
}
156

157
export type UpdateContributorItemOrderInputType = {
158
  [UpdateContributorItemOrderInputFields.COLUMN_TYPE]: StaffTypeEnum;
159
  [UpdateContributorItemOrderInputFields.COLUMN_STAFF_ID]: number | null;
160
};
161

162
export enum UpdateContributorOrderInputFields {
1✔
163
  COLUMN_CONTRIBUTOR = 'contributor',
1✔
164
}
165

166
export type UpdateContributorOrderInputType = {
167
  [UpdateContributorOrderInputFields.COLUMN_CONTRIBUTOR]: UpdateContributorItemOrderInputType[];
168
};
169

170
export enum UpdateAdditionalInformationItemOrderInputFields {
1✔
171
  COLUMN_NAME = 'name',
1✔
172
  COLUMN_VALUE = 'value',
1✔
173
}
174

175
export type UpdateAdditionalInformationItemOrderInputType = {
176
  [UpdateAdditionalInformationItemOrderInputFields.COLUMN_NAME]: string;
177
  [UpdateAdditionalInformationItemOrderInputFields.COLUMN_VALUE]: string;
178
};
179

180
export enum UpdateAdditionalInformationOrderInputFields {
1✔
181
  COLUMN_DATA = 'data',
1✔
182
}
183

184
export type UpdateAdditionalInformationOrderInputType = {
185
  [UpdateAdditionalInformationOrderInputFields.COLUMN_DATA]: UpdateAdditionalInformationItemOrderInputType[];
186
};
187

188
export enum UploadAttachmentOrderInputFields {
1✔
189
  COLUMN_NAME = 'name',
1✔
190
  COLUMN_FILE_ENCODED = 'fileEncoded',
1✔
191
}
192

193
export type UploadAttachmentOrderInputType = {
194
  [UploadAttachmentOrderInputFields.COLUMN_NAME]: string;
195
  [UploadAttachmentOrderInputFields.COLUMN_FILE_ENCODED]: string;
196
};
197

198
export class OrdersClient extends AbstractRestfulClient {
1✔
199
  /**
200
   * The base path of the API
201
   */
202
  protected basePath = '/orders';
14✔
203

204
  public async create(
205
    postData: CreateOrderInputType,
206
    parameters: Parameters = {},
3✔
207
  ): Promise<GetResult<ReferenceLink>> {
208
    return new GetResult(ReferenceLink, await this.post(postData, parameters));
3✔
209
  }
210

211
  public async getListOrders(
212
    perPage = 25,
2✔
213
    page = 1,
2✔
214
    parameters: Parameters = {},
2✔
215
  ): Promise<GetResult<DataListOrders>> {
216
    this.setPerPage(perPage);
4✔
217
    this.setPage(page);
4✔
218

219
    return new GetResult(DataListOrders, await this.get(parameters));
4✔
220
  }
221

222
  public async getOrder(
223
    orderReference: string,
224
    parameters: Parameters = {},
2✔
225
  ): Promise<GetResult<DataListOrders>> {
226
    this.path = `/${orderReference}`;
2✔
227

228
    return new GetResult(DataListOrders, await this.get(parameters));
2✔
229
  }
230

231
  public async updateOrder(
232
    orderReference: string,
233
    payload: UpdateOrderInputType,
234
    parameters: Parameters = {},
1✔
235
  ): Promise<GetResult<UpdateOrderResult>> {
236
    this.path = `/${orderReference}`;
1✔
237

238
    return new GetResult(
1✔
239
      UpdateOrderResult,
240
      await this.patch(payload, parameters),
241
    );
242
  }
243

244
  public async archiveOrder(
245
    orderReference: string,
246
    parameters: Parameters = {},
1✔
247
  ): Promise<void> {
248
    this.path = `/${orderReference}/archive`;
1✔
249

250
    await this.patch(undefined, parameters);
1✔
251
  }
252

253
  public async cancelOrder(
254
    orderReference: string,
255
    parameters: Parameters = {},
1✔
256
  ): Promise<void> {
257
    this.path = `/${orderReference}/cancel`;
1✔
258

259
    await this.patch(undefined, parameters);
1✔
260
  }
261

262
  public async rejectGradedOrder(
263
    orderReference: string,
264
    parameters: Parameters = {},
1✔
265
  ): Promise<void> {
266
    this.path = `/${orderReference}/rejectGraded`;
1✔
267

268
    await this.patch(undefined, parameters);
1✔
269
  }
270

271
  public async resubmitOrder(
272
    orderReference: string,
273
    parameters: Parameters = {},
1✔
274
  ): Promise<void> {
275
    this.path = `/${orderReference}/resubmit`;
1✔
276

277
    await this.patch(undefined, parameters);
1✔
278
  }
279

280
  public async validateOrder(
281
    orderReference: string,
282
    parameters: Parameters = {},
1✔
283
  ): Promise<void> {
284
    this.path = `/${orderReference}/validate`;
1✔
285

286
    await this.patch(undefined, parameters);
1✔
287
  }
288

289
  public async updateStaffContributorsOrder(
290
    orderReference: string,
291
    payload: UpdateContributorOrderInputType,
292
    parameters: Parameters = {},
1✔
293
  ): Promise<void> {
294
    this.path = `/${orderReference}/contributor`;
1✔
295

296
    await this.patch(payload, parameters);
1✔
297
  }
298

299
  public async updateAdditionalInformationOrder(
300
    orderReference: string,
301
    payload: UpdateAdditionalInformationOrderInputType,
302
    parameters: Parameters = {},
1✔
303
  ): Promise<void> {
304
    this.path = `/${orderReference}/additionalInformation`;
1✔
305

306
    await this.patch(payload, parameters);
1✔
307
  }
308

309
  public async getAttachmentsOrder(
310
    orderReference: string,
311
    perPage?: number,
312
    page?: number,
313
    parameters: Parameters = {},
1✔
314
  ): Promise<GetResult<AttachmentsListOrder>> {
315
    this.path = `/${orderReference}/attachment`;
1✔
316
    if (perPage) {
1!
317
      this.setPerPage(perPage);
×
318
    }
319
    if (page) {
1!
320
      this.setPage(page);
×
321
    }
322

323
    return new GetResult(AttachmentsListOrder, await this.get(parameters));
1✔
324
  }
325

326
  public async deleteAttachmentOrder(
327
    orderReference: string,
328
    name: string,
329
    parameters: Parameters = {},
1✔
330
  ): Promise<void> {
331
    this.path = `/${orderReference}/attachment/${name}`;
1✔
332

333
    await this.delete(parameters);
1✔
334
  }
335

336
  public async uploadAttachmentOrder(
337
    orderReference: string,
338
    payload: UploadAttachmentOrderInputType,
339
    parameters: Parameters = {},
1✔
340
  ): Promise<GetResult<AttachmentOrder>> {
341
    this.path = `/${orderReference}/attachment`;
1✔
342

343
    return new GetResult(AttachmentOrder, await this.post(payload, parameters));
1✔
344
  }
345
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc