mirror of
https://github.com/IT4Change/gradido.git
synced 2026-04-06 01:25:28 +00:00
copy queries and mutations from frontend and use them
This commit is contained in:
parent
121d2b9853
commit
b30f4dfa5d
@ -1,9 +1,15 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||||
|
|
||||||
import { testEnvironment, createUser, headerPushMock, cleanDB, resetToken } from '@test/helpers'
|
import {
|
||||||
import { createUserMutation, setPasswordMutation } from '@test/graphql'
|
testEnvironment,
|
||||||
import gql from 'graphql-tag'
|
createConfirmedUser,
|
||||||
|
headerPushMock,
|
||||||
|
cleanDB,
|
||||||
|
resetToken,
|
||||||
|
} from '@test/helpers'
|
||||||
|
import { createUser, setPassword } from '@/seeds/graphql/mutations'
|
||||||
|
import { login, logout } from '@/seeds/graphql/queries'
|
||||||
import { GraphQLError } from 'graphql'
|
import { GraphQLError } from 'graphql'
|
||||||
import { LoginEmailOptIn } from '@entity/LoginEmailOptIn'
|
import { LoginEmailOptIn } from '@entity/LoginEmailOptIn'
|
||||||
import { User } from '@entity/User'
|
import { User } from '@entity/User'
|
||||||
@ -11,8 +17,6 @@ import CONFIG from '@/config'
|
|||||||
import { sendAccountActivationEmail } from '@/mailer/sendAccountActivationEmail'
|
import { sendAccountActivationEmail } from '@/mailer/sendAccountActivationEmail'
|
||||||
// import { klicktippSignIn } from '@/apis/KlicktippController'
|
// import { klicktippSignIn } from '@/apis/KlicktippController'
|
||||||
|
|
||||||
jest.setTimeout(1000000)
|
|
||||||
|
|
||||||
jest.mock('@/mailer/sendAccountActivationEmail', () => {
|
jest.mock('@/mailer/sendAccountActivationEmail', () => {
|
||||||
return {
|
return {
|
||||||
__esModule: true,
|
__esModule: true,
|
||||||
@ -31,24 +35,6 @@ jest.mock('@/apis/KlicktippController', () => {
|
|||||||
|
|
||||||
let mutate: any, query: any, con: any
|
let mutate: any, query: any, con: any
|
||||||
|
|
||||||
const loginQuery = gql`
|
|
||||||
query ($email: String!, $password: String!, $publisherId: Int) {
|
|
||||||
login(email: $email, password: $password, publisherId: $publisherId) {
|
|
||||||
email
|
|
||||||
firstName
|
|
||||||
lastName
|
|
||||||
language
|
|
||||||
coinanimation
|
|
||||||
klickTipp {
|
|
||||||
newsletterState
|
|
||||||
}
|
|
||||||
hasElopage
|
|
||||||
publisherId
|
|
||||||
isAdmin
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
const testEnv = await testEnvironment()
|
const testEnv = await testEnvironment()
|
||||||
mutate = testEnv.mutate
|
mutate = testEnv.mutate
|
||||||
@ -77,7 +63,7 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
jest.clearAllMocks()
|
jest.clearAllMocks()
|
||||||
result = await mutate({ mutation: createUserMutation, variables })
|
result = await mutate({ mutation: createUser, variables })
|
||||||
})
|
})
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@ -149,7 +135,7 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('email already exists', () => {
|
describe('email already exists', () => {
|
||||||
it('throws an error', async () => {
|
it('throws an error', async () => {
|
||||||
await expect(mutate({ mutation: createUserMutation, variables })).resolves.toEqual(
|
await expect(mutate({ mutation: createUser, variables })).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('User already exists.')],
|
errors: [new GraphQLError('User already exists.')],
|
||||||
}),
|
}),
|
||||||
@ -160,7 +146,7 @@ describe('UserResolver', () => {
|
|||||||
describe('unknown language', () => {
|
describe('unknown language', () => {
|
||||||
it('sets "de" as default language', async () => {
|
it('sets "de" as default language', async () => {
|
||||||
await mutate({
|
await mutate({
|
||||||
mutation: createUserMutation,
|
mutation: createUser,
|
||||||
variables: { ...variables, email: 'bibi@bloxberg.de', language: 'es' },
|
variables: { ...variables, email: 'bibi@bloxberg.de', language: 'es' },
|
||||||
})
|
})
|
||||||
await expect(User.find()).resolves.toEqual(
|
await expect(User.find()).resolves.toEqual(
|
||||||
@ -177,7 +163,7 @@ describe('UserResolver', () => {
|
|||||||
describe('no publisher id', () => {
|
describe('no publisher id', () => {
|
||||||
it('sets publisher id to null', async () => {
|
it('sets publisher id to null', async () => {
|
||||||
await mutate({
|
await mutate({
|
||||||
mutation: createUserMutation,
|
mutation: createUser,
|
||||||
variables: { ...variables, email: 'raeuber@hotzenplotz.de', publisherId: undefined },
|
variables: { ...variables, email: 'raeuber@hotzenplotz.de', publisherId: undefined },
|
||||||
})
|
})
|
||||||
await expect(User.find()).resolves.toEqual(
|
await expect(User.find()).resolves.toEqual(
|
||||||
@ -208,11 +194,11 @@ describe('UserResolver', () => {
|
|||||||
let newUser: any
|
let newUser: any
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await mutate({ mutation: createUserMutation, variables: createUserVariables })
|
await mutate({ mutation: createUser, variables: createUserVariables })
|
||||||
const loginEmailOptIn = await LoginEmailOptIn.find()
|
const loginEmailOptIn = await LoginEmailOptIn.find()
|
||||||
emailOptIn = loginEmailOptIn[0].verificationCode.toString()
|
emailOptIn = loginEmailOptIn[0].verificationCode.toString()
|
||||||
result = await mutate({
|
result = await mutate({
|
||||||
mutation: setPasswordMutation,
|
mutation: setPassword,
|
||||||
variables: { code: emailOptIn, password: 'Aa12345_' },
|
variables: { code: emailOptIn, password: 'Aa12345_' },
|
||||||
})
|
})
|
||||||
newUser = await User.find()
|
newUser = await User.find()
|
||||||
@ -252,11 +238,11 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('no valid password', () => {
|
describe('no valid password', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await mutate({ mutation: createUserMutation, variables: createUserVariables })
|
await mutate({ mutation: createUser, variables: createUserVariables })
|
||||||
const loginEmailOptIn = await LoginEmailOptIn.find()
|
const loginEmailOptIn = await LoginEmailOptIn.find()
|
||||||
emailOptIn = loginEmailOptIn[0].verificationCode.toString()
|
emailOptIn = loginEmailOptIn[0].verificationCode.toString()
|
||||||
result = await mutate({
|
result = await mutate({
|
||||||
mutation: setPasswordMutation,
|
mutation: setPassword,
|
||||||
variables: { code: emailOptIn, password: 'not-valid' },
|
variables: { code: emailOptIn, password: 'not-valid' },
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -280,9 +266,9 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('no valid optin code', () => {
|
describe('no valid optin code', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await mutate({ mutation: createUserMutation, variables: createUserVariables })
|
await mutate({ mutation: createUser, variables: createUserVariables })
|
||||||
result = await mutate({
|
result = await mutate({
|
||||||
mutation: setPasswordMutation,
|
mutation: setPassword,
|
||||||
variables: { code: 'not valid', password: 'Aa12345_' },
|
variables: { code: 'not valid', password: 'Aa12345_' },
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -316,7 +302,7 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('no users in database', () => {
|
describe('no users in database', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
result = await query({ query: loginQuery, variables })
|
result = await query({ query: login, variables })
|
||||||
})
|
})
|
||||||
|
|
||||||
it('throws an error', () => {
|
it('throws an error', () => {
|
||||||
@ -330,14 +316,14 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('user is in database and correct login data', () => {
|
describe('user is in database and correct login data', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await createUser(mutate, {
|
await createConfirmedUser(mutate, {
|
||||||
email: 'peter@lustig.de',
|
email: 'peter@lustig.de',
|
||||||
firstName: 'Peter',
|
firstName: 'Peter',
|
||||||
lastName: 'Lustig',
|
lastName: 'Lustig',
|
||||||
language: 'de',
|
language: 'de',
|
||||||
publisherId: 1234,
|
publisherId: 1234,
|
||||||
})
|
})
|
||||||
result = await query({ query: loginQuery, variables })
|
result = await query({ query: login, variables })
|
||||||
})
|
})
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@ -373,7 +359,7 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
describe('user is in database and wrong password', () => {
|
describe('user is in database and wrong password', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await createUser(mutate, {
|
await createConfirmedUser(mutate, {
|
||||||
email: 'peter@lustig.de',
|
email: 'peter@lustig.de',
|
||||||
firstName: 'Peter',
|
firstName: 'Peter',
|
||||||
lastName: 'Lustig',
|
lastName: 'Lustig',
|
||||||
@ -388,7 +374,7 @@ describe('UserResolver', () => {
|
|||||||
|
|
||||||
it('returns an error', () => {
|
it('returns an error', () => {
|
||||||
expect(
|
expect(
|
||||||
query({ query: loginQuery, variables: { ...variables, password: 'wrong' } }),
|
query({ query: login, variables: { ...variables, password: 'wrong' } }),
|
||||||
).resolves.toEqual(
|
).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('No user with this credentials')],
|
errors: [new GraphQLError('No user with this credentials')],
|
||||||
@ -399,16 +385,10 @@ describe('UserResolver', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('logout', () => {
|
describe('logout', () => {
|
||||||
const logoutQuery = gql`
|
|
||||||
query {
|
|
||||||
logout
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
describe('unauthenticated', () => {
|
describe('unauthenticated', () => {
|
||||||
it('throws an error', async () => {
|
it('throws an error', async () => {
|
||||||
resetToken()
|
resetToken()
|
||||||
await expect(query({ query: logoutQuery })).resolves.toEqual(
|
await expect(query({ query: logout })).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
errors: [new GraphQLError('401 Unauthorized')],
|
errors: [new GraphQLError('401 Unauthorized')],
|
||||||
}),
|
}),
|
||||||
@ -423,14 +403,14 @@ describe('UserResolver', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await createUser(mutate, {
|
await createConfirmedUser(mutate, {
|
||||||
email: 'peter@lustig.de',
|
email: 'peter@lustig.de',
|
||||||
firstName: 'Peter',
|
firstName: 'Peter',
|
||||||
lastName: 'Lustig',
|
lastName: 'Lustig',
|
||||||
language: 'de',
|
language: 'de',
|
||||||
publisherId: 1234,
|
publisherId: 1234,
|
||||||
})
|
})
|
||||||
await query({ query: loginQuery, variables })
|
await query({ query: login, variables })
|
||||||
})
|
})
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@ -438,7 +418,7 @@ describe('UserResolver', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('returns true', async () => {
|
it('returns true', async () => {
|
||||||
await expect(query({ query: logoutQuery })).resolves.toEqual(
|
await expect(query({ query: logout })).resolves.toEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
data: { logout: 'true' },
|
data: { logout: 'true' },
|
||||||
errors: undefined,
|
errors: undefined,
|
||||||
|
|||||||
9
backend/src/seeds/graphql/enums.ts
Normal file
9
backend/src/seeds/graphql/enums.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export const GdtEntryType = {
|
||||||
|
FORM: 'FORM',
|
||||||
|
CVS: 'CVS',
|
||||||
|
ELOPAGE: 'ELOPAGE',
|
||||||
|
ELOPAGE_PUBLISHER: 'ELOPAGE_PUBLISHER',
|
||||||
|
DIGISTORE: 'DIGISTORE',
|
||||||
|
CVS2: 'CVS2',
|
||||||
|
GLOBAL_MODIFICATOR: 'GLOBAL_MODIFICATOR',
|
||||||
|
}
|
||||||
71
backend/src/seeds/graphql/mutations.ts
Normal file
71
backend/src/seeds/graphql/mutations.ts
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
|
export const subscribeNewsletter = gql`
|
||||||
|
mutation ($email: String!, $language: String!) {
|
||||||
|
subscribeNewsletter(email: $email, language: $language)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const unsubscribeNewsletter = gql`
|
||||||
|
mutation ($email: String!) {
|
||||||
|
unsubscribeNewsletter(email: $email)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const setPassword = gql`
|
||||||
|
mutation ($code: String!, $password: String!) {
|
||||||
|
setPassword(code: $code, password: $password)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const updateUserInfos = gql`
|
||||||
|
mutation (
|
||||||
|
$firstName: String
|
||||||
|
$lastName: String
|
||||||
|
$password: String
|
||||||
|
$passwordNew: String
|
||||||
|
$locale: String
|
||||||
|
$coinanimation: Boolean
|
||||||
|
) {
|
||||||
|
updateUserInfos(
|
||||||
|
firstName: $firstName
|
||||||
|
lastName: $lastName
|
||||||
|
password: $password
|
||||||
|
passwordNew: $passwordNew
|
||||||
|
language: $locale
|
||||||
|
coinanimation: $coinanimation
|
||||||
|
)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const createUser = gql`
|
||||||
|
mutation (
|
||||||
|
$firstName: String!
|
||||||
|
$lastName: String!
|
||||||
|
$email: String!
|
||||||
|
$language: String!
|
||||||
|
$publisherId: Int
|
||||||
|
) {
|
||||||
|
createUser(
|
||||||
|
email: $email
|
||||||
|
firstName: $firstName
|
||||||
|
lastName: $lastName
|
||||||
|
language: $language
|
||||||
|
publisherId: $publisherId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const sendCoins = gql`
|
||||||
|
mutation ($email: String!, $amount: Decimal!, $memo: String!) {
|
||||||
|
sendCoins(email: $email, amount: $amount, memo: $memo)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const createTransactionLink = gql`
|
||||||
|
mutation ($amount: Decimal!, $memo: String!) {
|
||||||
|
createTransactionLink(amount: $amount, memo: $memo) {
|
||||||
|
code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
144
backend/src/seeds/graphql/queries.ts
Normal file
144
backend/src/seeds/graphql/queries.ts
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
|
export const login = gql`
|
||||||
|
query ($email: String!, $password: String!, $publisherId: Int) {
|
||||||
|
login(email: $email, password: $password, publisherId: $publisherId) {
|
||||||
|
email
|
||||||
|
firstName
|
||||||
|
lastName
|
||||||
|
language
|
||||||
|
coinanimation
|
||||||
|
klickTipp {
|
||||||
|
newsletterState
|
||||||
|
}
|
||||||
|
hasElopage
|
||||||
|
publisherId
|
||||||
|
isAdmin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const verifyLogin = gql`
|
||||||
|
query {
|
||||||
|
verifyLogin {
|
||||||
|
email
|
||||||
|
firstName
|
||||||
|
lastName
|
||||||
|
language
|
||||||
|
coinanimation
|
||||||
|
klickTipp {
|
||||||
|
newsletterState
|
||||||
|
}
|
||||||
|
hasElopage
|
||||||
|
publisherId
|
||||||
|
isAdmin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const logout = gql`
|
||||||
|
query {
|
||||||
|
logout
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const transactionsQuery = gql`
|
||||||
|
query (
|
||||||
|
$currentPage: Int = 1
|
||||||
|
$pageSize: Int = 25
|
||||||
|
$order: Order = DESC
|
||||||
|
$onlyCreations: Boolean = false
|
||||||
|
) {
|
||||||
|
transactionList(
|
||||||
|
currentPage: $currentPage
|
||||||
|
pageSize: $pageSize
|
||||||
|
order: $order
|
||||||
|
onlyCreations: $onlyCreations
|
||||||
|
) {
|
||||||
|
balanceGDT
|
||||||
|
count
|
||||||
|
balance
|
||||||
|
decayStartBlock
|
||||||
|
transactions {
|
||||||
|
id
|
||||||
|
typeId
|
||||||
|
amount
|
||||||
|
balance
|
||||||
|
balanceDate
|
||||||
|
memo
|
||||||
|
linkedUser {
|
||||||
|
firstName
|
||||||
|
lastName
|
||||||
|
}
|
||||||
|
decay {
|
||||||
|
decay
|
||||||
|
start
|
||||||
|
end
|
||||||
|
duration
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const sendResetPasswordEmail = gql`
|
||||||
|
query ($email: String!) {
|
||||||
|
sendResetPasswordEmail(email: $email)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const listGDTEntriesQuery = gql`
|
||||||
|
query ($currentPage: Int!, $pageSize: Int!) {
|
||||||
|
listGDTEntries(currentPage: $currentPage, pageSize: $pageSize) {
|
||||||
|
count
|
||||||
|
gdtEntries {
|
||||||
|
id
|
||||||
|
amount
|
||||||
|
date
|
||||||
|
comment
|
||||||
|
gdtEntryType
|
||||||
|
factor
|
||||||
|
gdt
|
||||||
|
}
|
||||||
|
gdtSum
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const communityInfo = gql`
|
||||||
|
query {
|
||||||
|
getCommunityInfo {
|
||||||
|
name
|
||||||
|
description
|
||||||
|
registerUrl
|
||||||
|
url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const communities = gql`
|
||||||
|
query {
|
||||||
|
communities {
|
||||||
|
id
|
||||||
|
name
|
||||||
|
url
|
||||||
|
description
|
||||||
|
registerUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export const queryTransactionLink = gql`
|
||||||
|
query ($code: String!) {
|
||||||
|
queryTransactionLink(code: $code) {
|
||||||
|
amount
|
||||||
|
memo
|
||||||
|
createdAt
|
||||||
|
validUntil
|
||||||
|
user {
|
||||||
|
firstName
|
||||||
|
publisherId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
@ -1,25 +0,0 @@
|
|||||||
import gql from 'graphql-tag'
|
|
||||||
|
|
||||||
export const createUserMutation = gql`
|
|
||||||
mutation (
|
|
||||||
$email: String!
|
|
||||||
$firstName: String!
|
|
||||||
$lastName: String!
|
|
||||||
$language: String!
|
|
||||||
$publisherId: Int
|
|
||||||
) {
|
|
||||||
createUser(
|
|
||||||
email: $email
|
|
||||||
firstName: $firstName
|
|
||||||
lastName: $lastName
|
|
||||||
language: $language
|
|
||||||
publisherId: $publisherId
|
|
||||||
)
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
export const setPasswordMutation = gql`
|
|
||||||
mutation ($code: String!, $password: String!) {
|
|
||||||
setPassword(code: $code, password: $password)
|
|
||||||
}
|
|
||||||
`
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
import { createTestClient } from 'apollo-server-testing'
|
import { createTestClient } from 'apollo-server-testing'
|
||||||
import createServer from '../src/server/createServer'
|
import createServer from '../src/server/createServer'
|
||||||
import { initialize } from '@dbTools/helpers'
|
import { initialize } from '@dbTools/helpers'
|
||||||
import { createUserMutation, setPasswordMutation } from './graphql'
|
import { createUser, setPassword } from '@/seeds/graphql/mutations'
|
||||||
import { LoginEmailOptIn } from '@entity/LoginEmailOptIn'
|
import { LoginEmailOptIn } from '@entity/LoginEmailOptIn'
|
||||||
import { User } from '@entity/User'
|
import { User } from '@entity/User'
|
||||||
import { entities } from '@entity/index'
|
import { entities } from '@entity/index'
|
||||||
@ -46,15 +46,15 @@ export const resetEntity = async (entity: any) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const createUser = async (mutate: any, user: any) => {
|
export const createConfirmedUser = async (mutate: any, user: any) => {
|
||||||
// resetToken()
|
// resetToken()
|
||||||
await mutate({ mutation: createUserMutation, variables: user })
|
await mutate({ mutation: createUser, variables: user })
|
||||||
const dbUser = await User.findOne({ where: { email: user.email } })
|
const dbUser = await User.findOne({ where: { email: user.email } })
|
||||||
if (!dbUser) throw new Error('Ups, no user found')
|
if (!dbUser) throw new Error('Ups, no user found')
|
||||||
const optin = await LoginEmailOptIn.findOne({ where: { userId: dbUser.id } })
|
const optin = await LoginEmailOptIn.findOne({ where: { userId: dbUser.id } })
|
||||||
if (!optin) throw new Error('Ups, no optin found')
|
if (!optin) throw new Error('Ups, no optin found')
|
||||||
await mutate({
|
await mutate({
|
||||||
mutation: setPasswordMutation,
|
mutation: setPassword,
|
||||||
variables: { password: 'Aa12345_', code: optin.verificationCode },
|
variables: { password: 'Aa12345_', code: optin.verificationCode },
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user