refactor: userpreferences are now in the DB
This commit is contained in:
28
src/app/api/user-preferences/column-visibility/route.ts
Normal file
28
src/app/api/user-preferences/column-visibility/route.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { userPreferencesService } from '@/services/user-preferences';
|
||||
|
||||
/**
|
||||
* PATCH /api/user-preferences/column-visibility - Met à jour partiellement la visibilité des colonnes
|
||||
*/
|
||||
export async function PATCH(request: NextRequest) {
|
||||
try {
|
||||
const updates = await request.json();
|
||||
|
||||
const current = await userPreferencesService.getColumnVisibility();
|
||||
await userPreferencesService.saveColumnVisibility({ ...current, ...updates });
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: 'Visibilité des colonnes mise à jour avec succès'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la mise à jour de la visibilité des colonnes:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la mise à jour de la visibilité des colonnes'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
76
src/app/api/user-preferences/kanban-filters/route.ts
Normal file
76
src/app/api/user-preferences/kanban-filters/route.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { userPreferencesService } from '@/services/user-preferences';
|
||||
|
||||
/**
|
||||
* GET /api/user-preferences/kanban-filters - Récupère les filtres Kanban
|
||||
*/
|
||||
export async function GET() {
|
||||
try {
|
||||
const filters = await userPreferencesService.getKanbanFilters();
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
data: filters
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la récupération des filtres Kanban:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la récupération des filtres Kanban'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT /api/user-preferences/kanban-filters - Met à jour les filtres Kanban
|
||||
*/
|
||||
export async function PUT(request: NextRequest) {
|
||||
try {
|
||||
const filters = await request.json();
|
||||
|
||||
await userPreferencesService.saveKanbanFilters(filters);
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: 'Filtres Kanban sauvegardés avec succès'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la sauvegarde des filtres Kanban:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la sauvegarde des filtres Kanban'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PATCH /api/user-preferences/kanban-filters - Met à jour partiellement les filtres Kanban
|
||||
*/
|
||||
export async function PATCH(request: NextRequest) {
|
||||
try {
|
||||
const updates = await request.json();
|
||||
|
||||
const current = await userPreferencesService.getKanbanFilters();
|
||||
await userPreferencesService.saveKanbanFilters({ ...current, ...updates });
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: 'Filtres Kanban mis à jour avec succès'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la mise à jour des filtres Kanban:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la mise à jour des filtres Kanban'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
50
src/app/api/user-preferences/route.ts
Normal file
50
src/app/api/user-preferences/route.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { userPreferencesService } from '@/services/user-preferences';
|
||||
|
||||
/**
|
||||
* GET /api/user-preferences - Récupère toutes les préférences utilisateur
|
||||
*/
|
||||
export async function GET() {
|
||||
try {
|
||||
const preferences = await userPreferencesService.getAllPreferences();
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
data: preferences
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la récupération des préférences:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la récupération des préférences'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT /api/user-preferences - Met à jour toutes les préférences utilisateur
|
||||
*/
|
||||
export async function PUT(request: NextRequest) {
|
||||
try {
|
||||
const preferences = await request.json();
|
||||
|
||||
await userPreferencesService.saveAllPreferences(preferences);
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: 'Préférences sauvegardées avec succès'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la sauvegarde des préférences:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la sauvegarde des préférences'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
28
src/app/api/user-preferences/view-preferences/route.ts
Normal file
28
src/app/api/user-preferences/view-preferences/route.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { userPreferencesService } from '@/services/user-preferences';
|
||||
|
||||
/**
|
||||
* PATCH /api/user-preferences/view-preferences - Met à jour partiellement les préférences de vue
|
||||
*/
|
||||
export async function PATCH(request: NextRequest) {
|
||||
try {
|
||||
const updates = await request.json();
|
||||
|
||||
const current = await userPreferencesService.getViewPreferences();
|
||||
await userPreferencesService.saveViewPreferences({ ...current, ...updates });
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
message: 'Préférences de vue mises à jour avec succès'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la mise à jour des préférences de vue:', error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
error: 'Erreur lors de la mise à jour des préférences de vue'
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import { tasksService } from '@/services/tasks';
|
||||
import { tagsService } from '@/services/tags';
|
||||
import { userPreferencesService } from '@/services/user-preferences';
|
||||
import { HomePageClient } from '@/components/HomePageClient';
|
||||
|
||||
// Force dynamic rendering (no static generation)
|
||||
@@ -7,10 +8,11 @@ export const dynamic = 'force-dynamic';
|
||||
|
||||
export default async function HomePage() {
|
||||
// SSR - Récupération des données côté serveur
|
||||
const [initialTasks, initialStats, initialTags] = await Promise.all([
|
||||
const [initialTasks, initialStats, initialTags, initialPreferences] = await Promise.all([
|
||||
tasksService.getTasks(),
|
||||
tasksService.getTaskStats(),
|
||||
tagsService.getTags()
|
||||
tagsService.getTags(),
|
||||
userPreferencesService.getAllPreferences()
|
||||
]);
|
||||
|
||||
return (
|
||||
@@ -18,6 +20,7 @@ export default async function HomePage() {
|
||||
initialTasks={initialTasks}
|
||||
initialStats={initialStats}
|
||||
initialTags={initialTags}
|
||||
initialPreferences={initialPreferences}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user