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

ArrowSphere / nodejs-api-client / #8772

03 Jul 2025 08:53AM UTC coverage: 95.265% (+0.002%) from 95.263%
#8772

push

bdjonkamla
chore(package): version 3.204.0

1391 of 1523 branches covered (91.33%)

Branch coverage included in aggregate %.

7159 of 7452 relevant lines covered (96.07%)

7.63 hits per line

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

97.3
/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 type InjectionScenarioOrderInputType = {
199
  [UploadAttachmentOrderInputFields.COLUMN_FILE_ENCODED]: string;
200
};
201

202
export class OrdersClient extends AbstractRestfulClient {
1✔
203
  /**
204
   * The base path of the API
205
   */
206
  protected basePath = '/orders';
15✔
207

208
  public async create(
209
    postData: CreateOrderInputType,
210
    parameters: Parameters = {},
3✔
211
  ): Promise<GetResult<ReferenceLink>> {
212
    return new GetResult(ReferenceLink, await this.post(postData, parameters));
3✔
213
  }
214

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

223
    return new GetResult(DataListOrders, await this.get(parameters));
4✔
224
  }
225

226
  public async getOrder(
227
    orderReference: string,
228
    parameters: Parameters = {},
2✔
229
  ): Promise<GetResult<DataListOrders>> {
230
    this.path = `/${orderReference}`;
2✔
231

232
    return new GetResult(DataListOrders, await this.get(parameters));
2✔
233
  }
234

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

242
    return new GetResult(
1✔
243
      UpdateOrderResult,
244
      await this.patch(payload, parameters),
245
    );
246
  }
247

248
  public async archiveOrder(
249
    orderReference: string,
250
    parameters: Parameters = {},
1✔
251
  ): Promise<void> {
252
    this.path = `/${orderReference}/archive`;
1✔
253

254
    await this.patch(undefined, parameters);
1✔
255
  }
256

257
  public async cancelOrder(
258
    orderReference: string,
259
    parameters: Parameters = {},
1✔
260
  ): Promise<void> {
261
    this.path = `/${orderReference}/cancel`;
1✔
262

263
    await this.patch(undefined, parameters);
1✔
264
  }
265

266
  public async rejectGradedOrder(
267
    orderReference: string,
268
    parameters: Parameters = {},
1✔
269
  ): Promise<void> {
270
    this.path = `/${orderReference}/rejectGraded`;
1✔
271

272
    await this.patch(undefined, parameters);
1✔
273
  }
274

275
  public async resubmitOrder(
276
    orderReference: string,
277
    parameters: Parameters = {},
1✔
278
  ): Promise<void> {
279
    this.path = `/${orderReference}/resubmit`;
1✔
280

281
    await this.patch(undefined, parameters);
1✔
282
  }
283

284
  public async validateOrder(
285
    orderReference: string,
286
    parameters: Parameters = {},
1✔
287
  ): Promise<void> {
288
    this.path = `/${orderReference}/validate`;
1✔
289

290
    await this.patch(undefined, parameters);
1✔
291
  }
292

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

300
    await this.patch(payload, parameters);
1✔
301
  }
302

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

310
    await this.patch(payload, parameters);
1✔
311
  }
312

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

327
    return new GetResult(AttachmentsListOrder, await this.get(parameters));
1✔
328
  }
329

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

337
    await this.delete(parameters);
1✔
338
  }
339

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

347
    return new GetResult(AttachmentOrder, await this.post(payload, parameters));
1✔
348
  }
349

350
  public async injectionScenarioOrder(
351
    payload: InjectionScenarioOrderInputType,
352
    parameters: Parameters = {},
1✔
353
  ): Promise<GetResult<AttachmentOrder>> {
354
    this.path = `/injectionScenario`;
1✔
355

356
    return new GetResult(AttachmentOrder, await this.post(payload, parameters));
1✔
357
  }
358
}
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