graphql-engine/server/src-lib/Hasura/Base
Samir Talwar 40617719ef server: Remove the Show instance from QErr and anything that touches it.
We only use these `Show` instances in error messages (where we call
`show` explicitly anyway) and test cases (in which Hspec requires `Show
a` for any `a` in an assertion).

This removes the instance in favor of a custom `showQErr` function
(which serializes the error to JSON). It is then used in certain error
message production which previously called `show` on a `QErr`.

There are two places where we serialize a QErr and then construct a new
QErr from the resulting string. Instead, we modify the existing QErr to
add extra information.

An orphan `Show QErr` instance is retained for tests so that we can have
nice test failure messages.

This is preparation for future changes in which the error message within
`QErr` will not be exposed directly, and therefore will not have a
`Show` instance. That said, it feels like a sensible kind of cleanup
anyway.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4897
GitOrigin-RevId: 8f79f7a356f0aea571156f39aefac242bf751f3a
2022-07-01 11:48:26 +00:00
..
Error.hs server: Remove the Show instance from QErr and anything that touches it. 2022-07-01 11:48:26 +00:00
Instances.hs Rewrite OpenAPI 2022-06-30 12:57:09 +00:00
README.md server: introduce Hasura.Base (take 2) 2021-05-11 15:19:33 +00:00

Hasura.Base

This sub-module contains all code that has no internal dependency except for our custom Prelude: either libraries that are too Hasura-specific to be moved to a dedicated folder outside of Hasura, or type definitions that are used throughout the entire codebase.