Jonas Rothmann
09/16/2021, 4:34 AMcustomerId: 12
instead of
customer: { connect: { id: 12 } }Ryan
09/16/2021, 6:08 AMJonas Rothmann
09/16/2021, 4:17 PMRyan
09/16/2021, 4:37 PMJonas Rothmann
09/16/2021, 4:38 PMt.field('createVisit', {
type: Visit.$name,
args: {
data: nonNull(
arg({
type: 'VisitInput',
}),
),
},
resolve: async (_, args, context: Context) => {
const latestVisits = await context.prisma.visit.findMany({
orderBy: {
createddate: 'desc'
},
take: 1
})
const data: Record<string, any> = args.data
renameEntry(data, 'productCategoryId', 'categoryId')
renameEntry(data, 'technicianId', 'employeeId')
const caseNumber: number = latestVisits && latestVisits[0] && latestVisits[0].caseNumberInt ? Number(latestVisits[0].caseNumberInt) + 1 : 1
const newVisit = await context.prisma.visit.create({
data: {
createddate: new Date(),
caseNumber: "P01-" + caseNumber.toLocaleString('en-US', {minimumIntegerDigits: 2,useGrouping: false}),
caseNumberInt: caseNumber,
company: { connect: { id: context.user.company }},
...fixRelations(data),
},
})
await context.pubsub.publish('visitCreated', newVisit)
return newVisit
},
})Jonas Rothmann
09/16/2021, 4:40 PMexport const fixRelations = (oldObj: Record<string, any>) => {
const obj = oldObj
Object.keys(obj).forEach(key => {
if(key.endsWith('Id')) {
let value
if(!obj[key]) value = undefined
else value = { connect: { id: obj[key] } }
obj[key.slice(0, -2)] = value
delete obj[key]
}
})
return obj
}Ryan
09/17/2021, 5:47 AMconnect or create? If so this will not work. You cannot mix connect and specifying the id directly. You can only use one of them.Jonas Rothmann
09/17/2021, 6:48 AMRyan
09/17/2021, 7:02 AM