createUser returns User object, adopt mutations, reduce db calls in seed

This commit is contained in:
Moriz Wahl 2022-03-17 08:40:02 +01:00
parent 2bdd508679
commit 1182b94075
4 changed files with 35 additions and 26 deletions

View File

@ -313,10 +313,10 @@ export class UserResolver {
}
@Authorized([RIGHTS.CREATE_USER])
@Mutation(() => String)
@Mutation(() => User)
async createUser(
@Args() { email, firstName, lastName, language, publisherId }: CreateUserArgs,
): Promise<string> {
): Promise<User> {
// TODO: wrong default value (should be null), how does graphql work here? Is it an required field?
// default int publisher_id = 0;
@ -396,7 +396,7 @@ export class UserResolver {
} finally {
await queryRunner.release()
}
return 'success'
return new User(dbUser)
}
// THis is used by the admin only - should we move it to the admin resolver?

View File

@ -11,19 +11,23 @@ export const userFactory = async (
): Promise<void> => {
const { mutate } = client
await mutate({ mutation: createUser, variables: user })
let dbUser = await User.findOneOrFail({ where: { email: user.email } })
const {
data: {
createUser: { id },
},
} = await mutate({ mutation: createUser, variables: user })
if (user.emailChecked) {
const optin = await LoginEmailOptIn.findOneOrFail({ where: { userId: dbUser.id } })
const optin = await LoginEmailOptIn.findOneOrFail({ userId: id })
await mutate({
mutation: setPassword,
variables: { password: 'Aa12345_', code: optin.verificationCode },
})
}
// refetch data
dbUser = await User.findOneOrFail({ where: { email: user.email } })
if (user.createdAt || user.deletedAt || user.isAdmin) {
// get user from database
const dbUser = await User.findOneOrFail({ id })
if (user.createdAt || user.deletedAt) {
if (user.createdAt) dbUser.createdAt = user.createdAt
@ -43,4 +47,5 @@ export const userFactory = async (
admin.modified = dbUser.createdAt
await admin.save()
}
}
}

View File

@ -52,7 +52,9 @@ export const createUser = gql`
lastName: $lastName
language: $language
publisherId: $publisherId
)
) {
id
}
}
`

View File

@ -52,7 +52,9 @@ export const createUser = gql`
lastName: $lastName
language: $language
publisherId: $publisherId
)
) {
id
}
}
`