packages feed

rfc 0.0.0.13 → 0.0.0.14

raw patch · 4 files changed

+43/−7 lines, 4 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ RFC.Data.IdAnd: instance Data.Swagger.Internal.Schema.ToSchema a => Data.Swagger.Internal.Schema.ToSchema (RFC.Data.IdAnd.IdAnd a)
+ RFC.Data.UUID: instance Servant.Docs.Internal.ToCapture (Servant.API.Capture.Capture "id" Data.UUID.Types.Internal.UUID)
+ RFC.JSON: instance Data.Swagger.Internal.Schema.ToSchema Data.Aeson.Types.Internal.Value

Files

rfc.cabal view
@@ -1,5 +1,5 @@ name:                rfc-version:             0.0.0.13+version:             0.0.0.14 synopsis:            Robert Fischer's Common library description:         An enhanced Prelude and various utilities for Aeson, Servant, PSQL, and Redis that Robert Fischer uses. homepage:            https://github.com/RobertFischer/rfc#README.md
src/RFC/Data/IdAnd.hs view
@@ -1,9 +1,14 @@-{-# LANGUAGE CPP               #-}-{-# LANGUAGE DeriveGeneric     #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP                 #-}+{-# LANGUAGE DeriveGeneric       #-}+{-# LANGUAGE FlexibleContexts    #-}+{-# LANGUAGE FlexibleInstances   #-}+{-# LANGUAGE NoImplicitPrelude   #-}+{-# LANGUAGE OverloadedLists     #-}+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE RecordWildCards     #-}+{-# LANGUAGE ScopedTypeVariables #-} + module RFC.Data.IdAnd   ( idAndsToMap   , IdAnd(..)@@ -19,8 +24,10 @@ import qualified Data.Map                             as Map  #ifndef GHCJS_BROWSER+import           Control.Lens                         hiding ((.=)) import           Data.Aeson                           as JSON import           Data.Proxy                           (Proxy (..))+import           Data.Swagger import           Data.UUID.Types                      as UUID import           Database.PostgreSQL.Simple.FromField () import           Database.PostgreSQL.Simple.FromRow@@ -63,6 +70,18 @@  instance (ToRow a) => ToRow (IdAnd a) where   toRow (IdAnd (id,a)) = toField id : toRow a++instance (ToSchema a) => ToSchema (IdAnd a) where+  declareNamedSchema _ = do+    NamedSchema{..} <- declareNamedSchema (Proxy :: Proxy a)+    let aMaybeName =  _namedSchemaName+    aSchema <- declareSchemaRef (Proxy :: Proxy a)+    idSchema <- declareSchemaRef (Proxy :: Proxy UUID)+    return $ NamedSchema (map (\name -> "IdAnd " ++ name) aMaybeName) $+      mempty+        & type_ .~ SwaggerObject+        & properties .~ [("id", idSchema), ("value", aSchema)]+        & required .~ ["id", "value"]  uuidList :: [UUID] uuidList = List.cycle $ map (fromMaybe UUID.nil) $ map UUID.fromString
src/RFC/Data/UUID.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP                   #-}+{-# LANGUAGE DataKinds             #-} {-# LANGUAGE FlexibleInstances     #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings     #-}@@ -21,12 +22,18 @@ #endif  #ifndef GHCJS_BROWSER- import           Database.PostgreSQL.Simple.FromRow import           Database.PostgreSQL.Simple.ToRow import           Database.PostgreSQL.Simple.Types   (Only (..))+import           Servant.API.Capture+import           Servant.Docs #endif +#ifndef GHCJS_BROWSER+instance ToCapture (Capture "id" UUID) where+  toCapture _ = DocCapture "id" "UUID identifier"++#endif  #ifndef GHCJS_BROWSER instance FromRow UUID where
src/RFC/JSON.hs view
@@ -39,6 +39,10 @@ import           Data.Either                (either) #endif +#ifndef GHCJS_BROWSER+import qualified Data.Swagger               as Swag+#endif+ jsonOptions :: Options jsonOptions = defaultOptions     { sumEncoding = ObjectWithSingleField@@ -90,4 +94,10 @@     cs . JSON.encodeToLazyText #else     cs . JSON.encode+#endif++#ifndef GHCJS_BROWSER+instance Swag.ToSchema Value where+  declareNamedSchema _ = do+    return $ Swag.NamedSchema (Just $ cs "Value") $ mempty #endif