From 3aa2abfbb129e4e985d130abfd8479dff3ef2c25 Mon Sep 17 00:00:00 2001 From: Paolo Capriotti Date: Thu, 7 Oct 2021 11:41:18 +0200 Subject: [PATCH 1/2] Fix more swagger validation errors These could be prevented by turning some lists to sets in the swagger2 package, but for now we simply go through all the schemas in the `Swagger` structure, and apply `nub` on them. --- changelog.d/5-internal/fix-swagger-errors | 1 + services/brig/src/Brig/API/Public.hs | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 changelog.d/5-internal/fix-swagger-errors diff --git a/changelog.d/5-internal/fix-swagger-errors b/changelog.d/5-internal/fix-swagger-errors new file mode 100644 index 0000000000..85628ccf63 --- /dev/null +++ b/changelog.d/5-internal/fix-swagger-errors @@ -0,0 +1 @@ +Fix more Swagger validation errors. diff --git a/services/brig/src/Brig/API/Public.hs b/services/brig/src/Brig/API/Public.hs index 4b2ec723dc..96b9fdaedc 100644 --- a/services/brig/src/Brig/API/Public.hs +++ b/services/brig/src/Brig/API/Public.hs @@ -56,7 +56,7 @@ import Brig.User.Phone import qualified Cassandra as C import qualified Cassandra as Data import Control.Error hiding (bool) -import Control.Lens (view, (%~), (.~), (?~), (^.)) +import Control.Lens (view, (%~), (.~), (?~), (^.), _Just) import Control.Monad.Catch (throwM) import Data.Aeson hiding (json) import Data.ByteString.Conversion @@ -134,10 +134,24 @@ swaggerDocsAPI = & S.info . S.title .~ "Wire-Server API" & S.info . S.description ?~ desc & S.security %~ nub + -- sanitise definitions & S.definitions . traverse %~ sanitise + -- sanitise general responses + & S.responses . traverse . S.schema . _Just . S._Inline %~ sanitise + -- sanitise all responses of all paths + & S.allOperations . S.responses . S.responses + . traverse + . S._Inline + . S.schema + . _Just + . S._Inline + %~ sanitise where sanitise :: S.Schema -> S.Schema - sanitise = (S.properties . traverse . S._Inline %~ sanitise) . (S.required %~ nubOrd) + sanitise = + (S.properties . traverse . S._Inline %~ sanitise) + . (S.required %~ nubOrd) + . (S.enum_ . _Just %~ nub) desc = Text.pack [QQ.i| From 759c896ea2c9e931b9779dae35029250d7f6eded Mon Sep 17 00:00:00 2001 From: Paolo Capriotti Date: Thu, 7 Oct 2021 16:01:29 +0200 Subject: [PATCH 2/2] Hi CI