-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | The ChatWork API in Haskell
--
-- See README at https://github.com/matsubara0507/chatwork#readme
@package chatwork
@version 0.1.0.0
module ChatWork.Utils
-- | ChatWork API Token detail is
-- http://developer.chatwork.com/ja/authenticate.html
type Token = ByteString
-- | Base URL for endpoints TODO : change type class function
baseUrl :: Url Https
-- | Make HTTP Header to authenticate API Token of ChatWork
mkTokenHeader :: Token -> Option Https
-- | Helper function that use custamized Manager
getHttpResponse' :: (HttpResponse a, MonadHttp m) => Proxy a -> Request -> Manager -> m a
fixEmptyStringManager :: IO Manager
-- | if response is no contents, replace "[]". aeson return parse error
-- when response is no content response
fixEmptyString :: Response BodyReader -> IO (Response BodyReader)
-- | if want to use Delete HTTP methos with request param, use this type.
-- ref :
-- https://hackage.haskell.org/package/req-0.3.0/docs/Network-HTTP-Req.html#t:DELETE
data DELETE2
DELETE2 :: DELETE2
-- | for resolve ambiguous type
strLength :: String -> Int
instance Network.HTTP.Req.HttpMethod ChatWork.Utils.DELETE2
module ChatWork.Types.Me
data Me
Me :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Me
[meToAccountId] :: Me -> Int
[meToRoomId] :: Me -> Int
[meToName] :: Me -> Text
[meToChatworkId] :: Me -> Text
[meToOrganizationId] :: Me -> Int
[meToOrganizationName] :: Me -> Text
[meToDepartment] :: Me -> Text
[meToTitle] :: Me -> Text
[meToUrl] :: Me -> Text
[meToIntroduction] :: Me -> Text
[meToMail] :: Me -> Text
[meToTelOrganization] :: Me -> Text
[meToTelExtension] :: Me -> Text
[meToTelMobile] :: Me -> Text
[meToSkype] :: Me -> Text
[meToFacebook] :: Me -> Text
[meToTwitter] :: Me -> Text
[meToAvatarImageUrl] :: Me -> Text
instance GHC.Generics.Generic ChatWork.Types.Me.Me
instance GHC.Show.Show ChatWork.Types.Me.Me
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Me.Me
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Me.Me
module ChatWork.Types.IncomingRequests
type IncomingRequests = [IncomingRequest]
data IncomingRequest
IncomingRequest :: Int -> Int -> Text -> Text -> Text -> Int -> Text -> Text -> Text -> IncomingRequest
[incomingRequestToRequestId] :: IncomingRequest -> Int
[incomingRequestToAccountId] :: IncomingRequest -> Int
[incomingRequestToMessage] :: IncomingRequest -> Text
[incomingRequestToName] :: IncomingRequest -> Text
[incomingRequestToChatworkId] :: IncomingRequest -> Text
[incomingRequestToOrganizationId] :: IncomingRequest -> Int
[incomingRequestToOrganizationName] :: IncomingRequest -> Text
[incomingRequestToDepartment] :: IncomingRequest -> Text
[incomingRequestToAvatarImageUrl] :: IncomingRequest -> Text
data AcceptedIncomingRequest
AcceptedIncomingRequest :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> AcceptedIncomingRequest
[acceptedIncomingRequestToAccountId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToRoomId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToName] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToChatworkId] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToOrganizationId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToOrganizationName] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToDepartment] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToAvatarImageUrl] :: AcceptedIncomingRequest -> Text
instance GHC.Generics.Generic ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance GHC.Show.Show ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance GHC.Generics.Generic ChatWork.Types.IncomingRequests.IncomingRequest
instance GHC.Show.Show ChatWork.Types.IncomingRequests.IncomingRequest
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.IncomingRequests.IncomingRequest
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.IncomingRequests.IncomingRequest
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
module ChatWork.Types.Error
-- | when error, chatwork is response: { "errors": ["Invalid API token"] }
--
-- see : http://developer.chatwork.com/ja/endpoints.html
data ChatWorkErrors
instance GHC.Generics.Generic ChatWork.Types.Error.ChatWorkErrors
instance GHC.Show.Show ChatWork.Types.Error.ChatWorkErrors
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Error.ChatWorkErrors
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Error.ChatWorkErrors
module ChatWork.Types.Contacts
type Contacts = [Contact]
data Contact
Contact :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> Contact
[contactToAccountId] :: Contact -> Int
[contactToRoomId] :: Contact -> Int
[contactToName] :: Contact -> Text
[contactToChatworkId] :: Contact -> Text
[contactToOrganizationId] :: Contact -> Int
[contactToOrganizationName] :: Contact -> Text
[contactToDepartment] :: Contact -> Text
[contactToAvatarImageUrl] :: Contact -> Text
instance GHC.Generics.Generic ChatWork.Types.Contacts.Contact
instance GHC.Show.Show ChatWork.Types.Contacts.Contact
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Contacts.Contact
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Contacts.Contact
module ChatWork.Types.Base
data Room
Room :: Int -> Text -> Text -> Room
[roomToRoomId] :: Room -> Int
[roomToName] :: Room -> Text
[roomToIconPath] :: Room -> Text
data Account
Account :: Int -> Text -> Text -> Account
[accountToAccountId] :: Account -> Int
[accountToName] :: Account -> Text
[accountToAvatarImageUrl] :: Account -> Text
-- | use create new room see :
-- http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms
data IconPreset
Group :: IconPreset
Check :: IconPreset
Document :: IconPreset
Meeting :: IconPreset
Event :: IconPreset
Project :: IconPreset
Business :: IconPreset
Study :: IconPreset
Security :: IconPreset
Star :: IconPreset
Idea :: IconPreset
Heart :: IconPreset
Magcup :: IconPreset
Beer :: IconPreset
Music :: IconPreset
Sports :: IconPreset
Travel :: IconPreset
data TaskStatus
type AccountId = Int
instance GHC.Classes.Eq ChatWork.Types.Base.IconPreset
instance GHC.Generics.Generic ChatWork.Types.Base.Account
instance GHC.Show.Show ChatWork.Types.Base.Account
instance GHC.Generics.Generic ChatWork.Types.Base.Room
instance GHC.Show.Show ChatWork.Types.Base.Room
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Base.Room
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Base.Room
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Base.Account
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Base.Account
instance GHC.Show.Show ChatWork.Types.Base.IconPreset
instance GHC.Show.Show ChatWork.Types.Base.TaskStatus
module ChatWork.Types.My
data MyStatus
MyStatus :: Int -> Int -> Int -> Int -> Int -> Int -> MyStatus
[myStatusToUnreadRoomNum] :: MyStatus -> Int
[myStatusToMentionRoomNum] :: MyStatus -> Int
[myStatusToMytaskRoomNum] :: MyStatus -> Int
[myStatusToUnreadNum] :: MyStatus -> Int
[myStatusToMentionNum] :: MyStatus -> Int
[myStatusToMytaskNum] :: MyStatus -> Int
type MyTasks = [MyTask]
data MyTask
MyTask :: Int -> Room -> Account -> Text -> Text -> Int -> Text -> MyTask
[myTaskToTaskId] :: MyTask -> Int
[myTaskToRoom] :: MyTask -> Room
[myTaskToAssignedByAccount] :: MyTask -> Account
[myTaskToMessageId] :: MyTask -> Text
[myTaskToBody] :: MyTask -> Text
[myTaskToLimitTime] :: MyTask -> Int
[myTaskToStatus] :: MyTask -> Text
instance GHC.Generics.Generic ChatWork.Types.My.MyTask
instance GHC.Show.Show ChatWork.Types.My.MyTask
instance GHC.Generics.Generic ChatWork.Types.My.MyStatus
instance GHC.Show.Show ChatWork.Types.My.MyStatus
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.My.MyStatus
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.My.MyStatus
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.My.MyTask
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.My.MyTask
module ChatWork.Types.Rooms
type Rooms = [RoomDetail]
data RoomDetail
RoomDetail :: Int -> Text -> Text -> Text -> Bool -> Int -> Int -> Int -> Int -> Int -> Int -> Text -> Int -> Maybe Text -> RoomDetail
[roomDetailToRoomId] :: RoomDetail -> Int
[roomDetailToName] :: RoomDetail -> Text
[roomDetailToType] :: RoomDetail -> Text
[roomDetailToRole] :: RoomDetail -> Text
[roomDetailToSticky] :: RoomDetail -> Bool
[roomDetailToUnreadNum] :: RoomDetail -> Int
[roomDetailToMentionNum] :: RoomDetail -> Int
[roomDetailToMytaskNum] :: RoomDetail -> Int
[roomDetailToMessageNum] :: RoomDetail -> Int
[roomDetailToFileNum] :: RoomDetail -> Int
[roomDetailToTaskNum] :: RoomDetail -> Int
[roomDetailToIconPath] :: RoomDetail -> Text
[roomDetailToLastUpdateTime] :: RoomDetail -> Int
[roomDetailToDescription] :: RoomDetail -> Maybe Text
newtype RoomIdWrap
RoomIdWrap :: Int -> RoomIdWrap
[getRoomId] :: RoomIdWrap -> Int
type Members = [Member]
data Member
Member :: Int -> Text -> Text -> Text -> Int -> Text -> Text -> Text -> Member
[memberToAccountId] :: Member -> Int
[memberToRole] :: Member -> Text
[memberToName] :: Member -> Text
[memberToChatworkId] :: Member -> Text
[memberToOrganizationId] :: Member -> Int
[memberToOrganizationName] :: Member -> Text
[memberToDepartment] :: Member -> Text
[memberToAvatarImageUrl] :: Member -> Text
data MembersPermission
MembersPermission :: [Int] -> [Int] -> [Int] -> MembersPermission
[membersPermissionToAdmin] :: MembersPermission -> [Int]
[membersPermissionToMember] :: MembersPermission -> [Int]
[membersPermissionToReadonly] :: MembersPermission -> [Int]
type Messages = [Message]
data Message
Message :: Text -> Account -> Text -> Int -> Int -> Message
[messageToMessageId] :: Message -> Text
[messageToAccount] :: Message -> Account
[messageToBody] :: Message -> Text
[messageToSendTime] :: Message -> Int
[messageToUpdateTime] :: Message -> Int
newtype MessageIdWrap
MessageIdWrap :: Text -> MessageIdWrap
[getMessageId] :: MessageIdWrap -> Text
type RoomTasks = [RoomTask]
data RoomTask
newtype TaskIdsWrap
TaskIdsWrap :: [Int] -> TaskIdsWrap
[getTaskIds] :: TaskIdsWrap -> [Int]
type Files = [File]
data File
File :: Int -> Account -> Text -> Text -> Int -> Int -> File
[fileToFileId] :: File -> Int
[fileToAccount] :: File -> Account
[fileToMessageId] :: File -> Text
[fileToFilename] :: File -> Text
[fileToFilesize] :: File -> Int
[fileToUploadTime] :: File -> Int
data CreateRoomParams
CreateRoomParams :: Maybe Text -> Maybe IconPreset -> [Int] -> Maybe [Int] -> Maybe [Int] -> Text -> CreateRoomParams
[cRoomDescription] :: CreateRoomParams -> Maybe Text
[cIconPreset] :: CreateRoomParams -> Maybe IconPreset
[cMembersAdminIds] :: CreateRoomParams -> [Int]
[cMembersMemberIds] :: CreateRoomParams -> Maybe [Int]
[cMembersReadonlyIds] :: CreateRoomParams -> Maybe [Int]
[cRoomName] :: CreateRoomParams -> Text
data UpdateRoomParams
UpdateRoomParams :: Maybe Text -> Maybe IconPreset -> Maybe Text -> UpdateRoomParams
[uRoomDescription] :: UpdateRoomParams -> Maybe Text
[uIconPreset] :: UpdateRoomParams -> Maybe IconPreset
[uRoomName] :: UpdateRoomParams -> Maybe Text
data RoomMembersParams
RoomMembersParams :: [Int] -> Maybe [Int] -> Maybe [Int] -> RoomMembersParams
[getAdminIds] :: RoomMembersParams -> [Int]
[getMemberIds] :: RoomMembersParams -> Maybe [Int]
[getReadonlyIds] :: RoomMembersParams -> Maybe [Int]
data GetTasksParams
GetTasksParams :: Maybe Int -> Maybe Int -> Maybe TaskStatus -> GetTasksParams
[getTaskAccountId] :: GetTasksParams -> Maybe Int
[getTaskAssignedByAccountId] :: GetTasksParams -> Maybe Int
[getTaskStatus] :: GetTasksParams -> Maybe TaskStatus
data CreateTaskParams
CreateTaskParams :: Text -> Maybe Int -> [Int] -> CreateTaskParams
[getTaskBody] :: CreateTaskParams -> Text
[getTaskLimit] :: CreateTaskParams -> Maybe Int
[getTaskToIds] :: CreateTaskParams -> [Int]
data DeleteRoomActionType
LeaveRoom :: DeleteRoomActionType
DeleteRoom :: DeleteRoomActionType
type Force = Bool
type MessageBody = Text
type CreateUrlFlag = Bool
instance GHC.Classes.Eq ChatWork.Types.Rooms.DeleteRoomActionType
instance GHC.Show.Show ChatWork.Types.Rooms.CreateTaskParams
instance GHC.Show.Show ChatWork.Types.Rooms.GetTasksParams
instance GHC.Show.Show ChatWork.Types.Rooms.RoomMembersParams
instance GHC.Show.Show ChatWork.Types.Rooms.UpdateRoomParams
instance GHC.Show.Show ChatWork.Types.Rooms.CreateRoomParams
instance GHC.Generics.Generic ChatWork.Types.Rooms.File
instance GHC.Show.Show ChatWork.Types.Rooms.File
instance GHC.Generics.Generic ChatWork.Types.Rooms.TaskIdsWrap
instance GHC.Show.Show ChatWork.Types.Rooms.TaskIdsWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomTask
instance GHC.Show.Show ChatWork.Types.Rooms.RoomTask
instance GHC.Generics.Generic ChatWork.Types.Rooms.MessageIdWrap
instance GHC.Show.Show ChatWork.Types.Rooms.MessageIdWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.Message
instance GHC.Show.Show ChatWork.Types.Rooms.Message
instance GHC.Generics.Generic ChatWork.Types.Rooms.MembersPermission
instance GHC.Show.Show ChatWork.Types.Rooms.MembersPermission
instance GHC.Generics.Generic ChatWork.Types.Rooms.Member
instance GHC.Show.Show ChatWork.Types.Rooms.Member
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomIdWrap
instance GHC.Show.Show ChatWork.Types.Rooms.RoomIdWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomDetail
instance GHC.Show.Show ChatWork.Types.Rooms.RoomDetail
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomDetail
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomDetail
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomIdWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomIdWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.Member
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.Member
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.MembersPermission
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.MembersPermission
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.Message
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.Message
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.MessageIdWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.MessageIdWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomTask
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomTask
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.TaskIdsWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.TaskIdsWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.File
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.File
instance GHC.Show.Show ChatWork.Types.Rooms.DeleteRoomActionType
module ChatWork.Types
-- | Wrapper type synonym of JsonResponse and ChatWorkErrors
type ChatWorkResponse a = JsonResponse (Either ChatWorkErrors a)
-- | Helper Type Class of QueryParam use to construct request
-- parameter from param type, e.g. CreateRoomParams
class ToReqParam a
toReqParam :: (ToReqParam a, QueryParam param, Monoid param) => Text -> a -> param
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Data.Either.Either ChatWork.Types.Error.ChatWorkErrors a)
instance ChatWork.Types.ToReqParam GHC.Types.Int
instance ChatWork.Types.ToReqParam Data.Text.Internal.Text
instance ChatWork.Types.ToReqParam a => ChatWork.Types.ToReqParam (GHC.Base.Maybe a)
instance GHC.Show.Show a => ChatWork.Types.ToReqParam [a]
instance ChatWork.Types.ToReqParam ChatWork.Types.Base.IconPreset
instance ChatWork.Types.ToReqParam ChatWork.Types.Base.TaskStatus
-- | This module is that define MonadHttp type class instance of IO. if you
-- want other definition, don't import this module.
module ChatWork.MonadHttpIO
instance Network.HTTP.Req.MonadHttp GHC.Types.IO
-- | see : http://developer.chatwork.com/ja/endpoint_rooms.html
module ChatWork.Endpoints.Rooms
getRooms :: (MonadHttp m) => Token -> m (ChatWorkResponse Rooms)
createRoom :: (MonadHttp m) => Token -> CreateRoomParams -> m (ChatWorkResponse RoomIdWrap)
getRoom :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse RoomDetail)
updateRoom :: (MonadHttp m) => Token -> Int -> UpdateRoomParams -> m (ChatWorkResponse RoomIdWrap)
deleteRoom :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse ())
leaveRoom :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse ())
deleteRoom' :: (MonadHttp m) => Token -> Int -> DeleteRoomActionType -> m (ChatWorkResponse ())
getMembers :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse Members)
updateMembersPermission :: (MonadHttp m) => Token -> Int -> RoomMembersParams -> m (ChatWorkResponse MembersPermission)
getMessages :: (MonadHttp m) => Token -> Int -> Maybe Force -> m (ChatWorkResponse Messages)
postMessage :: (MonadHttp m) => Token -> Int -> MessageBody -> m (ChatWorkResponse MessageIdWrap)
getMessage :: (MonadHttp m) => Token -> Int -> Text -> m (ChatWorkResponse Message)
getRoomTasks :: (MonadHttp m) => Token -> Int -> GetTasksParams -> m (ChatWorkResponse RoomTasks)
createTask :: (MonadHttp m) => Token -> Int -> CreateTaskParams -> m (ChatWorkResponse TaskIdsWrap)
getRoomTask :: (MonadHttp m) => Token -> Int -> Int -> m (ChatWorkResponse RoomTask)
getFiles :: (MonadHttp m) => Token -> Int -> Maybe AccountId -> m (ChatWorkResponse Files)
getFile :: (MonadHttp m) => Token -> Int -> Int -> Maybe CreateUrlFlag -> m (ChatWorkResponse File)
-- | see : http://developer.chatwork.com/ja/endpoint_my.html
module ChatWork.Endpoints.My
getMyStatus :: (MonadHttp m) => Token -> m (ChatWorkResponse MyStatus)
getMyTasks :: (MonadHttp m) => Token -> m (ChatWorkResponse MyTasks)
-- | see : http://developer.chatwork.com/ja/endpoint_me.html
module ChatWork.Endpoints.Me
getMe :: (MonadHttp m) => Token -> m (ChatWorkResponse Me)
-- | see :
-- http://developer.chatwork.com/ja/endpoint_incoming_requests.html
module ChatWork.Endpoints.IncomingRequests
getIncomingRequests :: (MonadHttp m) => Token -> m (ChatWorkResponse IncomingRequests)
acceptIncomingRequests :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse AcceptedIncomingRequest)
rejectIncomingRequests :: (MonadHttp m) => Token -> Int -> m (ChatWorkResponse ())
-- | see : http://developer.chatwork.com/ja/endpoint_contacts.html
module ChatWork.Endpoints.Contacts
getContacts :: (MonadHttp m) => Token -> m (ChatWorkResponse Contacts)
module ChatWork.Endpoints
-- | This module is re-export all endpoint functions and types from this
-- package.
module ChatWork