From 1d1de2011a1f2bfc3691382da53f434232b6d877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 26 Aug 2022 20:00:29 +0200 Subject: [PATCH] failed try to load OneToOne relation of user to userConmtact as emailConact-attribut... grrrrrr... --- backend/src/graphql/model/User.ts | 8 +++++--- backend/src/typeorm/repository/User.ts | 3 ++- database/entity/0048-add_user_contacts_table/User.ts | 2 +- .../entity/0048-add_user_contacts_table/UserContact.ts | 3 +-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/backend/src/graphql/model/User.ts b/backend/src/graphql/model/User.ts index a28fe4b69..e64df8294 100644 --- a/backend/src/graphql/model/User.ts +++ b/backend/src/graphql/model/User.ts @@ -12,13 +12,15 @@ export class User { this.gradidoID = user.gradidoID this.alias = user.alias this.emailId = user.emailId - this.email = user.emailContact.email - this.emailContact = user.emailContact + if (user.emailContact) { + this.email = user.emailContact.email + this.emailContact = user.emailContact + this.emailChecked = user.emailContact.emailChecked + } this.firstName = user.firstName this.lastName = user.lastName this.deletedAt = user.deletedAt this.createdAt = user.createdAt - this.emailChecked = user.emailContact.emailChecked this.language = user.language this.publisherId = user.publisherId this.isAdmin = user.isAdmin diff --git a/backend/src/typeorm/repository/User.ts b/backend/src/typeorm/repository/User.ts index 3c859ce0c..b347fae40 100644 --- a/backend/src/typeorm/repository/User.ts +++ b/backend/src/typeorm/repository/User.ts @@ -5,6 +5,7 @@ import { User as DbUser } from '@entity/User' export class UserRepository extends Repository { async findByPubkeyHex(pubkeyHex: string): Promise { const dbUser = await this.createQueryBuilder('user') + .leftJoinAndSelect('user.emailContact', 'emailContact') .where('hex(user.pubKey) = :pubkeyHex', { pubkeyHex }) .getOneOrFail() /* @@ -24,7 +25,7 @@ export class UserRepository extends Repository { currentPage: number, pageSize: number, ): Promise<[DbUser[], number]> { - const query = await this.createQueryBuilder('user') + const query = this.createQueryBuilder('user') .select(select) .withDeleted() .where( diff --git a/database/entity/0048-add_user_contacts_table/User.ts b/database/entity/0048-add_user_contacts_table/User.ts index 40bfa601a..6c4bf52f1 100644 --- a/database/entity/0048-add_user_contacts_table/User.ts +++ b/database/entity/0048-add_user_contacts_table/User.ts @@ -43,7 +43,7 @@ export class User extends BaseEntity { @Column({ length: 255, unique: true, nullable: false, collation: 'utf8mb4_unicode_ci' }) email: string */ - @OneToOne(() => UserContact) + @OneToOne(() => UserContact, (emailContact) => emailContact.userId) @JoinColumn({ name: 'email_id' }) emailContact: UserContact diff --git a/database/entity/0048-add_user_contacts_table/UserContact.ts b/database/entity/0048-add_user_contacts_table/UserContact.ts index 936e433a6..942a7de4f 100644 --- a/database/entity/0048-add_user_contacts_table/UserContact.ts +++ b/database/entity/0048-add_user_contacts_table/UserContact.ts @@ -23,8 +23,7 @@ export class UserContact extends BaseEntity { }) type: string - @OneToOne(() => User) - @JoinColumn({ name: 'user_id' }) + @OneToOne(() => User, (user) => user.emailContact) user: User @Column({ name: 'user_id', type: 'int', unsigned: true, nullable: false })