refacto: no user when interract with pref, auto get

This commit is contained in:
Julien Froidefond
2025-02-19 20:46:16 +01:00
parent 73aa6a6b83
commit 8320670e40
2 changed files with 8 additions and 16 deletions

View File

@@ -3,8 +3,7 @@ import { PreferencesService } from "@/lib/services/preferences.service";
export async function GET() { export async function GET() {
try { try {
const user = await PreferencesService.getCurrentUser(); const preferences = await PreferencesService.getPreferences();
const preferences = await PreferencesService.getPreferences(user.id);
return NextResponse.json(preferences); return NextResponse.json(preferences);
} catch (error) { } catch (error) {
console.error("Erreur lors de la récupération des préférences:", error); console.error("Erreur lors de la récupération des préférences:", error);
@@ -15,8 +14,7 @@ export async function GET() {
export async function PUT(request: NextRequest) { export async function PUT(request: NextRequest) {
try { try {
const preferences = await request.json(); const preferences = await request.json();
const user = await PreferencesService.getCurrentUser(); const updatedPreferences = await PreferencesService.updatePreferences(preferences);
const updatedPreferences = await PreferencesService.updatePreferences(user.id, preferences);
return NextResponse.json(updatedPreferences); return NextResponse.json(updatedPreferences);
} catch (error) { } catch (error) {
console.error("Erreur lors de la mise à jour des préférences:", error); console.error("Erreur lors de la mise à jour des préférences:", error);

View File

@@ -12,11 +12,6 @@ export interface UserPreferences {
cacheMode: "memory" | "file"; cacheMode: "memory" | "file";
} }
const defaultPreferences: UserPreferences = {
showThumbnails: true,
cacheMode: "memory",
};
export class PreferencesService { export class PreferencesService {
static async getCurrentUser(): Promise<User> { static async getCurrentUser(): Promise<User> {
const userCookie = cookies().get("stripUser"); const userCookie = cookies().get("stripUser");
@@ -33,9 +28,10 @@ export class PreferencesService {
} }
} }
static async getPreferences(userId: string): Promise<UserPreferences> { static async getPreferences(): Promise<UserPreferences> {
try { try {
const preferences = await PreferencesModel.findOne({ userId }); const user = await this.getCurrentUser();
const preferences = await PreferencesModel.findOne({ userId: user.id });
if (!preferences) { if (!preferences) {
return { return {
showThumbnails: true, showThumbnails: true,
@@ -55,13 +51,11 @@ export class PreferencesService {
} }
} }
static async updatePreferences( static async updatePreferences(preferences: Partial<UserPreferences>): Promise<UserPreferences> {
userId: string,
preferences: Partial<UserPreferences>
): Promise<UserPreferences> {
try { try {
const user = await this.getCurrentUser();
const updatedPreferences = await PreferencesModel.findOneAndUpdate( const updatedPreferences = await PreferencesModel.findOneAndUpdate(
{ userId }, { userId: user.id },
{ $set: preferences }, { $set: preferences },
{ new: true, upsert: true } { new: true, upsert: true }
); );