feat: allow spreading one-to-many and many-to-many embedded resources
* Note: Aggregates are not implemented
This commit is contained in:
+8
-10
@@ -75,10 +75,10 @@ data ApiRequestError
|
||||
| NoRelBetween Text Text (Maybe Text) Text RelationshipsMap
|
||||
| NoRpc Text Text [Text] MediaType Bool [QualifiedIdentifier] [Routine]
|
||||
| NotEmbedded Text
|
||||
| NotImplemented Text
|
||||
| PutLimitNotAllowedError
|
||||
| QueryParamError QPError
|
||||
| RelatedOrderNotToOne Text Text
|
||||
| SpreadNotToOne Text Text
|
||||
| UnacceptableFilter Text
|
||||
| UnacceptableSchema [Text]
|
||||
| UnsupportedMethod ByteString
|
||||
@@ -123,10 +123,10 @@ instance PgrstError ApiRequestError where
|
||||
status NoRelBetween{} = HTTP.status400
|
||||
status NoRpc{} = HTTP.status404
|
||||
status NotEmbedded{} = HTTP.status400
|
||||
status NotImplemented{} = HTTP.status400
|
||||
status PutLimitNotAllowedError = HTTP.status400
|
||||
status QueryParamError{} = HTTP.status400
|
||||
status RelatedOrderNotToOne{} = HTTP.status400
|
||||
status SpreadNotToOne{} = HTTP.status400
|
||||
status UnacceptableFilter{} = HTTP.status400
|
||||
status UnacceptableSchema{} = HTTP.status406
|
||||
status UnsupportedMethod{} = HTTP.status405
|
||||
@@ -212,12 +212,6 @@ instance JSON.ToJSON ApiRequestError where
|
||||
(Just $ JSON.String $ "'" <> origin <> "' and '" <> target <> "' do not form a many-to-one or one-to-one relationship")
|
||||
Nothing
|
||||
|
||||
toJSON (SpreadNotToOne origin target) = toJsonPgrstError
|
||||
ApiRequestErrorCode19
|
||||
("A spread operation on '" <> target <> "' is not possible")
|
||||
(Just $ JSON.String $ "'" <> origin <> "' and '" <> target <> "' do not form a many-to-one or one-to-one relationship")
|
||||
Nothing
|
||||
|
||||
toJSON (UnacceptableFilter target) = toJsonPgrstError
|
||||
ApiRequestErrorCode20
|
||||
("Bad operator on the '" <> target <> "' embedded resource")
|
||||
@@ -307,6 +301,9 @@ instance JSON.ToJSON ApiRequestError where
|
||||
Nothing
|
||||
(JSON.String <$> tableNotFoundHint schemaName relName tbls)
|
||||
|
||||
toJSON (NotImplemented details) = toJsonPgrstError
|
||||
ApiRequestErrorCode27 "Feature not implemented" (Just $ JSON.String details) Nothing
|
||||
|
||||
-- |
|
||||
-- If no relationship is found then:
|
||||
--
|
||||
@@ -712,7 +709,7 @@ data ErrorCode
|
||||
| ApiRequestErrorCode16
|
||||
| ApiRequestErrorCode17
|
||||
| ApiRequestErrorCode18
|
||||
| ApiRequestErrorCode19
|
||||
-- | ApiRequestErrorCode19 -- no longer used (used to be mapped to SpreadNotToOne)
|
||||
| ApiRequestErrorCode20
|
||||
| ApiRequestErrorCode21
|
||||
| ApiRequestErrorCode22
|
||||
@@ -720,6 +717,7 @@ data ErrorCode
|
||||
| ApiRequestErrorCode24
|
||||
| ApiRequestErrorCode25
|
||||
| ApiRequestErrorCode26
|
||||
| ApiRequestErrorCode27
|
||||
-- Schema Cache errors
|
||||
| SchemaCacheErrorCode00
|
||||
| SchemaCacheErrorCode01
|
||||
@@ -763,7 +761,6 @@ buildErrorCode code = case code of
|
||||
ApiRequestErrorCode16 -> "PGRST116"
|
||||
ApiRequestErrorCode17 -> "PGRST117"
|
||||
ApiRequestErrorCode18 -> "PGRST118"
|
||||
ApiRequestErrorCode19 -> "PGRST119"
|
||||
ApiRequestErrorCode20 -> "PGRST120"
|
||||
ApiRequestErrorCode21 -> "PGRST121"
|
||||
ApiRequestErrorCode22 -> "PGRST122"
|
||||
@@ -771,6 +768,7 @@ buildErrorCode code = case code of
|
||||
ApiRequestErrorCode24 -> "PGRST124"
|
||||
ApiRequestErrorCode25 -> "PGRST125"
|
||||
ApiRequestErrorCode26 -> "PGRST126"
|
||||
ApiRequestErrorCode27 -> "PGRST127"
|
||||
|
||||
SchemaCacheErrorCode00 -> "PGRST200"
|
||||
SchemaCacheErrorCode01 -> "PGRST201"
|
||||
|
||||
Reference in New Issue
Block a user