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.

157 lines (130 loc) 6.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _Endpoint = require("../Endpoint"); var _Fetcher2 = _interopRequireDefault(require("./Fetcher")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(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; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } /** * Get artist metadata. * @see https://docs-en.kkbox.codes/v1.1/reference#artists */ var ArtistFetcher = /*#__PURE__*/ function (_Fetcher) { _inherits(ArtistFetcher, _Fetcher); /** * @ignore */ function ArtistFetcher(http) { var _this; var territory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'TW'; _classCallCheck(this, ArtistFetcher); _this = _possibleConstructorReturn(this, _getPrototypeOf(ArtistFetcher).call(this, http, territory)); /** * @ignore */ _this.artistID = undefined; return _this; } /** * Init the artist object. * * @param {string} artistID - The ID of an artist. * @return {Artist} * @see https://docs-en.kkbox.codes/v1.1/reference#artists-artist_id */ _createClass(ArtistFetcher, [{ key: "setArtistID", value: function setArtistID(artistID) { this.artistID = artistID; return this; } /** * Fetch metadata of the artist you find. * * @return {Promise} * @example api.artistFetcher.setArtistID('Cnv_K6i5Ft4y41SxLy').fetchMetadata(); * @see https://docs-en.kkbox.codes/v1.1/reference#artists-artist_id */ }, { key: "fetchMetadata", value: function fetchMetadata() { return this.http.get(_Endpoint.ARTISTS + '/' + this.artistID, { territory: this.territory }); } /** * Fetch albums belong to an artist. * * @param {number} [limit] - The size for one page. * @param {number} [offset] - The offset index for first element. * @return {Promise} * @example api.artistFetcher.setArtistID('Cnv_K6i5Ft4y41SxLy').fetchAlbums(); * @see https://docs-en.kkbox.codes/v1.1/reference#artists-artist_id-albums */ }, { key: "fetchAlbums", value: function fetchAlbums() { var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; return this.http.get(_Endpoint.ARTISTS + '/' + this.artistID + '/albums', { territory: this.territory, limit: limit, offset: offset }); } /** * Fetch top tracks belong to an artist. * * @param {number} [limit] - The size for one page. * @param {number} [offset] - The offset index for first element. * @return {Promise} * @example api.artistFetcher.setArtistID('Cnv_K6i5Ft4y41SxLy').fetchTopTracks(); * @see https://docs-en.kkbox.codes/v1.1/reference#artists-artist_id-toptracks */ }, { key: "fetchTopTracks", value: function fetchTopTracks() { var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; return this.http.get(_Endpoint.ARTISTS + '/' + this.artistID + '/top-tracks', { territory: this.territory, limit: limit, offset: offset }); } /** * Fetch related artists * * @param {number} [limit] - The size for one page. * @param {number} [offset] - The offset index for first element. * @return {Promise} * @example api.artistFetcher.setArtistID('Cnv_K6i5Ft4y41SxLy').fetchRelatedArtists(); * @see https://docs-en.kkbox.codes/v1.1/reference#artists-artist_id-relatedartists */ }, { key: "fetchRelatedArtists", value: function fetchRelatedArtists() { var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; return this.http.get(_Endpoint.ARTISTS + '/' + this.artistID + '/related-artists', { territory: this.territory, limit: limit, offset: offset }); } }]); return ArtistFetcher; }(_Fetcher2["default"]); exports["default"] = ArtistFetcher;