nexus-plugin-prisma icon indicating copy to clipboard operation
nexus-plugin-prisma copied to clipboard

How to handle createdAt and updatedAt with crud globally?

Open Newbie012 opened this issue 4 years ago • 0 comments

First thing I came up with, is by calling computedInputs in the nexusPrisma option. But it won't work since they need to be handled differently depending on the situation, but globally:

1. create -> createdAt = now, updatedAt = null
2. update -> createdAt = keep as it is, updatedAt = now

In order to make it work, I need to set computedInputs individually like so:

t.crud.createOneX({
  computedInputs: {
    createdAt: () => DateTime.utc().toString(),
    updatedAt: () => null,
  },
});

t.crud.updateOneX({
  computedInputs: {
    createdAt: () => undefined,
    updatedAt: () => DateTime.utc().toString(),
  },
});

While this might work, I'm unable to "compute" these inputs on the nested models. In order to prevent passing createdAt/updatedAt, I have to create another t.crud on that resource as well, without these timestamps.

The last workaround for this that might work, is to not use t.crud at all, which is a bummer.

Newbie012 avatar Dec 28 '20 08:12 Newbie012