avers-api 0.0.2 → 0.0.3
raw patch · 3 files changed
+28/−4 lines, 3 filesdep +vector
Dependencies added: vector
Files
- avers-api.cabal +2/−1
- src/Avers/API.hs +7/−1
- src/Avers/API/Types.hs +19/−2
avers-api.cabal view
@@ -1,5 +1,5 @@ name: avers-api-version: 0.0.2+version: 0.0.3 synopsis: Types describing the core and extended Avers APIs description: See README homepage: http://github.com/wereHamster/avers-api@@ -38,3 +38,4 @@ , servant , text , time+ , vector
src/Avers/API.hs view
@@ -90,7 +90,7 @@ ------------------------------------------------------------------------------ -- LookupPatch- :<|> "objects" :> Capture "objId" ObjId :> Capture "revId" RevId+ :<|> "objects" :> Capture "objId" ObjId :> "patches" :> Capture "revId" RevId :> Credentials :> CacheValidationToken :> Get '[JSON] (Cacheable LookupPatchResponse)@@ -121,6 +121,12 @@ :> Credentials :> CacheValidationToken :> Get '[JSON] (Cacheable LookupLatestReleaseResponse)++ ------------------------------------------------------------------------------+ -- Feed+ :<|> "feed"+ :> Credentials+ :> Raw -- WebSocket, stream of 'Change' objects ------------------------------------------------------------------------------ -- ChangeSecret
src/Avers/API/Types.hs view
@@ -5,8 +5,9 @@ import GHC.Generics -import Data.Text (Text)-import Data.Aeson as A+import Data.Text (Text)+import Data.Aeson as A+import Data.Vector as V import Data.Time import Avers @@ -215,6 +216,22 @@ [ "id" .= lsrSessionId x , "objId" .= lsrSessionObjId x ]++++--------------------------------------------------------------------------------+-- Feed++data ChangeFeedSubscription+ = IncludeObjectChanges ObjId++instance FromJSON ChangeFeedSubscription where+ parseJSON (Array a) = case V.toList a of+ ["+", objId] -> IncludeObjectChanges <$> parseJSON objId+ _ -> fail "ChangeFeedSubscription"++ parseJSON _ = fail "ChangeFeedSubscription"+ --------------------------------------------------------------------------------