aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Database
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-12 08:55:11 -0800
committerFuwn <[email protected]>2024-02-12 08:55:11 -0800
commit0fbeaaf6237b62d5220da0418d05cae4487f29bf (patch)
tree036ea9187a07d860e0d65373a8ee5a3137b758f5 /src/lib/Database
parentfix(anime): new list on new episode (diff)
downloaddue.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.ts19
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;
};