diff --git a/app/models/user.ts b/app/models/user.ts index cf8b507..2af279e 100644 --- a/app/models/user.ts +++ b/app/models/user.ts @@ -1,8 +1,29 @@ import { DateTime } from 'luxon' import { BaseModel, column, computed } from '@adonisjs/lucid/orm' import { DbRememberMeTokensProvider } from '@adonisjs/auth/session' +import { HttpContext } from '@adonisjs/core/http' export default class User extends BaseModel { + serializeExtras = true + + serialize() { + const ctx = HttpContext.get() + + if (!ctx || !ctx.request.url().startsWith('/users')) { + this.serializeExtras = false + const serialized = super.serialize() + delete serialized.pastStudentId + delete serialized.extras + return serialized + } + + this.serializeExtras = true + return { + ...super.serialize(), + preferences: this.preferences, + } + } + static rememberMeTokens = DbRememberMeTokensProvider.forModel(User) @column({ isPrimary: true }) @@ -33,6 +54,7 @@ export default class User extends BaseModel { @computed() get preferences(): { name: string; emoji: string; color: string }[] { + if (!this.serializeExtras) return [] return this.extras?.preferences || [] }