mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
113 lines
2.8 KiB
TypeScript
113 lines
2.8 KiB
TypeScript
import { User as dbUser } from '@entity/User'
|
|
import { ObjectType, Field, Int } from 'type-graphql'
|
|
|
|
import { GmsPublishLocationType } from '@enum/GmsPublishLocationType'
|
|
import { PublishNameType } from '@enum/PublishNameType'
|
|
|
|
import { KlickTipp } from './KlickTipp'
|
|
|
|
@ObjectType()
|
|
export class User {
|
|
constructor(user: dbUser | null) {
|
|
if (user) {
|
|
this.id = user.id
|
|
this.foreign = user.foreign
|
|
this.communityUuid = user.communityUuid
|
|
if (user.community) {
|
|
this.communityName = user.community.name
|
|
}
|
|
this.gradidoID = user.gradidoID
|
|
this.alias = user.alias
|
|
if (user.emailContact) {
|
|
this.emailChecked = user.emailContact.emailChecked
|
|
}
|
|
this.firstName = user.firstName
|
|
this.lastName = user.lastName
|
|
this.deletedAt = user.deletedAt
|
|
this.createdAt = user.createdAt
|
|
this.language = user.language
|
|
this.publisherId = user.publisherId
|
|
this.roles = user.userRoles?.map((userRole) => userRole.role) ?? []
|
|
this.klickTipp = null
|
|
this.hasElopage = null
|
|
this.hideAmountGDD = user.hideAmountGDD
|
|
this.hideAmountGDT = user.hideAmountGDT
|
|
this.humhubAllowed = user.humhubAllowed
|
|
this.gmsAllowed = user.gmsAllowed
|
|
this.gmsPublishName = user.gmsPublishName
|
|
this.humhubPublishName = user.humhubPublishName
|
|
this.gmsPublishLocation = user.gmsPublishLocation
|
|
}
|
|
}
|
|
|
|
@Field(() => Int)
|
|
id: number
|
|
|
|
@Field(() => Boolean)
|
|
foreign: boolean
|
|
|
|
@Field(() => String)
|
|
communityUuid: string
|
|
|
|
@Field(() => String, { nullable: true })
|
|
communityName: string | null
|
|
|
|
@Field(() => String)
|
|
gradidoID: string
|
|
|
|
@Field(() => String, { nullable: true })
|
|
alias: string | null
|
|
|
|
@Field(() => String, { nullable: true })
|
|
firstName: string | null
|
|
|
|
@Field(() => String, { nullable: true })
|
|
lastName: string | null
|
|
|
|
@Field(() => Date, { nullable: true })
|
|
deletedAt: Date | null
|
|
|
|
@Field(() => Date)
|
|
createdAt: Date
|
|
|
|
@Field(() => Boolean)
|
|
emailChecked: boolean
|
|
|
|
@Field(() => String)
|
|
language: string
|
|
|
|
@Field(() => Boolean)
|
|
hideAmountGDD: boolean
|
|
|
|
@Field(() => Boolean)
|
|
hideAmountGDT: boolean
|
|
|
|
@Field(() => Boolean)
|
|
humhubAllowed: boolean
|
|
|
|
@Field(() => Boolean)
|
|
gmsAllowed: boolean
|
|
|
|
@Field(() => PublishNameType, { nullable: true })
|
|
gmsPublishName: PublishNameType | null
|
|
|
|
@Field(() => PublishNameType, { nullable: true })
|
|
humhubPublishName: PublishNameType | null
|
|
|
|
@Field(() => GmsPublishLocationType, { nullable: true })
|
|
gmsPublishLocation: GmsPublishLocationType | null
|
|
|
|
// This is not the users publisherId, but the one of the users who recommend him
|
|
@Field(() => Int, { nullable: true })
|
|
publisherId: number | null
|
|
|
|
@Field(() => KlickTipp, { nullable: true })
|
|
klickTipp: KlickTipp | null
|
|
|
|
@Field(() => Boolean, { nullable: true })
|
|
hasElopage: boolean | null
|
|
|
|
@Field(() => [String])
|
|
roles: string[]
|
|
}
|