generated from alphane/template
Adding a ton of stuff
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
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
|
||||
Reference in New Issue
Block a user