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.

1 Answer

Thank you for asking the question.

Prisma can handle the createdAt and updatedAt columns for you in your models. Add the @default(now()) and @updatedAt attributes to your createdAt and updatedAt columns respectively. You can add the columns to your models like this:

model Post { id Int @id @default(autoincrement()) title String content String? published Boolean? @default(false) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } 

You can learn more on the @default(now()) and @updatedAt in our docs.

In case you run into any other issues and queries, I'll be happy to help 🙂

3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.