UNPKG

gorsejs

Version:

TypeScript SDK for Gorse recommender system.

64 lines (60 loc) 1.38 kB
import { AxiosInstance, AxiosResponse } from "axios"; import { Feedback, Score, LatestOptions, RecommendOptions, SessionRecommendOptions, } from "../interfaces"; export function getLatest( axios: AxiosInstance, { category = "", cursorOptions }: LatestOptions, ) { return axios .get<Score[], AxiosResponse<Score[]>>(`/latest/${category}`, { params: cursorOptions, }) .then(({ data }) => { return data; }); } export function getRecommend( axios: AxiosInstance, { userId, category = "", cursorOptions, writeBackType, writeBackDelay, }: RecommendOptions, ) { return axios .get<string[], AxiosResponse<string[]>>( `/recommend/${userId}/${category}`, { params: { ...(writeBackType ? { "write-back-type": writeBackType } : {}), ...(writeBackDelay ? { "write-back-delay": writeBackDelay } : {}), ...cursorOptions, }, }, ) .then(({ data }) => { return data; }); } export function getSessionRecommend<T extends string>( axios: AxiosInstance, feedbackList: Feedback<T>[] = [], { category = "", cursorOptions }: SessionRecommendOptions, ) { return axios .post(`/session/recommend/${category}`, feedbackList, { params: { ...cursorOptions, }, }) .then(({ data }) => { return data; }); }