59 lines
1.4 KiB
TypeScript
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,
|
|
},
|
|
})
|
|
},
|
|
})
|