btrz-api-client 8.57.0 → 8.58.0

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/lib/client.js CHANGED
@@ -143,6 +143,7 @@ function createInventory(_ref) {
143
143
  vehicles: require("./endpoints/inventory/vehicles.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
144
144
  zonePriceOverages: require("./endpoints/inventory/zone-price-overages.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
145
145
  zonePrices: require("./endpoints/inventory/zone-prices.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
146
+ regions: require("./endpoints/inventory/regions.js")({ client: client, internalAuthTokenProvider: internalAuthTokenProvider }),
146
147
  __test: {
147
148
  client: client
148
149
  }
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ var _require = require("../endpoints_helpers.js"),
4
+ authorizationHeaders = _require.authorizationHeaders;
5
+
6
+ /**
7
+ * Factory for regions API (btrz-api-inventory).
8
+ * @param {Object} deps
9
+ * @param {import("axios").AxiosInstance} deps.client
10
+ * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
11
+ * @returns {{ all: function, get: function, update: function, remove: function, create: function }}
12
+ */
13
+
14
+
15
+ function regionsFactory(_ref) {
16
+ var client = _ref.client,
17
+ internalAuthTokenProvider = _ref.internalAuthTokenProvider;
18
+
19
+ /**
20
+ * GET /regions - list regions (paginated).
21
+ * @param {Object} opts
22
+ * @param {string} [opts.token] - API key
23
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
24
+ * @param {Object} [opts.query] - Query params (page, name, enabled)
25
+ * @param {Object} [opts.headers] - Optional headers
26
+ * @returns {Promise<import("axios").AxiosResponse>}
27
+ */
28
+ function all(_ref2) {
29
+ var token = _ref2.token,
30
+ jwtToken = _ref2.jwtToken,
31
+ _ref2$query = _ref2.query,
32
+ query = _ref2$query === undefined ? {} : _ref2$query,
33
+ headers = _ref2.headers;
34
+
35
+ return client({
36
+ url: "/regions",
37
+ method: "get",
38
+ headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
39
+ params: query
40
+ });
41
+ }
42
+
43
+ /**
44
+ * GET /regions/:regionId - get region by id.
45
+ * @param {Object} opts
46
+ * @param {string} [opts.token] - API key
47
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
48
+ * @param {string} opts.regionId - Region id
49
+ * @param {Object} [opts.headers] - Optional headers
50
+ * @returns {Promise<import("axios").AxiosResponse>}
51
+ */
52
+ function get(_ref3) {
53
+ var token = _ref3.token,
54
+ jwtToken = _ref3.jwtToken,
55
+ regionId = _ref3.regionId,
56
+ headers = _ref3.headers;
57
+
58
+ return client({
59
+ url: "/regions/" + regionId,
60
+ method: "get",
61
+ headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
62
+ });
63
+ }
64
+
65
+ /**
66
+ * PUT /regions/:regionId - update region.
67
+ * @param {Object} opts
68
+ * @param {string} [opts.token] - API key
69
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
70
+ * @param {string} opts.regionId - Region id
71
+ * @param {Object} opts.data - Region payload
72
+ * @param {Object} [opts.headers] - Optional headers
73
+ * @returns {Promise<import("axios").AxiosResponse>}
74
+ */
75
+ function update(_ref4) {
76
+ var token = _ref4.token,
77
+ jwtToken = _ref4.jwtToken,
78
+ regionId = _ref4.regionId,
79
+ data = _ref4.data,
80
+ headers = _ref4.headers;
81
+
82
+ return client({
83
+ url: "/regions/" + regionId,
84
+ method: "put",
85
+ headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
86
+ data: data
87
+ });
88
+ }
89
+
90
+ /**
91
+ * DELETE /regions/:regionId - delete region.
92
+ * @param {Object} opts
93
+ * @param {string} [opts.token] - API key
94
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
95
+ * @param {string} opts.regionId - Region id
96
+ * @param {Object} [opts.headers] - Optional headers
97
+ * @returns {Promise<import("axios").AxiosResponse>}
98
+ */
99
+ function remove(_ref5) {
100
+ var token = _ref5.token,
101
+ jwtToken = _ref5.jwtToken,
102
+ regionId = _ref5.regionId,
103
+ headers = _ref5.headers;
104
+
105
+ return client({
106
+ url: "/regions/" + regionId,
107
+ method: "delete",
108
+ headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers })
109
+ });
110
+ }
111
+
112
+ /**
113
+ * POST /regions - create region.
114
+ * @param {Object} opts
115
+ * @param {string} [opts.token] - API key
116
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
117
+ * @param {Object} opts.data - Region payload
118
+ * @param {Object} [opts.headers] - Optional headers
119
+ * @returns {Promise<import("axios").AxiosResponse>}
120
+ */
121
+ function create(_ref6) {
122
+ var token = _ref6.token,
123
+ jwtToken = _ref6.jwtToken,
124
+ data = _ref6.data,
125
+ headers = _ref6.headers;
126
+
127
+ return client({
128
+ url: "/regions",
129
+ method: "post",
130
+ headers: authorizationHeaders({ token: token, jwtToken: jwtToken, internalAuthTokenProvider: internalAuthTokenProvider, headers: headers }),
131
+ data: data
132
+ });
133
+ }
134
+
135
+ return {
136
+ all: all,
137
+ get: get,
138
+ update: update,
139
+ remove: remove,
140
+ create: create
141
+ };
142
+ }
143
+
144
+ module.exports = regionsFactory;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "btrz-api-client",
3
- "version": "8.57.0",
3
+ "version": "8.58.0",
4
4
  "description": "Api client for Betterez endpoints",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/client.js CHANGED
@@ -128,6 +128,7 @@ function createInventory({baseURL, headers, timeout, overrideFn, internalAuthTok
128
128
  vehicles: require("./endpoints/inventory/vehicles.js")({client, internalAuthTokenProvider}),
129
129
  zonePriceOverages: require("./endpoints/inventory/zone-price-overages.js")({client, internalAuthTokenProvider}),
130
130
  zonePrices: require("./endpoints/inventory/zone-prices.js")({client, internalAuthTokenProvider}),
131
+ regions: require("./endpoints/inventory/regions.js")({client, internalAuthTokenProvider}),
131
132
  __test: {
132
133
  client
133
134
  }
@@ -0,0 +1,109 @@
1
+ const {authorizationHeaders} = require("../endpoints_helpers.js");
2
+
3
+ /**
4
+ * Factory for regions API (btrz-api-inventory).
5
+ * @param {Object} deps
6
+ * @param {import("axios").AxiosInstance} deps.client
7
+ * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
8
+ * @returns {{ all: function, get: function, update: function, remove: function, create: function }}
9
+ */
10
+ function regionsFactory({client, internalAuthTokenProvider}) {
11
+ /**
12
+ * GET /regions - list regions (paginated).
13
+ * @param {Object} opts
14
+ * @param {string} [opts.token] - API key
15
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
16
+ * @param {Object} [opts.query] - Query params (page, name, enabled)
17
+ * @param {Object} [opts.headers] - Optional headers
18
+ * @returns {Promise<import("axios").AxiosResponse>}
19
+ */
20
+ function all({token, jwtToken, query = {}, headers}) {
21
+ return client({
22
+ url: "/regions",
23
+ method: "get",
24
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
25
+ params: query
26
+ });
27
+ }
28
+
29
+ /**
30
+ * GET /regions/:regionId - get region by id.
31
+ * @param {Object} opts
32
+ * @param {string} [opts.token] - API key
33
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
34
+ * @param {string} opts.regionId - Region id
35
+ * @param {Object} [opts.headers] - Optional headers
36
+ * @returns {Promise<import("axios").AxiosResponse>}
37
+ */
38
+ function get({token, jwtToken, regionId, headers}) {
39
+ return client({
40
+ url: `/regions/${regionId}`,
41
+ method: "get",
42
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
43
+ });
44
+ }
45
+
46
+ /**
47
+ * PUT /regions/:regionId - update region.
48
+ * @param {Object} opts
49
+ * @param {string} [opts.token] - API key
50
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
51
+ * @param {string} opts.regionId - Region id
52
+ * @param {Object} opts.data - Region payload
53
+ * @param {Object} [opts.headers] - Optional headers
54
+ * @returns {Promise<import("axios").AxiosResponse>}
55
+ */
56
+ function update({token, jwtToken, regionId, data, headers}) {
57
+ return client({
58
+ url: `/regions/${regionId}`,
59
+ method: "put",
60
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
61
+ data
62
+ });
63
+ }
64
+
65
+ /**
66
+ * DELETE /regions/:regionId - delete region.
67
+ * @param {Object} opts
68
+ * @param {string} [opts.token] - API key
69
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
70
+ * @param {string} opts.regionId - Region id
71
+ * @param {Object} [opts.headers] - Optional headers
72
+ * @returns {Promise<import("axios").AxiosResponse>}
73
+ */
74
+ function remove({token, jwtToken, regionId, headers}) {
75
+ return client({
76
+ url: `/regions/${regionId}`,
77
+ method: "delete",
78
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
79
+ });
80
+ }
81
+
82
+ /**
83
+ * POST /regions - create region.
84
+ * @param {Object} opts
85
+ * @param {string} [opts.token] - API key
86
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
87
+ * @param {Object} opts.data - Region payload
88
+ * @param {Object} [opts.headers] - Optional headers
89
+ * @returns {Promise<import("axios").AxiosResponse>}
90
+ */
91
+ function create({token, jwtToken, data, headers}) {
92
+ return client({
93
+ url: "/regions",
94
+ method: "post",
95
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
96
+ data
97
+ });
98
+ }
99
+
100
+ return {
101
+ all,
102
+ get,
103
+ update,
104
+ remove,
105
+ create
106
+ };
107
+ }
108
+
109
+ module.exports = regionsFactory;
@@ -0,0 +1,50 @@
1
+ const {axiosMock, expectRequest} = require("./../../test-helpers.js");
2
+ const api = require("./../../../src/client.js").createApiClient({baseURL: "http://test.com"});
3
+
4
+ describe("inventory/regions", () => {
5
+ const token = "I owe you a token";
6
+ const jwtToken = "I owe you a JWT token";
7
+
8
+ afterEach(() => {
9
+ axiosMock.restore();
10
+ });
11
+
12
+ it("should list regions", () => {
13
+ axiosMock.onGet("/regions").reply(expectRequest({statusCode: 200, token, jwtToken}));
14
+ return api.inventory.regions.all({token, jwtToken});
15
+ });
16
+
17
+ it("should get a region", () => {
18
+ const regionId = "123123123123";
19
+ axiosMock.onGet(`/regions/${regionId}`).reply(expectRequest({statusCode: 200, token, jwtToken}));
20
+ return api.inventory.regions.get({token, jwtToken, regionId});
21
+ });
22
+
23
+ it("should create a region", () => {
24
+ axiosMock.onPost("/regions").reply(expectRequest({statusCode: 200, token, jwtToken}));
25
+ return api.inventory.regions.create({
26
+ jwtToken,
27
+ token,
28
+ data: {
29
+ name: "North",
30
+ enabled: true
31
+ }
32
+ });
33
+ });
34
+
35
+ it("should update a region", () => {
36
+ const regionId = "123123123123";
37
+ const data = {
38
+ name: "North",
39
+ enabled: false
40
+ };
41
+ axiosMock.onPut(`/regions/${regionId}`).reply(expectRequest({statusCode: 200, token, jwtToken}));
42
+ return api.inventory.regions.update({jwtToken, token, regionId, data});
43
+ });
44
+
45
+ it("should delete a region", () => {
46
+ const regionId = "123123123123";
47
+ axiosMock.onDelete(`/regions/${regionId}`).reply(expectRequest({statusCode: 200, token, jwtToken}));
48
+ return api.inventory.regions.remove({jwtToken, token, regionId});
49
+ });
50
+ });