我有一个Profile
字段的reservedDates
模型(hasMany)。 dates
表具有以下列:id
,profile_id
和date
使用Lighthouse默认nested mutation directive/resolvers时,我可以执行以下操作,但是更新这些代码所需的代码远非理想:
input SetReservedDates {
delete: [ID!]
upsert: [DriverAvailibilityExceptionInput!]
}
input ProfileInput {
id: ID!
reservedDates: SetReservedDates
}
因此,当我们更新reserveDates时,我需要知道已删除哪个日期(通过ID),传递具有ID的现有日期并添加新日期。像这样的东西:
mutation {
updateProfile(input: {
id: 1,
reservedDates: [
delete: [14, 42],
upsert: [{id: 17, date: "2020-07-14"}, {date: "2021-04-01"}]
]
}) {}
}
通过这种设置,前端需要执行大多数我希望在后端执行的逻辑。
理想的API是将一组日期传递给此字段,并在laravel中执行“魔术”高位插入/删除操作。例如:
mutation {
updateProfile(input: {
id: 1,
reservedDates: ["2020-07-14", "2021-04-01"]
}) {}
}
有可能吗?也许使用FieldMiddleware resolver可以将它们应用于突变/输入吗?