@open-tender/store 0.7.4 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/services/api.d.ts +2 -0
- package/dist/cjs/services/api.js +17 -3
- package/dist/cjs/slices/config.js +20 -17
- package/dist/cjs/types/api/menuPages.d.ts +1 -1
- package/dist/cjs/types/global.d.ts +2 -2
- package/dist/cjs/utils/order.js +0 -1
- package/dist/esm/services/api.d.ts +2 -0
- package/dist/esm/services/api.js +17 -3
- package/dist/esm/slices/config.js +20 -17
- package/dist/esm/types/api/menuPages.d.ts +1 -1
- package/dist/esm/types/global.d.ts +2 -2
- package/dist/esm/utils/order.js +0 -1
- package/package.json +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, PosSettingType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
2
2
|
interface ConfigAPI {
|
|
3
3
|
apiUrl: string;
|
|
4
|
+
terminalId?: number;
|
|
4
5
|
}
|
|
5
6
|
declare class PosAPI {
|
|
6
7
|
apiUrl: string;
|
|
8
|
+
terminalId?: number;
|
|
7
9
|
constructor(config: ConfigAPI);
|
|
8
10
|
request: <T>(endpoint: string, method?: string, data?: any) => Promise<T>;
|
|
9
11
|
post(endpoint: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
package/dist/cjs/services/api.js
CHANGED
|
@@ -36,6 +36,21 @@ var handleError = function (status, parsed) {
|
|
|
36
36
|
return parsed;
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
+
var makeHeaders = function (terminalId) {
|
|
40
|
+
var headers = undefined;
|
|
41
|
+
if (terminalId) {
|
|
42
|
+
headers = {
|
|
43
|
+
'Content-Type': 'application/json',
|
|
44
|
+
'pos-terminal-id': "".concat(terminalId)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
headers = {
|
|
49
|
+
'Content-Type': 'application/json'
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return headers;
|
|
53
|
+
};
|
|
39
54
|
var PosAPI = /** @class */ (function () {
|
|
40
55
|
function PosAPI(config) {
|
|
41
56
|
var _this = this;
|
|
@@ -53,9 +68,7 @@ var PosAPI = /** @class */ (function () {
|
|
|
53
68
|
url = "".concat(this.apiUrl).concat(endpoint);
|
|
54
69
|
return [4 /*yield*/, fetch(url, {
|
|
55
70
|
method: method,
|
|
56
|
-
headers:
|
|
57
|
-
'Content-Type': 'application/json'
|
|
58
|
-
},
|
|
71
|
+
headers: makeHeaders(this.terminalId),
|
|
59
72
|
body: data ? JSON.stringify(data) : null
|
|
60
73
|
})];
|
|
61
74
|
case 1:
|
|
@@ -85,6 +98,7 @@ var PosAPI = /** @class */ (function () {
|
|
|
85
98
|
});
|
|
86
99
|
}); };
|
|
87
100
|
this.apiUrl = config.apiUrl;
|
|
101
|
+
this.terminalId = config.terminalId;
|
|
88
102
|
}
|
|
89
103
|
PosAPI.prototype.post = function (endpoint, data) {
|
|
90
104
|
return this.request("/".concat(endpoint), 'POST', data);
|
|
@@ -36,54 +36,54 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
|
|
|
36
36
|
var apiUrl = _a.apiUrl;
|
|
37
37
|
var dispatch = _b.dispatch, getState = _b.getState, rejectWithValue = _b.rejectWithValue;
|
|
38
38
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
39
|
-
var app, api, _c, _d,
|
|
39
|
+
var terminalId, app, api, _c, _d,
|
|
40
40
|
// config,
|
|
41
|
-
devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1,
|
|
42
|
-
return tslib_1.__generator(this, function (
|
|
43
|
-
switch (
|
|
41
|
+
devicesList, _e, stores, _f, selectOptions, _g, itemTypes, _h, menuColors, store, devices, err, cashier, employee, tz, businessDate, err_1, err_2;
|
|
42
|
+
return tslib_1.__generator(this, function (_j) {
|
|
43
|
+
switch (_j.label) {
|
|
44
44
|
case 0:
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
_j.trys.push([0, 6, , 7]);
|
|
46
|
+
terminalId = getState().pos.terminalId;
|
|
47
|
+
app = terminalId ? { apiUrl: apiUrl, terminalId: terminalId } : { apiUrl: apiUrl };
|
|
47
48
|
api = new services_1.PosAPI(app);
|
|
48
49
|
return [4 /*yield*/, Promise.all([
|
|
49
50
|
// api.getConfig(),
|
|
50
51
|
api.getSettings('DEVICES'),
|
|
51
52
|
api.getSettings('STORE'),
|
|
52
53
|
api.getSettings('SELECT_OPTION'),
|
|
53
|
-
api.getSettings('ITEM_TYPE')
|
|
54
|
-
|
|
54
|
+
api.getSettings('ITEM_TYPE'),
|
|
55
|
+
api.getSettings('ITEM_COLORS')
|
|
55
56
|
])];
|
|
56
57
|
case 1:
|
|
57
|
-
_c =
|
|
58
|
-
store = stores
|
|
59
|
-
devices = devicesList
|
|
58
|
+
_c = _j.sent(), _d = _c[0], devicesList = _d === void 0 ? [] : _d, _e = _c[1], stores = _e === void 0 ? [] : _e, _f = _c[2], selectOptions = _f === void 0 ? [] : _f, _g = _c[3], itemTypes = _g === void 0 ? [] : _g, _h = _c[4], menuColors = _h === void 0 ? [] : _h;
|
|
59
|
+
store = stores[0] || null;
|
|
60
|
+
devices = devicesList[0] || null;
|
|
60
61
|
if (!store || !devices) {
|
|
61
62
|
err = errors_1.errorsApi.internalServerError;
|
|
62
63
|
return [2 /*return*/, rejectWithValue(err)];
|
|
63
64
|
}
|
|
64
65
|
cashier = getState().pos.cashier;
|
|
65
66
|
if (!!cashier) return [3 /*break*/, 5];
|
|
66
|
-
|
|
67
|
+
_j.label = 2;
|
|
67
68
|
case 2:
|
|
68
|
-
|
|
69
|
+
_j.trys.push([2, 4, , 5]);
|
|
69
70
|
return [4 /*yield*/, api.getCashier()
|
|
70
71
|
// TODO: figure out how to get the timezone from BE
|
|
71
72
|
// const tz = timezoneMap[store.timezone]
|
|
72
73
|
];
|
|
73
74
|
case 3:
|
|
74
|
-
employee =
|
|
75
|
+
employee = _j.sent();
|
|
75
76
|
tz = (0, utils_1.getUserTimezone)();
|
|
76
77
|
businessDate = (0, utils_1.currentLocalDateStr)(tz);
|
|
77
78
|
dispatch((0, pos_1.setCashier)(tslib_1.__assign(tslib_1.__assign({}, employee), { businessDate: businessDate })));
|
|
78
79
|
return [3 /*break*/, 5];
|
|
79
80
|
case 4:
|
|
80
|
-
err_1 =
|
|
81
|
+
err_1 = _j.sent();
|
|
81
82
|
return [3 /*break*/, 5];
|
|
82
83
|
case 5:
|
|
83
84
|
dispatch((0, order_1.setRevenueCenterId)(store.revenue_center_id));
|
|
84
85
|
dispatch((0, kds_1.setKdsItemTypes)(itemTypes));
|
|
85
86
|
dispatch((0, kds_1.setKdsPrepStations)(devices.prep_stations));
|
|
86
|
-
menuColors = [];
|
|
87
87
|
return [2 /*return*/, {
|
|
88
88
|
api: api,
|
|
89
89
|
app: app,
|
|
@@ -100,7 +100,7 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
|
|
|
100
100
|
retries: 0
|
|
101
101
|
}];
|
|
102
102
|
case 6:
|
|
103
|
-
err_2 =
|
|
103
|
+
err_2 = _j.sent();
|
|
104
104
|
return [2 /*return*/, rejectWithValue(err_2)];
|
|
105
105
|
case 7: return [2 /*return*/];
|
|
106
106
|
}
|
|
@@ -123,6 +123,9 @@ var configSlice = (0, toolkit_1.createSlice)({
|
|
|
123
123
|
},
|
|
124
124
|
setApi: function (state, action) {
|
|
125
125
|
state.api = action.payload;
|
|
126
|
+
},
|
|
127
|
+
setApiTerminal: function (state, action) {
|
|
128
|
+
state.api = new services_1.PosAPI(action.payload);
|
|
126
129
|
}
|
|
127
130
|
},
|
|
128
131
|
extraReducers: function (builder) {
|
|
@@ -10,7 +10,7 @@ export type FullOrderType = OrderType | 'MAIN_MENU' | 'ECOMMERCE';
|
|
|
10
10
|
export type OrderTypeMap = {
|
|
11
11
|
[Property in OrderType]: string;
|
|
12
12
|
};
|
|
13
|
-
export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY'
|
|
13
|
+
export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY';
|
|
14
14
|
export type ServiceTypes = ServiceType[];
|
|
15
15
|
export type ServiceTypeMap = {
|
|
16
16
|
[Property in ServiceType]: string;
|
|
@@ -30,7 +30,7 @@ export type ReceiptType = 'SALE' | 'REFUND';
|
|
|
30
30
|
export type ChannelType = 'POS' | 'ONLINE' | 'APP' | 'PHONE' | 'KIOSK' | 'PORTAL';
|
|
31
31
|
export type OrderStatus = 'OPEN' | 'HELD' | 'CLOSED' | 'VOID';
|
|
32
32
|
export type TenderStatus = 'AUTHORIZED' | 'PAID' | 'REFUNDED' | 'VOID' | 'FAILED';
|
|
33
|
-
export type PosSettingType = '
|
|
33
|
+
export type PosSettingType = 'DEVICES' | 'STORE' | 'POS_MESSAGE' | 'LEVELUP' | 'DISCOUNT' | 'EMPLOYEE' | 'QRCODE' | 'HOUSE_ACCOUNT' | 'TAX' | 'SURCHARGE' | 'POS_PAGE' | 'MENU' | 'ITEM_TYPE' | 'SELECT_OPTION' | 'KIOSK_CONFIG' | 'ITEM_COLORS';
|
|
34
34
|
export interface PicklistOption {
|
|
35
35
|
name: string;
|
|
36
36
|
value: string | number;
|
package/dist/cjs/utils/order.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, PosSettingType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
2
2
|
interface ConfigAPI {
|
|
3
3
|
apiUrl: string;
|
|
4
|
+
terminalId?: number;
|
|
4
5
|
}
|
|
5
6
|
declare class PosAPI {
|
|
6
7
|
apiUrl: string;
|
|
8
|
+
terminalId?: number;
|
|
7
9
|
constructor(config: ConfigAPI);
|
|
8
10
|
request: <T>(endpoint: string, method?: string, data?: any) => Promise<T>;
|
|
9
11
|
post(endpoint: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
package/dist/esm/services/api.js
CHANGED
|
@@ -34,6 +34,21 @@ var handleError = function (status, parsed) {
|
|
|
34
34
|
return parsed;
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
var makeHeaders = function (terminalId) {
|
|
38
|
+
var headers = undefined;
|
|
39
|
+
if (terminalId) {
|
|
40
|
+
headers = {
|
|
41
|
+
'Content-Type': 'application/json',
|
|
42
|
+
'pos-terminal-id': "".concat(terminalId)
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
headers = {
|
|
47
|
+
'Content-Type': 'application/json'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return headers;
|
|
51
|
+
};
|
|
37
52
|
var PosAPI = /** @class */ (function () {
|
|
38
53
|
function PosAPI(config) {
|
|
39
54
|
var _this = this;
|
|
@@ -51,9 +66,7 @@ var PosAPI = /** @class */ (function () {
|
|
|
51
66
|
url = "".concat(this.apiUrl).concat(endpoint);
|
|
52
67
|
return [4 /*yield*/, fetch(url, {
|
|
53
68
|
method: method,
|
|
54
|
-
headers:
|
|
55
|
-
'Content-Type': 'application/json'
|
|
56
|
-
},
|
|
69
|
+
headers: makeHeaders(this.terminalId),
|
|
57
70
|
body: data ? JSON.stringify(data) : null
|
|
58
71
|
})];
|
|
59
72
|
case 1:
|
|
@@ -83,6 +96,7 @@ var PosAPI = /** @class */ (function () {
|
|
|
83
96
|
});
|
|
84
97
|
}); };
|
|
85
98
|
this.apiUrl = config.apiUrl;
|
|
99
|
+
this.terminalId = config.terminalId;
|
|
86
100
|
}
|
|
87
101
|
PosAPI.prototype.post = function (endpoint, data) {
|
|
88
102
|
return this.request("/".concat(endpoint), 'POST', data);
|
|
@@ -33,54 +33,54 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
|
|
|
33
33
|
var apiUrl = _a.apiUrl;
|
|
34
34
|
var dispatch = _b.dispatch, getState = _b.getState, rejectWithValue = _b.rejectWithValue;
|
|
35
35
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
36
|
-
var app, api, _c, _d,
|
|
36
|
+
var terminalId, app, api, _c, _d,
|
|
37
37
|
// config,
|
|
38
|
-
devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1,
|
|
39
|
-
return __generator(this, function (
|
|
40
|
-
switch (
|
|
38
|
+
devicesList, _e, stores, _f, selectOptions, _g, itemTypes, _h, menuColors, store, devices, err, cashier, employee, tz, businessDate, err_1, err_2;
|
|
39
|
+
return __generator(this, function (_j) {
|
|
40
|
+
switch (_j.label) {
|
|
41
41
|
case 0:
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
_j.trys.push([0, 6, , 7]);
|
|
43
|
+
terminalId = getState().pos.terminalId;
|
|
44
|
+
app = terminalId ? { apiUrl: apiUrl, terminalId: terminalId } : { apiUrl: apiUrl };
|
|
44
45
|
api = new PosAPI(app);
|
|
45
46
|
return [4 /*yield*/, Promise.all([
|
|
46
47
|
// api.getConfig(),
|
|
47
48
|
api.getSettings('DEVICES'),
|
|
48
49
|
api.getSettings('STORE'),
|
|
49
50
|
api.getSettings('SELECT_OPTION'),
|
|
50
|
-
api.getSettings('ITEM_TYPE')
|
|
51
|
-
|
|
51
|
+
api.getSettings('ITEM_TYPE'),
|
|
52
|
+
api.getSettings('ITEM_COLORS')
|
|
52
53
|
])];
|
|
53
54
|
case 1:
|
|
54
|
-
_c =
|
|
55
|
-
store = stores
|
|
56
|
-
devices = devicesList
|
|
55
|
+
_c = _j.sent(), _d = _c[0], devicesList = _d === void 0 ? [] : _d, _e = _c[1], stores = _e === void 0 ? [] : _e, _f = _c[2], selectOptions = _f === void 0 ? [] : _f, _g = _c[3], itemTypes = _g === void 0 ? [] : _g, _h = _c[4], menuColors = _h === void 0 ? [] : _h;
|
|
56
|
+
store = stores[0] || null;
|
|
57
|
+
devices = devicesList[0] || null;
|
|
57
58
|
if (!store || !devices) {
|
|
58
59
|
err = errorsApi.internalServerError;
|
|
59
60
|
return [2 /*return*/, rejectWithValue(err)];
|
|
60
61
|
}
|
|
61
62
|
cashier = getState().pos.cashier;
|
|
62
63
|
if (!!cashier) return [3 /*break*/, 5];
|
|
63
|
-
|
|
64
|
+
_j.label = 2;
|
|
64
65
|
case 2:
|
|
65
|
-
|
|
66
|
+
_j.trys.push([2, 4, , 5]);
|
|
66
67
|
return [4 /*yield*/, api.getCashier()
|
|
67
68
|
// TODO: figure out how to get the timezone from BE
|
|
68
69
|
// const tz = timezoneMap[store.timezone]
|
|
69
70
|
];
|
|
70
71
|
case 3:
|
|
71
|
-
employee =
|
|
72
|
+
employee = _j.sent();
|
|
72
73
|
tz = getUserTimezone();
|
|
73
74
|
businessDate = currentLocalDateStr(tz);
|
|
74
75
|
dispatch(setCashier(__assign(__assign({}, employee), { businessDate: businessDate })));
|
|
75
76
|
return [3 /*break*/, 5];
|
|
76
77
|
case 4:
|
|
77
|
-
err_1 =
|
|
78
|
+
err_1 = _j.sent();
|
|
78
79
|
return [3 /*break*/, 5];
|
|
79
80
|
case 5:
|
|
80
81
|
dispatch(setRevenueCenterId(store.revenue_center_id));
|
|
81
82
|
dispatch(setKdsItemTypes(itemTypes));
|
|
82
83
|
dispatch(setKdsPrepStations(devices.prep_stations));
|
|
83
|
-
menuColors = [];
|
|
84
84
|
return [2 /*return*/, {
|
|
85
85
|
api: api,
|
|
86
86
|
app: app,
|
|
@@ -97,7 +97,7 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
|
|
|
97
97
|
retries: 0
|
|
98
98
|
}];
|
|
99
99
|
case 6:
|
|
100
|
-
err_2 =
|
|
100
|
+
err_2 = _j.sent();
|
|
101
101
|
return [2 /*return*/, rejectWithValue(err_2)];
|
|
102
102
|
case 7: return [2 /*return*/];
|
|
103
103
|
}
|
|
@@ -120,6 +120,9 @@ var configSlice = createSlice({
|
|
|
120
120
|
},
|
|
121
121
|
setApi: function (state, action) {
|
|
122
122
|
state.api = action.payload;
|
|
123
|
+
},
|
|
124
|
+
setApiTerminal: function (state, action) {
|
|
125
|
+
state.api = new PosAPI(action.payload);
|
|
123
126
|
}
|
|
124
127
|
},
|
|
125
128
|
extraReducers: function (builder) {
|
|
@@ -10,7 +10,7 @@ export type FullOrderType = OrderType | 'MAIN_MENU' | 'ECOMMERCE';
|
|
|
10
10
|
export type OrderTypeMap = {
|
|
11
11
|
[Property in OrderType]: string;
|
|
12
12
|
};
|
|
13
|
-
export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY'
|
|
13
|
+
export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY';
|
|
14
14
|
export type ServiceTypes = ServiceType[];
|
|
15
15
|
export type ServiceTypeMap = {
|
|
16
16
|
[Property in ServiceType]: string;
|
|
@@ -30,7 +30,7 @@ export type ReceiptType = 'SALE' | 'REFUND';
|
|
|
30
30
|
export type ChannelType = 'POS' | 'ONLINE' | 'APP' | 'PHONE' | 'KIOSK' | 'PORTAL';
|
|
31
31
|
export type OrderStatus = 'OPEN' | 'HELD' | 'CLOSED' | 'VOID';
|
|
32
32
|
export type TenderStatus = 'AUTHORIZED' | 'PAID' | 'REFUNDED' | 'VOID' | 'FAILED';
|
|
33
|
-
export type PosSettingType = '
|
|
33
|
+
export type PosSettingType = 'DEVICES' | 'STORE' | 'POS_MESSAGE' | 'LEVELUP' | 'DISCOUNT' | 'EMPLOYEE' | 'QRCODE' | 'HOUSE_ACCOUNT' | 'TAX' | 'SURCHARGE' | 'POS_PAGE' | 'MENU' | 'ITEM_TYPE' | 'SELECT_OPTION' | 'KIOSK_CONFIG' | 'ITEM_COLORS';
|
|
34
34
|
export interface PicklistOption {
|
|
35
35
|
name: string;
|
|
36
36
|
value: string | number;
|
package/dist/esm/utils/order.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tender/store",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
4
4
|
"description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|