fix: OpenAPI now tags a FK correctly on O2O relationships
This commit is contained in:
committed by
Wolfgang Walther
parent
67f6b1c7e8
commit
903537d39d
@@ -13,6 +13,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- #3160, Fix using select= query parameter for custom media type handlers - @wolfgangwalther
|
- #3160, Fix using select= query parameter for custom media type handlers - @wolfgangwalther
|
||||||
- #3361, Clarify PGRST204(column not found) error message - @steve-chavez
|
- #3361, Clarify PGRST204(column not found) error message - @steve-chavez
|
||||||
- #3373, Remove rejected mediatype `application/vnd.pgrst.object+json` from response - @taimoorzaeem
|
- #3373, Remove rejected mediatype `application/vnd.pgrst.object+json` from response - @taimoorzaeem
|
||||||
|
- #3418, Fix OpenAPI not tagging a FK column correctly on O2O relationships - @laurenceisla
|
||||||
|
|
||||||
## [12.0.2] - 2023-12-20
|
## [12.0.2] - 2023-12-20
|
||||||
|
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ makeProperty tbl rels col = (colName col, Inline s)
|
|||||||
-- Finds the relationship that has a single column foreign key
|
-- Finds the relationship that has a single column foreign key
|
||||||
rel = find (\case
|
rel = find (\case
|
||||||
Relationship{relCardinality=(M2O _ relColumns)} -> [colName col] == (fst <$> relColumns)
|
Relationship{relCardinality=(M2O _ relColumns)} -> [colName col] == (fst <$> relColumns)
|
||||||
|
Relationship{relCardinality=(O2O _ relColumns)} -> [colName col] == (fst <$> relColumns)
|
||||||
_ -> False
|
_ -> False
|
||||||
) relsSortedByIsView
|
) relsSortedByIsView
|
||||||
fCol = (headMay . (\r -> snd <$> relColumns (relCardinality r)) =<< rel)
|
fCol = (headMay . (\r -> snd <$> relColumns (relCardinality r)) =<< rel)
|
||||||
|
|||||||
@@ -222,6 +222,21 @@ spec actualPgVersion = describe "OpenAPI" $ do
|
|||||||
. nth 0
|
. nth 0
|
||||||
liftIO $ tableTag `shouldBe` Just [aesonQQ|"authors_only"|]
|
liftIO $ tableTag `shouldBe` Just [aesonQQ|"authors_only"|]
|
||||||
|
|
||||||
|
it "includes a fk description for a O2O relationship" $ do
|
||||||
|
r <- simpleBody <$> get "/"
|
||||||
|
|
||||||
|
let referralLink = r ^? key "definitions" . key "first" . key "properties" . key "second_id_1"
|
||||||
|
|
||||||
|
liftIO $
|
||||||
|
referralLink `shouldBe` Just
|
||||||
|
[aesonQQ|
|
||||||
|
{
|
||||||
|
"format": "integer",
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Note:\nThis is a Foreign Key to `second.id`.<fk table='second' column='id'/>"
|
||||||
|
}
|
||||||
|
|]
|
||||||
|
|
||||||
describe "Foreign table" $
|
describe "Foreign table" $
|
||||||
|
|
||||||
it "includes foreign table properties" $ do
|
it "includes foreign table properties" $ do
|
||||||
|
|||||||
Reference in New Issue
Block a user