{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} module Model.Profile (ProfileResponse (..)) where import Data.Aeson import GHC.Generics import Data.Text (Text) ---------------------------------------------------------------------------------------------------- data ProfileResponse = ProfileResponse { display_name :: Maybe Text , avatar_url :: Maybe Text , tz :: Maybe Text -- TODO: } deriving (Show, Eq, Generic) instance ToJSON ProfileResponse where toJSON = genericToJSON defaultOptions { fieldLabelModifier = \name -> case name of "display_name" -> "displayname" "tz" -> "m.tz" other -> other , omitNothingFields = True }