PageSourceSearch

https://www.americaneagle.ae/scripts/order/api.js

js americaneagle.ae collected 2026-10-02 13:25:43 UTC 6,699 bytes, 222 lines download raw bytes

1import { getConfigValue } from '../configs.js';
2import { performCommerceRestMutation, performCommerceRestQuery } from '../commerce.js';
3
4export async function createUrl(endpoint) {
5  const baseUrl = await getConfigValue('commerce-rest-endpoint');
6
7  const storeViewCode = await getConfigValue('commerce-store-view-code');
8
9  const url = `${baseUrl}/${storeViewCode}/V1/${endpoint}`;
10
11  return url;
12}
13
14async function searchOrdersInternal(searchCriteria) {
15  const url = await createUrl('customer-order/me');
16
17  const response = await performCommerceRestQuery(`${url}?${searchCriteria}`, true);
18
19  const {
20    data, success, message, status,
21  } = response;
22
23  if (!success) {
24    console.error('Error fetching orders', status, message);
25    return null;
26  }
27
28  return data;
29}
30
31export async function searchOrders(searchString, orderStatus = null, page = 1, pageSize = 10) {
32  let searchCriteria = `searchCriteria[pageSize]=${pageSize}&searchCriteria[currentPage]=${page}`;
33  searchCriteria += '&searchCriteria[sortOrders][0][field]=created_at&searchCriteria[sortOrders][0][direction]=DESC';
34
35  let filterGroup = 1;
36
37  if (searchString) {
38    const fields = ['increment_id', 'sku', 'name'];
39    let filterIndex = 0;
40    const searchStringEncoded = encodeURIComponent(`%${searchString}%`);
41    fields.forEach((field) => {
42      searchCriteria += `&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][field]=${field}&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][value]=${searchStringEncoded}&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][condition_type]=like`;
43      filterIndex += 1;
44    });
45    filterGroup += 1;
46  }
47
48  if (orderStatus && Array.isArray(orderStatus)) {
49    let filterIndex = 0;
50    orderStatus.forEach((status) => {
51      searchCriteria += `&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][field]=status&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][value]=${status}&searchCriteria[filter_groups][${filterGroup}][filters][${filterIndex}][condition_type]=eq`;
52      filterIndex += 1;
53    });
54  } else if (orderStatus) {
55    searchCriteria += `&searchCriteria[filter_groups][${filterGroup}][filters][0][field]=state&searchCriteria[filter_groups][${filterGroup}][filters][0][value]=${orderStatus}&searchCriteria[filter_groups][${filterGroup}][filters][0][condition_type]=eq`;
56  }
57
58  return searchOrdersInternal(searchCriteria);
59}
60
61export async function getRecentOrders(numberOfOrders = 3) {
62  let searchCriteria = `searchCriteria[pageSize]=${numberOfOrders}&searchCriteria[currentPage]=1`;
63  searchCriteria += '&searchCriteria[sortOrders][0][field]=created_at&searchCriteria[sortOrders][0][direction]=DESC';
64
65  return searchOrdersInternal(searchCriteria);
66}
67
68export async function searchOrderWithIncrementId(incrementId) {
69  let searchCriteria = 'searchCriteria[filter_groups][0][filters][0][field]=increment_id&';
70  searchCriteria += `searchCriteria[filter_groups][0][filters][0][value]=${incrementId}&`;
71  searchCriteria += 'searchCriteria[filter_groups][0][filters][0][condition_type]=eq';
72
73  return searchOrdersInternal(searchCriteria);
74}
75
76export async function getOrder(orderId) {
77  const url = await createUrl(`customer-order/me/${orderId}`);
78
79  const response = await performCommerceRestQuery(url, true);
80
81  const {
82    data, success, message, status,
83  } = response;
84
85  if (!success) {
86    console.error('Error fetching order', status, message);
87    return null;
88  }
89  return data;
90}
91
92export async function getDownloadInvoiceUrl(orderIncrementId) {
93  const url = await createUrl(`order-manager/customers/invoice/${orderIncrementId}`);
94
95  const response = await performCommerceRestQuery(url, true);
96
97  const {
98    data, success, message, status,
99  } = response;
100
101  if (!success || !data || data.code === '500') {
102    console.error('Error fetching order', status, message);
103    return null;
104  }
105  return data;
106}
107
108export async function getOrderReturnsConfig() {
109  const url = await createUrl('returnsconfig');
110
111  const response = await performCommerceRestQuery(url, true);
112
113  const {
114    data, success, message, status,
115  } = response;
116
117  if (!success) {
118    console.error('Error fetching order return config', status, message);
119    return null;
120  }
121  return data;
122}
123
124export async function getOrderReturns(orderId) {
125  const url = await createUrl(`rma/returns/${orderId}`);
126
127  const response = await performCommerceRestQuery(url, true);
128
129  const {
130    data, success, message, status,
131  } = response;
132
133  if (!success) {
134    console.error('Error fetching order returns', status, message);
135    return null;
136  }
137  return data;
138}
139
140export async function getEGiftCardList() {
141  const url = await createUrl('egiftcard/mine/associated-with-email');
142
143  try {
144    const response = await performCommerceRestQuery(url, true);
145
146    const {
147      data, success, message, status,
148    } = response;
149
150    if (!success) {
151      console.error('Error fetching e-gift card list', status, message);
152      return null;
153    }
154    return data;
155  } catch (error) {
156    return null;
157  }
158}
159
160export async function postCreateReturn(returnData) {
161  const url = await createUrl('rma/returns');
162
163  const response = await performCommerceRestMutation(url, returnData, true);
164
165  const {
166    data, success, message, status,
167  } = response;
168
169  if (!success) {
170    console.error('Error creating return request', status, message);
171    return null;
172  }
173  return data;
174}
175
176export async function getRMAsByOrderId(orderId) {
177  const url = await createUrl(`rma/returns?searchCriteria[filterGroups][0][filters][0][field]=order_id&&searchCriteria[filterGroups][0][filters][0][value]=${orderId}`);
178
179  const response = await performCommerceRestQuery(url, true);
180
181  const {
182    data, success, message, status,
183  } = response;
184
185  if (!success) {
186    console.error('Error fetching RMAs by order id', status, message);
187    return null;
188  }
189  return data;
190}
191
192export async function putReturnCancellation(returnId, returnData) {
193  const url = await createUrl(`rma/returns/${returnId}`);
194
195  const response = await performCommerceRestMutation(url, returnData, true, 'PUT');
196
197  const {
198    data, success, message, status,
199  } = response;
200
201  if (!success) {
202    console.error('Error creating return cancellation request', status, message);
203    return null;
204  }
205  return data;
206}
207
208export async function getRMAInfo(returnId) {
209  const url = await createUrl(`rma/returns/${returnId}`);
210
211  const response = await performCommerceRestQuery(url, true);
212
213  const {
214    data, success, message, status,
215  } = response;
216
217  if (!success) {
218    console.error('Error fetching RMA Info', status, message);
219    return null;
220  }
221  return data;
222}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.