Files
payload/test/custom-graphql/config.ts
2024-03-08 14:42:24 -05:00

60 lines
1.6 KiB
TypeScript

import { commitTransaction } from '../../packages/payload/src/utilities/commitTransaction.js'
import { initTransaction } from '../../packages/payload/src/utilities/initTransaction.js'
import { killTransaction } from '../../packages/payload/src/utilities/killTransaction.js'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js'
const resolveTransactionId = async (_obj, _args, context) => {
try {
const shouldCommit = await initTransaction(context.req)
const transactionID = context.req.transactionID
if (shouldCommit) {
await commitTransaction(context.req)
}
return transactionID ? String(transactionID) : null
} catch (e) {
await killTransaction(context.req)
throw e
}
}
export default buildConfigWithDefaults({
collections: [],
globals: [],
graphQL: {
queries: (GraphQL) => {
return {
TransactionID1: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
TransactionID2: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
}
},
mutations: (GraphQL) => {
return {
MutateTransactionID1: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
MutateTransactionID2: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
}
},
},
onInit: async (payload) => {
await payload.create({
collection: 'users',
data: {
email: devUser.email,
password: devUser.password,
},
})
},
})