UNPKG

@apihawk/help-center-sdk

Version:

The ApiHawk Help Center SDK

84 lines (83 loc) 3.23 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const qs = require("qs"); const queryString = require("querystring"); const help_center_sdk_service_base_1 = require("../lib/help-center-sdk-service-base"); const to_rest_resource_1 = require("./common/to-rest-resource"); const help_center_sdk_categories_1 = require("./help-center-sdk-categories"); class HelpCenterSDKTags extends help_center_sdk_service_base_1.HelpCenterSDKServiceBase { constructor(api) { super(api); this.helpCenterSDKCategories = new help_center_sdk_categories_1.HelpCenterSDKCategories(api); } /** * Get tags * @param {number} page * @param {number} pageSize * @param {string} tag * @returns {Promise<IRestPaginatedResource<IHelpCenterTag>>} */ getTags(page = 1, pageSize = 25, tag) { return __awaiter(this, void 0, void 0, function* () { const filter = { page, page_size: pageSize }; if (tag) { filter.where = [ { field: 'name', where: 'and', type: 'equalTo', value: tag } ]; } return this.api .call({ url: `/tags?${qs.stringify(queryString)}`, method: 'GET' }) .then((tags) => { return to_rest_resource_1.default(tags, 'tags'); }); }); } /** * Get articles by tag * @param {string} tag * @param {string} rootCategory * @param {number} page * @param {number} pageSize * @returns {Promise<IHelpCenterArticlesByTags>} */ getArticlesByTag(tag, rootCategory, page = 1, pageSize = 25) { return __awaiter(this, void 0, void 0, function* () { const category = yield this.helpCenterSDKCategories.getRoot(rootCategory); const filter = { page, page_size: pageSize }; const articles = yield this.api .call({ url: `/helpcenter/searchBy-tags-and-categories?${qs.stringify(filter)}`, method: 'POST', body: { tags: [tag], category_ids: [category.id] } }); return articles; }); } } exports.HelpCenterSDKTags = HelpCenterSDKTags;