gorsejs
Version:
TypeScript SDK for Gorse recommender system.
132 lines • 5.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Gorse = void 0;
const tslib_1 = require("tslib");
const axios_1 = tslib_1.__importDefault(require("axios"));
const axios_logger_1 = require("axios-logger");
const _1 = require(".");
const feedback_1 = require("./model/feedback");
const item_1 = require("./model/item");
const user_1 = require("./model/user");
const recommend_1 = require("./model/recommend");
class Gorse {
constructor({ endpoint = `${process.env["GORSE_ENDPOINT"]}`, secret = `${process.env["GORSE_SECRET"]}`, debug, }, axiosOptons) {
this.axiosClient = axios_1.default.create(Object.assign({ baseURL: `${endpoint}/api`, headers: secret && secret.length > 0 ? { "X-API-Key": secret } : {} }, axiosOptons));
if (debug) {
(0, axios_logger_1.setGlobalConfig)({
prefixText: "Gorse",
status: true,
headers: true,
});
this.axiosClient.interceptors.request.use(axios_logger_1.requestLogger, axios_logger_1.errorLogger);
this.axiosClient.interceptors.response.use(axios_logger_1.responseLogger, axios_logger_1.errorLogger);
}
this.axiosClient.interceptors.response.use(undefined, (error) => {
// HTTP errors
if ("response" in error) {
const { response } = error;
throw new _1.GorseException(response.status, response.data);
}
// Network errors
throw new _1.GorseException(-1, error.message);
});
}
// Core functions
getLatest(options) {
return (0, recommend_1.getLatest)(this.axiosClient, options);
}
getRecommend(options) {
return (0, recommend_1.getRecommend)(this.axiosClient, options);
}
getSessionRecommend(feedbackList, options = {}) {
return (0, recommend_1.getSessionRecommend)(this.axiosClient, feedbackList, options);
}
// Feedback
getFeedback(filter, options) {
return (0, feedback_1.getFeedback)(this.axiosClient, Object.assign(Object.assign({}, filter), { cursorOptions: options }));
}
deleteFeedback(filter) {
return (0, feedback_1.deleteFeedback)(this.axiosClient, filter);
}
getFeedbacks(type, options) {
if (type) {
return (0, feedback_1.getFeedbacksByType)(this.axiosClient, {
type,
cursorOptions: options,
});
}
else {
return (0, feedback_1.getFeedbacks)(this.axiosClient, options);
}
}
insertFeedbacks(feedbacksList) {
return (0, feedback_1.insertFeedbacks)(this.axiosClient, feedbacksList);
}
upsertFeedbacks(feedbacksList) {
return (0, feedback_1.upsertFeedbacks)(this.axiosClient, feedbacksList);
}
getItemFeedback(itemId) {
return (0, feedback_1.itemFeedbacks)(this.axiosClient, itemId);
}
getItemFeedbackByType(itemId, feedbackType) {
return (0, feedback_1.itemFeedbackByType)(this.axiosClient, { itemId, feedbackType });
}
getUserFeedback(userId) {
return (0, feedback_1.userFeedbacks)(this.axiosClient, userId);
}
getUserFeedbackByType(userId, feedbackType) {
return (0, feedback_1.userFeedbackByType)(this.axiosClient, { userId, feedbackType });
}
// Item
upsertItem(data) {
return (0, item_1.upsertItem)(this.axiosClient, data);
}
getItem(id) {
return (0, item_1.getItem)(this.axiosClient, id);
}
deleteItem(id) {
return (0, item_1.deleteItem)(this.axiosClient, id);
}
updateItem(id, data) {
return (0, item_1.updateItem)(this.axiosClient, id, data);
}
insertItemCategory(id, category) {
return (0, item_1.insertItemCategory)(this.axiosClient, id, category);
}
deleteItemCategory(id, category) {
return (0, item_1.deleteItemCategory)(this.axiosClient, id, category);
}
getItems(options) {
return (0, item_1.getItems)(this.axiosClient, options);
}
upsertItems(items) {
return (0, item_1.upsertItems)(this.axiosClient, items);
}
getItemNeighbors(options) {
return (0, item_1.getItemNeighbors)(this.axiosClient, options);
}
// User
insertUser(userData) {
return (0, user_1.insertUser)(this.axiosClient, userData);
}
getUser(userId) {
return (0, user_1.getUser)(this.axiosClient, userId);
}
deleteUser(userId) {
return (0, user_1.deleteUser)(this.axiosClient, userId);
}
updateUser(userId, userData) {
return (0, user_1.updateUser)(this.axiosClient, userId, userData);
}
getUsers(options) {
return (0, user_1.getUsers)(this.axiosClient, options);
}
insertUsers(users) {
return (0, user_1.insertUsers)(this.axiosClient, users);
}
getUserNeighbors(options) {
return (0, user_1.getUserNeighbors)(this.axiosClient, options);
}
}
exports.Gorse = Gorse;
//# sourceMappingURL=client.js.map