@open-tender/cloud 0.5.21 → 0.5.23

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.
@@ -57,7 +57,7 @@ declare class OpenTenderAPI {
57
57
  getStore(): Promise<unknown>;
58
58
  getRevenueCenters(revenue_center_type: RevenueCenterType, is_outpost: boolean, lat: number, lng: number, requestedAt: string, serviceType?: ServiceType): Promise<unknown>;
59
59
  getRevenueCenter(revenue_center_id: number, requestedAt: string): Promise<unknown>;
60
- getLocations(revenue_center_type: RevenueCenterType, is_outpost?: boolean, lat?: number, lng?: number, requestedAt?: string, cart_total?: string, address?: string, serviceType?: ServiceType): Promise<unknown>;
60
+ getLocations(revenue_center_type: RevenueCenterType, is_outpost?: boolean, lat?: number, lng?: number, requestedAt?: string, cart_total?: string, address?: string, serviceType?: ServiceType, limit?: number, cursor?: string): Promise<unknown>;
61
61
  getLocation(revenue_center_id: number, cart_total?: string): Promise<unknown>;
62
62
  getLocationBySlug(slug: string, cart_total?: string): Promise<unknown>;
63
63
  getValidTimes(revenueCenterType: RevenueCenterType): Promise<unknown>;
@@ -316,7 +316,7 @@ class OpenTenderAPI {
316
316
  const params = requestedAt ? `?requested_at=${requestedAt}` : '';
317
317
  return this.request(`/revenue-centers/${revenue_center_id}${params}`);
318
318
  }
319
- getLocations(revenue_center_type, is_outpost, lat, lng, requestedAt, cart_total, address, serviceType) {
319
+ getLocations(revenue_center_type, is_outpost, lat, lng, requestedAt, cart_total, address, serviceType, limit, cursor) {
320
320
  let params = '';
321
321
  if (revenue_center_type)
322
322
  params += `revenue_center_type=${revenue_center_type}`;
@@ -332,6 +332,10 @@ class OpenTenderAPI {
332
332
  params += `&address=${address}`;
333
333
  if (serviceType)
334
334
  params += `&service_type=${serviceType}`;
335
+ if (limit)
336
+ params += `&limit=${limit}`;
337
+ if (cursor)
338
+ params += `&cursor=${cursor}`;
335
339
  return this.request(`/locations?${params}`);
336
340
  }
337
341
  getLocation(revenue_center_id, cart_total) {
@@ -83,6 +83,7 @@ export declare const selectAccountConfig: (state: AppState) => {
83
83
  title: string;
84
84
  videoUrl: string;
85
85
  videoUrlMobile: string;
86
+ useAppHomeHeading: boolean;
86
87
  } | undefined;
87
88
  export declare const selectCateringOnly: (state: AppState) => boolean;
88
89
  export declare const selectDisplaySettings: (state: AppState) => import("@open-tender/types").ConfigDisplaySetting | undefined;
@@ -2,14 +2,21 @@ import { AppState } from '../app';
2
2
  import { RevenueCenters, RevenueCenterParams, RequestError, RequestStatus } from '@open-tender/types';
3
3
  export interface RevenueCentersState {
4
4
  revenueCenters: RevenueCenters;
5
+ links: Record<string, string>;
5
6
  error: RequestError;
6
7
  loading: RequestStatus;
7
8
  }
9
+ export interface LocationsAPIResponse {
10
+ data: RevenueCenters;
11
+ links: {
12
+ next: string;
13
+ };
14
+ }
8
15
  export declare enum RevenueCentersActionType {
9
16
  FetchRevenueCenters = "revenueCenters/fetchRevenueCenters",
10
17
  FetchLocations = "revenueCenters/fetchLocations"
11
18
  }
12
- export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<RevenueCenters, RevenueCenterParams, {
19
+ export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<LocationsAPIResponse, RevenueCenterParams, {
13
20
  state: AppState;
14
21
  rejectValue: RequestError;
15
22
  dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
@@ -19,7 +26,7 @@ export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<
19
26
  fulfilledMeta?: unknown;
20
27
  rejectedMeta?: unknown;
21
28
  }>;
22
- export declare const fetchLocations: import("@reduxjs/toolkit").AsyncThunk<RevenueCenters, RevenueCenterParams, {
29
+ export declare const fetchLocations: import("@reduxjs/toolkit").AsyncThunk<LocationsAPIResponse, RevenueCenterParams, {
23
30
  state: AppState;
24
31
  rejectValue: RequestError;
25
32
  dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
@@ -8,6 +8,7 @@ const types_1 = require("./types");
8
8
  const utils_1 = require("@open-tender/utils");
9
9
  const initialState = {
10
10
  revenueCenters: [],
11
+ links: {},
11
12
  loading: 'idle',
12
13
  error: null
13
14
  };
@@ -18,16 +19,19 @@ var RevenueCentersActionType;
18
19
  })(RevenueCentersActionType = exports.RevenueCentersActionType || (exports.RevenueCentersActionType = {}));
19
20
  exports.fetchRevenueCenters = (0, toolkit_1.createAsyncThunk)(RevenueCentersActionType.FetchRevenueCenters, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
21
  try {
21
- const { api } = getState().config;
22
+ const { config: { api }, revenueCenters: { revenueCenters: currentCenters } } = getState();
22
23
  if (requestData.lat)
23
24
  requestData.lat = parseFloat(requestData.lat.toFixed(7));
24
25
  if (requestData.lng)
25
26
  requestData.lng = parseFloat(requestData.lng.toFixed(7));
26
- const { data } = yield api.getRevenueCenters(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.service_type);
27
+ const { data, links } = (yield api.getRevenueCenters(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.service_type, requestData.limit, requestData.cursor));
27
28
  const revenueCenters = requestData.lat && requestData.lng
28
29
  ? (0, utils_1.addDistance)(data, { lat: requestData.lat, lng: requestData.lng })
29
30
  : data;
30
- return revenueCenters;
31
+ const result = requestData.cursor
32
+ ? currentCenters.concat(revenueCenters)
33
+ : revenueCenters;
34
+ return { data: result, links };
31
35
  }
32
36
  catch (err) {
33
37
  return rejectWithValue(err);
@@ -35,16 +39,19 @@ exports.fetchRevenueCenters = (0, toolkit_1.createAsyncThunk)(RevenueCentersActi
35
39
  }));
36
40
  exports.fetchLocations = (0, toolkit_1.createAsyncThunk)(RevenueCentersActionType.FetchLocations, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
37
41
  try {
38
- const { api } = getState().config;
42
+ const { config: { api }, revenueCenters: { revenueCenters: currentCenters } } = getState();
39
43
  if (requestData.lat)
40
44
  requestData.lat = parseFloat(requestData.lat.toFixed(7));
41
45
  if (requestData.lng)
42
46
  requestData.lng = parseFloat(requestData.lng.toFixed(7));
43
- const { data } = yield api.getLocations(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.cart_total, requestData.address, requestData.service_type);
47
+ const { data, links } = (yield api.getLocations(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.cart_total, requestData.address, requestData.service_type, requestData.limit, requestData.cursor));
44
48
  const revenueCenters = requestData.lat && requestData.lng
45
49
  ? (0, utils_1.addDistance)(data, { lat: requestData.lat, lng: requestData.lng })
46
50
  : data;
47
- return revenueCenters;
51
+ const result = requestData.cursor
52
+ ? currentCenters.concat(revenueCenters)
53
+ : revenueCenters;
54
+ return { data: result, links };
48
55
  }
49
56
  catch (err) {
50
57
  return rejectWithValue(err);
@@ -62,7 +69,8 @@ const revenueCentersSlice = (0, toolkit_1.createSlice)({
62
69
  extraReducers: builder => {
63
70
  builder
64
71
  .addCase(exports.fetchRevenueCenters.fulfilled, (state, action) => {
65
- state.revenueCenters = action.payload;
72
+ state.revenueCenters = action.payload.data;
73
+ state.links = action.payload.links;
66
74
  state.loading = 'idle';
67
75
  state.error = null;
68
76
  })
@@ -74,7 +82,8 @@ const revenueCentersSlice = (0, toolkit_1.createSlice)({
74
82
  state.loading = 'idle';
75
83
  })
76
84
  .addCase(exports.fetchLocations.fulfilled, (state, action) => {
77
- state.revenueCenters = action.payload;
85
+ state.revenueCenters = action.payload.data;
86
+ state.links = action.payload.links;
78
87
  state.loading = 'idle';
79
88
  state.error = null;
80
89
  })
@@ -57,7 +57,7 @@ declare class OpenTenderAPI {
57
57
  getStore(): Promise<unknown>;
58
58
  getRevenueCenters(revenue_center_type: RevenueCenterType, is_outpost: boolean, lat: number, lng: number, requestedAt: string, serviceType?: ServiceType): Promise<unknown>;
59
59
  getRevenueCenter(revenue_center_id: number, requestedAt: string): Promise<unknown>;
60
- getLocations(revenue_center_type: RevenueCenterType, is_outpost?: boolean, lat?: number, lng?: number, requestedAt?: string, cart_total?: string, address?: string, serviceType?: ServiceType): Promise<unknown>;
60
+ getLocations(revenue_center_type: RevenueCenterType, is_outpost?: boolean, lat?: number, lng?: number, requestedAt?: string, cart_total?: string, address?: string, serviceType?: ServiceType, limit?: number, cursor?: string): Promise<unknown>;
61
61
  getLocation(revenue_center_id: number, cart_total?: string): Promise<unknown>;
62
62
  getLocationBySlug(slug: string, cart_total?: string): Promise<unknown>;
63
63
  getValidTimes(revenueCenterType: RevenueCenterType): Promise<unknown>;
@@ -314,7 +314,7 @@ class OpenTenderAPI {
314
314
  const params = requestedAt ? `?requested_at=${requestedAt}` : '';
315
315
  return this.request(`/revenue-centers/${revenue_center_id}${params}`);
316
316
  }
317
- getLocations(revenue_center_type, is_outpost, lat, lng, requestedAt, cart_total, address, serviceType) {
317
+ getLocations(revenue_center_type, is_outpost, lat, lng, requestedAt, cart_total, address, serviceType, limit, cursor) {
318
318
  let params = '';
319
319
  if (revenue_center_type)
320
320
  params += `revenue_center_type=${revenue_center_type}`;
@@ -330,6 +330,10 @@ class OpenTenderAPI {
330
330
  params += `&address=${address}`;
331
331
  if (serviceType)
332
332
  params += `&service_type=${serviceType}`;
333
+ if (limit)
334
+ params += `&limit=${limit}`;
335
+ if (cursor)
336
+ params += `&cursor=${cursor}`;
333
337
  return this.request(`/locations?${params}`);
334
338
  }
335
339
  getLocation(revenue_center_id, cart_total) {
@@ -83,6 +83,7 @@ export declare const selectAccountConfig: (state: AppState) => {
83
83
  title: string;
84
84
  videoUrl: string;
85
85
  videoUrlMobile: string;
86
+ useAppHomeHeading: boolean;
86
87
  } | undefined;
87
88
  export declare const selectCateringOnly: (state: AppState) => boolean;
88
89
  export declare const selectDisplaySettings: (state: AppState) => import("@open-tender/types").ConfigDisplaySetting | undefined;
@@ -2,14 +2,21 @@ import { AppState } from '../app';
2
2
  import { RevenueCenters, RevenueCenterParams, RequestError, RequestStatus } from '@open-tender/types';
3
3
  export interface RevenueCentersState {
4
4
  revenueCenters: RevenueCenters;
5
+ links: Record<string, string>;
5
6
  error: RequestError;
6
7
  loading: RequestStatus;
7
8
  }
9
+ export interface LocationsAPIResponse {
10
+ data: RevenueCenters;
11
+ links: {
12
+ next: string;
13
+ };
14
+ }
8
15
  export declare enum RevenueCentersActionType {
9
16
  FetchRevenueCenters = "revenueCenters/fetchRevenueCenters",
10
17
  FetchLocations = "revenueCenters/fetchLocations"
11
18
  }
12
- export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<RevenueCenters, RevenueCenterParams, {
19
+ export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<LocationsAPIResponse, RevenueCenterParams, {
13
20
  state: AppState;
14
21
  rejectValue: RequestError;
15
22
  dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
@@ -19,7 +26,7 @@ export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<
19
26
  fulfilledMeta?: unknown;
20
27
  rejectedMeta?: unknown;
21
28
  }>;
22
- export declare const fetchLocations: import("@reduxjs/toolkit").AsyncThunk<RevenueCenters, RevenueCenterParams, {
29
+ export declare const fetchLocations: import("@reduxjs/toolkit").AsyncThunk<LocationsAPIResponse, RevenueCenterParams, {
23
30
  state: AppState;
24
31
  rejectValue: RequestError;
25
32
  dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
@@ -4,6 +4,7 @@ import { ReducerType } from './types';
4
4
  import { addDistance } from '@open-tender/utils';
5
5
  const initialState = {
6
6
  revenueCenters: [],
7
+ links: {},
7
8
  loading: 'idle',
8
9
  error: null
9
10
  };
@@ -14,16 +15,19 @@ export var RevenueCentersActionType;
14
15
  })(RevenueCentersActionType || (RevenueCentersActionType = {}));
15
16
  export const fetchRevenueCenters = createAsyncThunk(RevenueCentersActionType.FetchRevenueCenters, (requestData, { getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
16
17
  try {
17
- const { api } = getState().config;
18
+ const { config: { api }, revenueCenters: { revenueCenters: currentCenters } } = getState();
18
19
  if (requestData.lat)
19
20
  requestData.lat = parseFloat(requestData.lat.toFixed(7));
20
21
  if (requestData.lng)
21
22
  requestData.lng = parseFloat(requestData.lng.toFixed(7));
22
- const { data } = yield api.getRevenueCenters(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.service_type);
23
+ const { data, links } = (yield api.getRevenueCenters(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.service_type, requestData.limit, requestData.cursor));
23
24
  const revenueCenters = requestData.lat && requestData.lng
24
25
  ? addDistance(data, { lat: requestData.lat, lng: requestData.lng })
25
26
  : data;
26
- return revenueCenters;
27
+ const result = requestData.cursor
28
+ ? currentCenters.concat(revenueCenters)
29
+ : revenueCenters;
30
+ return { data: result, links };
27
31
  }
28
32
  catch (err) {
29
33
  return rejectWithValue(err);
@@ -31,16 +35,19 @@ export const fetchRevenueCenters = createAsyncThunk(RevenueCentersActionType.Fet
31
35
  }));
32
36
  export const fetchLocations = createAsyncThunk(RevenueCentersActionType.FetchLocations, (requestData, { getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
33
37
  try {
34
- const { api } = getState().config;
38
+ const { config: { api }, revenueCenters: { revenueCenters: currentCenters } } = getState();
35
39
  if (requestData.lat)
36
40
  requestData.lat = parseFloat(requestData.lat.toFixed(7));
37
41
  if (requestData.lng)
38
42
  requestData.lng = parseFloat(requestData.lng.toFixed(7));
39
- const { data } = yield api.getLocations(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.cart_total, requestData.address, requestData.service_type);
43
+ const { data, links } = (yield api.getLocations(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt, requestData.cart_total, requestData.address, requestData.service_type, requestData.limit, requestData.cursor));
40
44
  const revenueCenters = requestData.lat && requestData.lng
41
45
  ? addDistance(data, { lat: requestData.lat, lng: requestData.lng })
42
46
  : data;
43
- return revenueCenters;
47
+ const result = requestData.cursor
48
+ ? currentCenters.concat(revenueCenters)
49
+ : revenueCenters;
50
+ return { data: result, links };
44
51
  }
45
52
  catch (err) {
46
53
  return rejectWithValue(err);
@@ -58,7 +65,8 @@ const revenueCentersSlice = createSlice({
58
65
  extraReducers: builder => {
59
66
  builder
60
67
  .addCase(fetchRevenueCenters.fulfilled, (state, action) => {
61
- state.revenueCenters = action.payload;
68
+ state.revenueCenters = action.payload.data;
69
+ state.links = action.payload.links;
62
70
  state.loading = 'idle';
63
71
  state.error = null;
64
72
  })
@@ -70,7 +78,8 @@ const revenueCentersSlice = createSlice({
70
78
  state.loading = 'idle';
71
79
  })
72
80
  .addCase(fetchLocations.fulfilled, (state, action) => {
73
- state.revenueCenters = action.payload;
81
+ state.revenueCenters = action.payload.data;
82
+ state.links = action.payload.links;
74
83
  state.loading = 'idle';
75
84
  state.error = null;
76
85
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.5.21",
3
+ "version": "0.5.23",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -34,7 +34,7 @@
34
34
  "private": false,
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.19.1",
37
- "@open-tender/types": "^0.4.134",
37
+ "@open-tender/types": "^0.4.152",
38
38
  "@open-tender/utils": "^0.5.22",
39
39
  "@reduxjs/toolkit": "^1.8.5",
40
40
  "@types/react": "^18.0.18",