first commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import { createSupabaseServiceRoleClient } from "@/lib/supabase/service-role";
|
||||
import type { AppUserSettings } from "@/types/app/user";
|
||||
|
||||
export async function getUserSettings(userId: string) {
|
||||
const supabase = createSupabaseServiceRoleClient();
|
||||
const { data, error } = await supabase
|
||||
.from("wg_user_settings")
|
||||
.select("user_id,preferences,download_preferences,updated_at")
|
||||
.eq("user_id", userId)
|
||||
.maybeSingle<AppUserSettings>();
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (data) {
|
||||
return data;
|
||||
}
|
||||
|
||||
const { data: created, error: createError } = await supabase
|
||||
.from("wg_user_settings")
|
||||
.insert({
|
||||
user_id: userId,
|
||||
preferences: {},
|
||||
download_preferences: {},
|
||||
})
|
||||
.select("user_id,preferences,download_preferences,updated_at")
|
||||
.single<AppUserSettings>();
|
||||
|
||||
if (createError) {
|
||||
throw createError;
|
||||
}
|
||||
|
||||
return created;
|
||||
}
|
||||
|
||||
export async function updateUserSettings({
|
||||
downloadPreferences,
|
||||
preferences,
|
||||
userId,
|
||||
}: {
|
||||
downloadPreferences?: Record<string, unknown>;
|
||||
preferences?: Record<string, unknown>;
|
||||
userId: string;
|
||||
}) {
|
||||
const current = await getUserSettings(userId);
|
||||
const supabase = createSupabaseServiceRoleClient();
|
||||
const { data, error } = await supabase
|
||||
.from("wg_user_settings")
|
||||
.update({
|
||||
preferences: preferences ?? current.preferences,
|
||||
download_preferences:
|
||||
downloadPreferences ?? current.download_preferences,
|
||||
})
|
||||
.eq("user_id", userId)
|
||||
.select("user_id,preferences,download_preferences,updated_at")
|
||||
.single<AppUserSettings>();
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
Reference in New Issue
Block a user