summaryrefslogtreecommitdiff
path: root/Biz
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2020-06-12 09:37:37 -0700
committerBen Sima <ben@bsima.me>2020-06-12 09:37:37 -0700
commitde70e6455ae735a9d24e00677a07dbaf2b6cf355 (patch)
tree28452ff84e012604be1effffdb2ed323d192605a /Biz
parent37062e1ca6c479b7cf773931aa0e797ebcfafe8b (diff)
Reorganize a bunch of code
Nothing should be functioning differntly, just made it easier to work on.
Diffstat (limited to 'Biz')
-rw-r--r--Biz/App.hs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Biz/App.hs b/Biz/App.hs
new file mode 100644
index 0000000..95e7271
--- /dev/null
+++ b/Biz/App.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | General utils for apps
+module Biz.App (CSS(..), Manifest(..)) where
+
+import Alpha
+import Data.Aeson (ToJSON)
+import qualified Data.Text.Lazy as Lazy
+import qualified Data.Text.Lazy.Encoding as Lazy
+import Network.HTTP.Media
+ ( (//),
+ (/:),
+ )
+import Servant
+
+newtype CSS
+ = CSS
+ { unCSS :: Text
+ }
+
+instance Accept CSS where
+ contentType _ = "text" // "css" /: ("charset", "utf-8")
+
+instance MimeRender CSS Text where
+ mimeRender _ = Lazy.encodeUtf8 . Lazy.fromStrict
+
+-- | The manifest describes your app for web app thumbnails, iPhone tiles, etc.
+data Manifest
+ = Manifest
+ { name :: Text,
+ short_name :: Text,
+ start_url :: Text,
+ display :: Text,
+ theme_color :: Text,
+ description :: Text
+ }
+ deriving (Show, Eq, Generic)
+
+instance ToJSON Manifest
+
+