@apihawk/help-center-sdk
Version:
The ApiHawk Help Center SDK
84 lines (83 loc) • 3.23 kB
JavaScript
;
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;