Skip to content

Commit bff95dc

Browse files
v1.0.2 update
1 parent e33552c commit bff95dc

170 files changed

Lines changed: 991 additions & 426 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4-
## [1.0.0] - 2022-10-19
4+
## [1.0.2] - revision: 2022-10-19 (update: 2022-12-19)
5+
6+
### Changes
7+
- fix `babel/cli` location in `package.json` to be in devDependencies
8+
- when passing pageCursor the returned link.next url will be automatically parsed for the page cursor
9+
10+
## [1.0.0] - revision: 2022-10-19
11+
512
### Added
613
- Initial release
714

README.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Klaviyo JavaScript SDK
22

3-
- SDK version: 1.0.1
3+
- SDK version: 1.0.2
44

55
- Revision: 2022-10-17
66

@@ -131,14 +131,30 @@ const r = await catalogApi.createCatalogCategory(body)
131131

132132
Different endpoint include specific optional parameters. Here is a few examples how to use these and what they look like
133133

134+
more often than not the info that can go into the `opts` param are the optional headers.
135+
These are formatted in js a bit different from the docs, headers names have variables that make bad names like
136+
page[cursor] are transformed to `pageCursor`. (Remove the weird characters and append words with camelCase)
137+
138+
```javascript
139+
const opts = {
140+
pageCursor: "page_cursor", // page[cursor]
141+
fieldsList: ["list", "of", "wanted", "attributes"] // fields[list]
142+
include: ["resource_to_include"] // include
143+
}
144+
```
145+
146+
134147
#### Cursor based Pagination
135148

136149
Obtain the cursor value from the call you want to get the next page for, then pass it under the `pageCursor` optional parameter
137150

138151
```javascript
139-
const nextPageCursor = 'WzE2NDA5OTUyMDAsICIzYzRjeXdGTndadyIsIHRydWVd'
152+
// page cursor looks like 'WzE2NDA5OTUyMDAsICIzYzRjeXdGTndadyIsIHRydWVd'
153+
// next.link returns the entire url of the next call but the sdk will accept the entire link and use only the relevant cursor
140154

141-
await Events.getEvents({pageCursor: nextPageCursor})
155+
const response = await Profiles.getProfiles();
156+
const opts = {pageCursor: response.links.next}
157+
const response2 = await Profiles.getProfiles(opts);
142158
```
143159

144160
#### Filtering

dist/ApiClient.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ var _querystring = _interopRequireDefault(require("querystring"));
99
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1010
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1111
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
1313
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
14-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1517
/**
1618
* @module ApiClient
1719
* @version 2022-10-17
@@ -52,7 +54,7 @@ var ApiClient = /*#__PURE__*/function () {
5254
*/
5355
this.defaultHeaders = {
5456
revision: "2022-10-17",
55-
"User-Agent": "klaviyo-api-node/1.0.1"
57+
"User-Agent": "klaviyo-api-node/1.0.2"
5658
};
5759

5860
/**
@@ -358,6 +360,10 @@ var ApiClient = /*#__PURE__*/function () {
358360
key: "callApi",
359361
value: function callApi(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
360362
var _this3 = this;
363+
if (queryParams && queryParams['page[cursor]'] && queryParams['page[cursor]'].includes("https://")) {
364+
var params = new URLSearchParams(decodeURI(queryParams['page[cursor]'].split('?')[1]));
365+
queryParams['page[cursor]'] = params.get('page[cursor]');
366+
}
361367
var url = this.buildUrl(path, pathParams);
362368
var request = (0, _superagent["default"])(httpMethod, url);
363369

dist/api/CatalogsApi.js

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

dist/api/ClientApi.js

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/api/EventsApi.js

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

dist/api/FlowsApi.js

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

dist/api/ListsApi.js

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

dist/api/MetricsApi.js

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/api/ProfilesApi.js

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)