Laravel Lighthouse自定义解析器,用于嵌套hasMany / belongsTo突变

时间:2020-09-23 12:50:14

标签: laravel graphql laravel-lighthouse

我有一个Profile字段的reservedDates模型(hasMany)。 dates表具有以下列:idprofile_iddate

使用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可以将它们应用于突变/输入吗?

0 个答案:

没有答案