diff options
| author | Fuwn <[email protected]> | 2024-02-12 08:55:11 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-12 08:55:11 -0800 |
| commit | 0fbeaaf6237b62d5220da0418d05cae4487f29bf (patch) | |
| tree | 036ea9187a07d860e0d65373a8ee5a3137b758f5 /src/lib/Database | |
| parent | fix(anime): new list on new episode (diff) | |
| download | due.moe-0fbeaaf6237b62d5220da0418d05cae4487f29bf.tar.xz due.moe-0fbeaaf6237b62d5220da0418d05cae4487f29bf.zip | |
feat(settings): settings sync
Diffstat (limited to 'src/lib/Database')
| -rw-r--r-- | src/lib/Database/userConfiguration.ts | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/lib/Database/userConfiguration.ts b/src/lib/Database/userConfiguration.ts index 5e2f0c96..1b6f152e 100644 --- a/src/lib/Database/userConfiguration.ts +++ b/src/lib/Database/userConfiguration.ts @@ -2,11 +2,16 @@ import supabase from './supabase'; interface UserConfiguration { user_id: number; - configuration: any; + configuration: JSON; created_at: string; updated_at: string; } +interface NewUserConfiguration { + configuration: JSON; + updated_at?: string; +} + export const getUserConfiguration = async (userId: number) => { const { data, error } = await supabase .from('user_configuration') @@ -18,12 +23,18 @@ export const getUserConfiguration = async (userId: number) => { return data[0] as UserConfiguration; }; -export const setUserConfiguration = async (userId: number, configuration: UserConfiguration) => { +export const setUserConfiguration = async (userId: number, configuration: NewUserConfiguration) => { + if (!configuration.updated_at) configuration.updated_at = new Date().toISOString(); + const { data, error } = await supabase .from('user_configuration') - .upsert({ user_id: userId, configuration }); + .upsert( + { user_id: userId, configuration: configuration.configuration }, + { onConflict: 'user_id' } + ) + .select(); if (error || !data || (data as []).length === 0) return null; - return data[0] as UserConfiguration; + return data[0].configuration as UserConfiguration; }; |