packages feed

flowdock 0.2.0.0 → 0.3.0.0

raw patch · 3 files changed

+55/−48 lines, 3 filesdep +lens-actiondep +networkdep ~http-clientPVP ok

version bump matches the API change (PVP)

Dependencies added: lens-action, network

Dependency ranges changed: http-client

API changes (from Hackage documentation)

- Chat.Flowdock: _qfFlow :: Flow -> Text
- Chat.Flowdock: _qfOrganization :: Flow -> Text
+ Chat.Flowdock: flowFlow :: Flow -> Text
+ Chat.Flowdock: flowOrganization :: Flow -> Text

Files

flowdock.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                flowdock-version:             0.2.0.0+version:             0.3.0.0 synopsis:            Flowdock client library for Haskell -- description:          homepage:            https://github.com/brewtown/hs-flowdock@@ -23,7 +23,8 @@   build-depends:       base >=4.6 && <5,                        aeson >= 0.8 && < 0.9,                        lens >= 4 && < 5,-                       http-client >= 0.3 && < 0.4,+                       lens-action,+                       http-client >= 0.3.8 && < 0.5,                        http-client-tls >= 0.2 && < 0.3,                        mtl >= 2 && < 3,                        text >= 1 && < 2,@@ -35,6 +36,7 @@                        pipes,                        pipes-http,                        pipes-parse,-                       pipes-aeson+                       pipes-aeson,+                       network   hs-source-dirs:      src   default-language:    Haskell2010
src/Chat/Flowdock.hs view
@@ -135,6 +135,7 @@ import           Data.Text.Encoding     (decodeUtf8, encodeUtf8) import           Data.Typeable import           Data.UUID+import qualified Network.Socket         as S import           Pipes import qualified Pipes.Aeson            as A import           Pipes.HTTP@@ -159,8 +160,8 @@  data Flow   = QualifiedFlow-    { _qfOrganization :: Text-    , _qfFlow         :: Text+    { flowOrganization :: Text+    , flowFlow         :: Text     }   | FlowId Text @@ -172,29 +173,29 @@   toJSON (HashTag t) = String ("#" <> t)  data Message a = Message-  { _mFlow             :: Flow-  , _mEvent            :: a-  , _mTags             :: [Tag]-  , _mExternalUserName :: Maybe Text-  , _mUuid             :: Maybe UUID+  { messageFlow             :: Flow+  , messageEvent            :: a+  , messageTags             :: [Tag]+  , messageExternalUserName :: Maybe Text+  , messageUuid             :: Maybe UUID   }  data Chat = Chat-  { _chatContent :: Text+  { chatContent :: Text   }  data FileUpload = FileUpload-  { _fContent     :: ByteString-  , _fContentType :: Text-  , _fFileName    :: Text+  { fileUploadContent     :: ByteString+  , fileUploadContentType :: Text+  , fileUploadFileName    :: Text   }  newtype MessageId = MessageId Int   deriving (Show, ToJSON, FromJSON)  data Comment = Comment-  { _commentContent   :: Text-  , _commentMessageId :: MessageId+  { commentContent   :: Text+  , commentMessageId :: MessageId   }  message qf e = Message qf e [] Nothing Nothing@@ -202,7 +203,7 @@ comment = Comment  data Status = Status-  { _statusContent :: Text+  { statusContent :: Text   }  type Event = Object@@ -210,15 +211,15 @@ newtype FlowFilter = FlowFilter (Maybe [Flow])  data StreamQuery a = StreamQuery-  { _sqSource :: a-  , _sqUser   :: Maybe Bool-  , _sqActive :: Maybe Bool+  { streamQuerySource :: a+  , streamQueryUser   :: Maybe Bool+  , streamQueryActive :: Maybe Bool   }  data MessageResponse c = MessageResponse-  { _mrMessageId :: MessageId-  , _mrSent      :: Int-  , _mrApp       :: Text+  { messageResponseMessageId :: MessageId+  , messageResponseSent      :: Int+  , messageResponseApp       :: Text   -- , _mr   } deriving (Show) @@ -276,23 +277,23 @@   toJSON = const $ String "html"  data InboxPushMessage = InboxPushMessage-  { _ipSource      :: Text-  , _ipFromAddress :: Text-  , _ipSubject     :: Text-  , _ipContent     :: Text-  , _ipFromName    :: Maybe Text-  , _ipReplyTo     :: Maybe Text-  , _ipProject     :: Maybe Text-  , _ipFormat      :: Maybe InboxPushFormat-  , _ipTags        :: Maybe [Tag]-  , _ipLink        :: Maybe Text+  { inboxPushMessageSource      :: Text+  , inboxPushMessageFromAddress :: Text+  , inboxPushMessageSubject     :: Text+  , inboxPushMessageContent     :: Text+  , inboxPushMessageFromName    :: Maybe Text+  , inboxPushMessageReplyTo     :: Maybe Text+  , inboxPushMessageProject     :: Maybe Text+  , inboxPushMessageFormat      :: Maybe InboxPushFormat+  , inboxPushMessageTags        :: Maybe [Tag]+  , inboxPushMessageLink        :: Maybe Text   } deriving (Read, Show)  data ChatPushMessage = ChatPushMessage-  { _cpContent          :: Text-  , _cpExternalUserName :: Text-  , _cpTags             :: Maybe [Tag]-  , _cpMessageId        :: Maybe Text+  { chatPushMessageContent          :: Text+  , chatPushMessageExternalUserName :: Text+  , chatPushMessageTags             :: Maybe [Tag]+  , chatPushMessageMessageId        :: Maybe Text   } deriving (Read, Show)  data JSONError = JSONError String@@ -320,7 +321,8 @@   managerSettings = const tlsManagerSettings  instance ClientManagerSettings User where-  managerSettings = const (tlsManagerSettings { managerResponseTimeout = Nothing })+  managerSettings = const (tlsManagerSettings { managerResponseTimeout = Nothing+                                              , managerRawConnection = rawConnectionModifySocket (\s -> S.setSocketOption s S.KeepAlive 1) })  data FlowdockClient a = FlowdockClient   { clientAuth    :: a@@ -472,8 +474,8 @@     let responseStream = responseBody r     cb $ streamJSON responseStream   where-    org  = encodeUtf8 $ _qfOrganization $ _sqSource q-    flow = encodeUtf8 $ _qfFlow $ _sqSource q+    org  = encodeUtf8 $ flowOrganization $ streamQuerySource q+    flow = encodeUtf8 $ flowOrganization $ streamQuerySource q  streamFlows :: FlowdockClient User -> StreamQuery FlowFilter -> (Producer Event IO () -> IO a) -> IO a streamFlows (FlowdockClient (User token) man) q cb = do@@ -504,5 +506,5 @@           go p'  -getParentMessageId :: MessageResponse Comment -> MessageId-getParentMessageId = undefined+-- getParentMessageId :: MessageResponse Comment -> MessageId+-- getParentMessageId = undefined
src/Chat/Flowdock/Internal.hs view
@@ -1,15 +1,18 @@ {-# LANGUAGE FlexibleContexts #-} module Chat.Flowdock.Internal where-import Control.Lens-import Data.Aeson.TH-import Data.Char-import Language.Haskell.TH.Syntax (Q, Name, Dec)+import           Control.Lens+import           Control.Lens.Action+import           Data.Aeson.TH+import           Data.Char+import           Language.Haskell.TH.Syntax (Dec, Name, Q)  adjustNames :: String -> String-adjustNames = snakeCase . dropWhile (not . isUpper)+adjustNames s = case snakeCase $ dropWhile (not . isUpper) s of+  [] -> []+  (x:xs) -> toLower x : xs  jsonize :: Name -> Q [Dec]-jsonize = deriveJSON (defaultOptions { fieldLabelModifier = adjustNames +jsonize = deriveJSON (defaultOptions { fieldLabelModifier = adjustNames                                      , omitNothingFields = True })  jsonizeAll :: (Traversable t) => MonadicFold Q (t Name) [Dec]