UNPKG

@kkbox/kkbox-js-sdk

Version:

KKBOX Open API developer SDK for JavaScript. Use it to easily access KKBOX open API to get various metadata about KKBOX's tracks, albums, artists, playlists and stations.

81 lines (67 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _axios = _interopRequireDefault(require("axios")); var _catchError = require("../catchError"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } /** * Do request to open api server with authorization header and error catch. */ var HttpClient = /*#__PURE__*/ function () { /** * @param {string} token - Need access token to initialize. */ function HttpClient(token) { _classCallCheck(this, HttpClient); /** * @private * @type {string} */ this.token = 'Bearer ' + token; } /** * Http get method. * * @param {string} endpoint - Uri endpoint. * @param {object} params - Uri parameters. * @return {Promise} */ _createClass(HttpClient, [{ key: "get", value: function get(endpoint) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _axios["default"].get(endpoint, { params: params, headers: { Authorization: this.token } })["catch"](_catchError.apiError); } /** * Http post method. * * @param {string} endpoint - Uri endpoint. * @param {object} data - Body json data. * @return {Promise} */ }, { key: "post", value: function post(endpoint) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _axios["default"].post(endpoint, data, { headers: { Authorization: this.token } })["catch"](_catchError.apiError); } }]); return HttpClient; }(); exports["default"] = HttpClient;