Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion slack-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ library
, bytestring >= 0.9.1
, containers >= 0.4
-- Normal Packages
, aeson >= 1.0
, aeson >= 2.0
, errors >= 1.4 && < 3.0
, hashable >= 1.2
, io-streams >= 1.2
Expand Down
4 changes: 2 additions & 2 deletions src/Web/Slack.hs
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ withSlackHandle conf fn = crashOnError $ do
, _shSession = sessionInfo
, _shCounter = freshCounter
}
WS.forkPingThread conn 10
fn h
WS.withPingThread conn 10 (pure ()) $
fn h

parseWebSocketUrl :: Monad m => T.Text -> ExceptT T.Text m (String, String)
parseWebSocketUrl url = do
Expand Down
2 changes: 1 addition & 1 deletion src/Web/Slack/Types/Channel.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ data Channel = Channel { _channelId :: ChannelId

makeLenses ''Channel

defaultToFalse :: Object -> Text -> Parser Bool
defaultToFalse :: Object -> Key -> Parser Bool
defaultToFalse o tag = fmap (fromMaybe False) $ o .:? tag

instance FromJSON Channel where
Expand Down
3 changes: 1 addition & 2 deletions src/Web/Slack/Types/Event.hs
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,9 @@ data ChannelRenameInfo = ChannelRenameInfo
, _channelRenameName :: Text
, _channelRenameCreated :: Time } deriving Show

makeLenses ''ChannelRenameInfo

instance FromJSON ChannelRenameInfo where
parseJSON = withObject "ChannelRenameInfo" (\o -> ChannelRenameInfo <$> o .: "id" <*> o .: "name" <*> o .: "created")

makeLenses ''ChannelRenameInfo

makePrisms ''Event
19 changes: 9 additions & 10 deletions src/Web/Slack/Types/File.hs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,15 @@ data File = File { _fileId :: FileId

data Mode = Hosted | External | Snippet | Post deriving Show

instance FromJSON Mode where
parseJSON = withText "mode"
(\case
"hosted" -> pure Hosted
"external" -> pure External
"snippet" -> pure Snippet
"post" -> pure Post
s -> fail $ "Unrecognised mode: " ++ T.unpack s)

instance FromJSON File where
parseJSON = withObject "File" (\o ->
File <$> o .: "id" <*> o .: "timestamp" <*> o .: "name" <*> o .: "title"
Expand Down Expand Up @@ -93,13 +102,3 @@ makeLenses ''FileUrl
makeLenses ''FileReference
makeLenses ''Thumbnail
makeLenses ''Preview


instance FromJSON Mode where
parseJSON = withText "mode"
(\case
"hosted" -> pure Hosted
"external" -> pure External
"snippet" -> pure Snippet
"post" -> pure Post
s -> fail $ "Unrecognised mode: " ++ T.unpack s)
6 changes: 3 additions & 3 deletions src/Web/Slack/Types/Item.hs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ instance FromJSON MessageUpdate where

data Edited = Edited { _editedUser :: UserId, _editTimestap :: SlackTimeStamp } deriving Show

instance FromJSON Edited where
parseJSON = withObject "Edited" (\o -> Edited <$> o .: "user" <*> o .: "ts")

data MessageReplied =
MessageReplied
{ _messageRepliedThreadTS :: SlackTimeStamp
Expand Down Expand Up @@ -126,6 +129,3 @@ makeLenses ''Edited
makeLenses ''MessageReplied
makeLenses ''MessageUpdate
makeLenses ''ThreadBroadcastRoot

instance FromJSON Edited where
parseJSON = withObject "Edited" (\o -> Edited <$> o .: "user" <*> o .: "ts")
2 changes: 1 addition & 1 deletion src/Web/Slack/Types/Message.hs
Original file line number Diff line number Diff line change
Expand Up @@ -116,5 +116,5 @@ instance ToJSON AttachmentColor where

$(deriveToJSON defaultOptions {fieldLabelModifier = toSnake . drop 7} ''MessagePayload)
$(deriveToJSON defaultOptions {fieldLabelModifier = toSnake . drop 4} ''PingPayload)
$(deriveToJSON defaultOptions {fieldLabelModifier = toSnake . drop 10} ''Attachment)
$(deriveToJSON defaultOptions {fieldLabelModifier = toSnake . drop 5} ''Field)
$(deriveToJSON defaultOptions {fieldLabelModifier = toSnake . drop 10} ''Attachment)
4 changes: 2 additions & 2 deletions src/Web/Slack/Types/Preferences.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{-# LANGUAGE TemplateHaskell, LambdaCase #-}
{-# LANGUAGE TemplateHaskell, LambdaCase, TypeApplications #-}
module Web.Slack.Types.Preferences where

import Data.Aeson.TH
Expand Down Expand Up @@ -82,7 +82,7 @@ data Preferences = Preferences

$(deriveJSON defaultOptions {fieldLabelModifier = \case
"_prefTime24" -> "time24"
s -> toSnake . drop (length "_pref") $ s} ''Preferences)
s -> toSnake . drop (length @[] "_pref") $ s} ''Preferences)

-- Bad performance regression from lens 4.6 causes GHC to run out of memory
-- on compilation
Expand Down
1 change: 0 additions & 1 deletion src/Web/Slack/Types/Subteam.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ module Web.Slack.Types.Subteam where

import Data.Aeson (FromJSON(parseJSON), (.:), withObject)
import Data.Text (Text)
import Data.Word (Word)
import Web.Slack.Types.Id (SubteamId, TeamId, UserId)

data Subteam =
Expand Down
10 changes: 5 additions & 5 deletions src/Web/Slack/Types/User.hs
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,6 @@ data Profile = Profile
, _profileImage192 :: URL
} deriving (Show)

makeLenses ''Profile
makeLenses ''Permissions
makeLenses ''Timezone
makeLenses ''User

instance FromJSON Profile where
parseJSON = withObject "Profile"
(\o -> let v = (o .:)
Expand All @@ -90,4 +85,9 @@ instance FromJSON Profile where
<*> vm "skype" <*> vm "phone" <*> v "image_24" <*> v "image_32"
<*> v "image_48" <*> v "image_72" <*> v "image_192")

makeLenses ''Profile
makeLenses ''Permissions
makeLenses ''Timezone
makeLenses ''User

type Username = Text