summaryrefslogtreecommitdiff
path: root/Biz
diff options
context:
space:
mode:
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
+
+