UNPKG

gorsejs

Version:

TypeScript SDK for Gorse recommender system.

135 lines 5.15 kB
"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 getPopular(options) { return (0, recommend_1.getPopular)(this.axiosClient, options); } 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(users) { return (0, item_1.upsertItems)(this.axiosClient, users); } 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