generated from alphane/template
Adding a ton of stuff
This commit is contained in:
@@ -1,15 +1,27 @@
|
||||
import { pick } from "lodash"
|
||||
import { isUndefined, pick } from "lodash"
|
||||
|
||||
import { User } from "@/models"
|
||||
import { User, UserPreference } from "@/models"
|
||||
import BaseSerializer from "@/serializers/base-serializer"
|
||||
import {
|
||||
ShowSerializer as UserPreferenceShowSerializer,
|
||||
type UserPreferenceShowView,
|
||||
} from "@/serializers/user-preferences/show-serializer"
|
||||
|
||||
export type UserShowView = Pick<
|
||||
User,
|
||||
"id" | "email" | "firstName" | "lastName" | "displayName" | "roles" | "createdAt" | "updatedAt"
|
||||
>
|
||||
> & {
|
||||
preferences?: UserPreferenceShowView[]
|
||||
}
|
||||
|
||||
export class ShowSerializer extends BaseSerializer<User> {
|
||||
perform(): UserShowView {
|
||||
const { userPreferences } = this.record
|
||||
|
||||
const serializedUserPreferences = isUndefined(userPreferences)
|
||||
? undefined
|
||||
: this.serializeUserPreferences(userPreferences)
|
||||
|
||||
return {
|
||||
...pick(this.record, [
|
||||
"id",
|
||||
@@ -21,8 +33,15 @@ export class ShowSerializer extends BaseSerializer<User> {
|
||||
"createdAt",
|
||||
"updatedAt",
|
||||
]),
|
||||
preferences: serializedUserPreferences,
|
||||
}
|
||||
}
|
||||
|
||||
private serializeUserPreferences(userPreferences: UserPreference[]) {
|
||||
return userPreferences.map((userPreference) =>
|
||||
UserPreferenceShowSerializer.perform(userPreference)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default ShowSerializer
|
||||
|
||||
Reference in New Issue
Block a user