module ChatWork.Types.Me
( Me(..)
) where
import ChatWork.Utils (strLength)
import Data.Aeson (FromJSON (..), ToJSON (..),
genericParseJSON, genericToJSON)
import Data.Aeson.Casing (aesonDrop, snakeCase)
import Data.Text (Text)
import GHC.Generics (Generic)
data Me = Me
{ meToAccountId :: Int
, meToRoomId :: Int
, meToName :: Text
, meToChatworkId :: Text
, meToOrganizationId :: Int
, meToOrganizationName :: Text
, meToDepartment :: Text
, meToTitle :: Text
, meToUrl :: Text
, meToIntroduction :: Text
, meToMail :: Text
, meToTelOrganization :: Text
, meToTelExtension :: Text
, meToTelMobile :: Text
, meToSkype :: Text
, meToFacebook :: Text
, meToTwitter :: Text
, meToAvatarImageUrl :: Text
} deriving (Eq, Show, Generic)
instance ToJSON Me where
toJSON = genericToJSON $ aesonDrop (strLength "meTo") snakeCase
instance FromJSON Me where
parseJSON = genericParseJSON $ aesonDrop (strLength "meTo") snakeCase