Files
payload/test/custom-graphql/config.ts
2024-03-19 00:59:56 -04:00

59 lines
1.4 KiB
TypeScript

import { commitTransaction, initTransaction, killTransaction } from 'payload/database'
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,
},
})
},
})