Files
my-links/app/user/controllers/display_preferences_controller.ts

27 lines
997 B
TypeScript

import { getDisplayPreferences } from '#shared/lib/display_preferences';
import { updateDisplayPreferencesValidator } from '#user/validators/update_display_preferences';
import { HttpContext } from '@adonisjs/core/http';
export default class DisplayPreferencesController {
async update({ request, response, auth }: HttpContext) {
const { displayPreferences } = await request.validateUsing(
updateDisplayPreferencesValidator
);
const userPrefs = auth.user!.displayPreferences ?? {};
const mergedPrefs = {
linkListDisplay:
displayPreferences.linkListDisplay ??
userPrefs.linkListDisplay ??
getDisplayPreferences().linkListDisplay,
collectionListDisplay:
displayPreferences.collectionListDisplay ??
userPrefs.collectionListDisplay ??
getDisplayPreferences().collectionListDisplay,
};
auth.user!.displayPreferences = mergedPrefs;
console.log(auth.user!.displayPreferences);
await auth.user!.save();
return response.redirect().withQs().back();
}
}