aboutsummaryrefslogtreecommitdiff
path: root/src/Model/Profile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model/Profile.hs')
-rw-r--r--src/Model/Profile.hs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Model/Profile.hs b/src/Model/Profile.hs
new file mode 100644
index 0000000..1a8f201
--- /dev/null
+++ b/src/Model/Profile.hs
@@ -0,0 +1,26 @@
+{-# 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: <other properties>
+ } 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
+ }