summaryrefslogtreecommitdiff
path: root/lib/Badges.hs
diff options
context:
space:
mode:
authorstuebinm2021-12-16 01:34:22 +0100
committerstuebinm2021-12-16 01:34:22 +0100
commitc3ee6029aad3c88fb67c8d190e2ecf57467b6002 (patch)
tree69714e94515d719414910d2b3e8aa404280b3c29 /lib/Badges.hs
parent9ccf7e2c02ad003c4a6907ee026304a936a956b3 (diff)
change badge output formatstructured-badges
(following a discussion with hxchn)
Diffstat (limited to 'lib/Badges.hs')
-rw-r--r--lib/Badges.hs11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/Badges.hs b/lib/Badges.hs
index efb4e77..5019a88 100644
--- a/lib/Badges.hs
+++ b/lib/Badges.hs
@@ -48,20 +48,17 @@ parseToken text = if text =~ ("^[a-zA-Z0-9]{50}$" :: Text) -- TODO: add characte
data Badge = Badge BadgeToken BadgeArea
deriving (Ord, Eq, Generic, Show)
-badgeJsonArray :: A.KeyValue a => Badge -> [a]
-badgeJsonArray (Badge token area) =
- [ "token" .= token ] <> areaObject
- where areaObject = case area of
+instance ToJSON Badge where
+ toJSON (Badge token area) = A.object $ case area of
BadgePoint x y -> [ "x" .= x
, "y" .= y
+ , "token" .= token
, "type" .= A.String "point"
]
BadgeRect {..} -> [ "x" .= areaX
, "y" .= areaY
+ , "token" .= token
, "width" .= areaWidth
, "height" .= areaHeight
, "type" .= A.String "rectangle"
]
-
-badgeJson :: FilePath -> Badge -> A.Value
-badgeJson mappath badge = A.object (badgeJsonArray badge <> [ "map" .= mappath ])