Files
calebburke.dev/web/src/api/users/preferences-api.ts
T
2026-07-17 04:39:18 -07:00

33 lines
725 B
TypeScript

import http from "@/api/http-client"
/** Keep in sync with api/src/models/user-preference.ts */
export enum PreferenceKeys {
FLASHCARDS_DAY_STREAK = "flashcards.day_streak",
}
export type PreferenceValueMap = {
[PreferenceKeys.FLASHCARDS_DAY_STREAK]: number
}
export type Preference = {
key: PreferenceKeys
value: unknown | null
}
export type PreferenceAsShow = Preference
export const preferencesApi = {
async upsert<K extends PreferenceKeys>(
userId: number,
key: K,
value: PreferenceValueMap[K] | null
): Promise<{ message: string }> {
const { data } = await http.patch(`/api/users/${userId}/preferences/${key}`, {
value,
})
return data
},
}
export default preferencesApi