packages feed

pixela 0.1.0.0 → 0.2.0.0

raw patch · 4 files changed

+79/−69 lines, 4 files

Files

ChangeLog.md view
@@ -1,3 +1,11 @@ # Changelog for pixela -## Unreleased changes+## 0.2.0.0++### Breaking Change++- `version` has been removed.++## 0.1.0.0++First release.
README.md view
@@ -1,3 +1,7 @@ # Pixela client for Haskell  This is [Pixela](https://pixe.la/) client for Haskell.++## API Reference++This API reference is at [Hackage](http://hackage.haskell.org/package/pixela).
pixela.cabal view
@@ -4,15 +4,15 @@ -- -- see: https://github.com/sol/hpack ----- hash: bd1fc33f3adcd9cefe5837a71f3de4b922a2eb5993aa87d00ef45be247555726+-- hash: 26e281551fa92a971d8a31928324bc9c33922b103a1cd024afef5cb04a0fb10a  name:           pixela-version:        0.1.0.0+version:        0.2.0.0 synopsis:       Pixela client.-description:    Pixela (https://pixe.la/) client library.+description:    Pixela (<https://pixe.la/>) client library. category:       Web-homepage:       https://github.com/kakkun61/pixela#readme-bug-reports:    https://github.com/kakkun61/pixela/issues+homepage:       https://github.com/kakkun61/pixela-client-haskell/tree/master/lib+bug-reports:    https://github.com/kakkun61/pixela-client-haskell/issues author:         Kazuki Okamoto maintainer:     kazuki.okamoto@kakkun61.com copyright:      Kazuki Okamoto@@ -25,7 +25,7 @@  source-repository head   type: git-  location: https://github.com/kakkun61/pixela+  location: https://github.com/kakkun61/pixela-client-haskell  library   exposed-modules:
src/Web/Pixela.hs view
@@ -23,8 +23,6 @@   , Quantity   , WebhookType   , WebhookHash-    -- * Constants-  , version     -- * User functions   , createUser   , updateToken@@ -52,25 +50,29 @@   , deleteWebhook   ) where -import Control.Exception hiding (Exception)-import qualified Control.Exception as E (Exception)-import Control.Monad-import Data.Aeson ((.=))-import qualified Data.Aeson as Aeson+import           Control.Exception          hiding (Exception)+import qualified Control.Exception          as E (Exception)+import           Control.Monad+import           Data.Aeson                 ((.=))+import qualified Data.Aeson                 as Aeson+import qualified Data.ByteString.Char8      as BS import qualified Data.ByteString.Lazy.Char8 as BSL-import qualified Data.ByteString.Char8 as BS-import Data.Default-import qualified Data.HashMap.Strict as HashMap-import Data.String-import Data.Text (Text)-import qualified Data.Text as Text-import Data.Typeable-import qualified Data.Vector as Vector-import Network.HTTP.Client-import Network.HTTP.Client.TLS-import Network.HTTP.Types-import qualified Network.URI.Encode as URI+import           Data.Default+import qualified Data.HashMap.Strict        as HashMap+import           Data.Maybe                 (fromMaybe)+import           Data.String+import           Data.Text                  (Text)+import qualified Data.Text                  as Text+import           Data.Typeable+import qualified Data.Vector                as Vector+import           Data.Version               (showVersion)+import           Network.HTTP.Client+import           Network.HTTP.Client.TLS+import           Network.HTTP.Types+import qualified Network.URI.Encode         as URI +import           Paths_pixela               (version)+ -- | Pixela client. -- -- @@@ -84,17 +86,17 @@ -- @ data Client =   Client-    { config :: Config+    { config       :: Config     , _httpManager :: Manager     }  -- | Client configuration. data Config =   Config-    { endPoint :: Url+    { endPoint            :: Url     , httpManagerSettings :: ManagerSettings-    , userName :: UserName-    , token :: Token+    , userName            :: UserName+    , token               :: Token     }  instance Default Config where@@ -105,7 +107,7 @@       ""       "" -data Exception =+newtype Exception =   JsonException String   deriving (Show, Eq, Typeable) @@ -121,9 +123,9 @@ -- 'fromParameter' is safe. fromParameter' :: (FromParameter a) => String -> a fromParameter' param =-  case fromParameter param of-    Just a -> a-    Nothing -> error $ "pixela: error parsing \"" <> param <> "\""+  fromMaybe+    (error $ "pixela: error parsing \"" <> param <> "\"")+    (fromParameter param)  -- | A type class to convert a value to 'String'. class ToParameter a where@@ -145,12 +147,12 @@ data GraphType = GraphTypeInt | GraphTypeFloat deriving (Show, Read, Eq)  instance FromParameter GraphType where-  fromParameter "int" = Just GraphTypeInt+  fromParameter "int"   = Just GraphTypeInt   fromParameter "float" = Just GraphTypeFloat-  fromParameter _ = Nothing+  fromParameter _       = Nothing  instance ToParameter GraphType where-  toParameter GraphTypeInt = "int"+  toParameter GraphTypeInt   = "int"   toParameter GraphTypeFloat = "float"  data GraphColor@@ -164,20 +166,20 @@  instance FromParameter GraphColor where   fromParameter "shibafu" = Just Shibafu-  fromParameter "momiji" = Just Momiji-  fromParameter "sora" = Just Sora-  fromParameter "ichou" = Just Ichou-  fromParameter "ajisai" = Just Ajisai-  fromParameter "kuro" = Just Kuro-  fromParameter _ = Nothing+  fromParameter "momiji"  = Just Momiji+  fromParameter "sora"    = Just Sora+  fromParameter "ichou"   = Just Ichou+  fromParameter "ajisai"  = Just Ajisai+  fromParameter "kuro"    = Just Kuro+  fromParameter _         = Nothing  instance ToParameter GraphColor where   toParameter Shibafu = "shibafu"-  toParameter Momiji = "momiji"-  toParameter Sora = "sora"-  toParameter Ichou = "ichou"-  toParameter Ajisai = "ajisai"-  toParameter Kuro = "kuro"+  toParameter Momiji  = "momiji"+  toParameter Sora    = "sora"+  toParameter Ichou   = "ichou"+  toParameter Ajisai  = "ajisai"+  toParameter Kuro    = "kuro"  type DateFormat = String @@ -185,11 +187,11 @@  instance FromParameter DisplayMode where   fromParameter "short" = Just ShortMode-  fromParameter "" = Just DefaultMode-  fromParameter _ = Nothing+  fromParameter ""      = Just DefaultMode+  fromParameter _       = Nothing  instance ToParameter DisplayMode where-  toParameter ShortMode = "short"+  toParameter ShortMode   = "short"   toParameter DefaultMode = ""  type Url = String@@ -201,7 +203,7 @@ instance FromParameter WebhookType where   fromParameter "increment" = Just Increment   fromParameter "decrement" = Just Decrement-  fromParameter _ = Nothing+  fromParameter _           = Nothing  instance ToParameter WebhookType where   toParameter Increment = "increment"@@ -305,12 +307,12 @@         _ ->           Just $ Aeson.object $             case mode of-              ShortMode -> ["mode" .= toParameter mode]+              ShortMode   -> ["mode" .= toParameter mode]               DefaultMode -> []             ++             case maybeFormat of               Just format -> ["date" .= format]-              Nothing -> []+              Nothing     -> []     )     manager @@ -327,19 +329,19 @@       ( Just $ Aeson.object $           case maybeGraphName of             Just graphName -> ["name" .= Aeson.String (Text.pack graphName)]-            Nothing -> []+            Nothing        -> []           ++           case maybeGraphUnit of             Just graphUnit -> ["unit" .= Aeson.String (Text.pack graphUnit)]-            Nothing -> []+            Nothing        -> []           ++           case maybeGraphColor of             Just graphColor -> ["color" .= Aeson.String (Text.pack $ toParameter graphColor)]-            Nothing -> []+            Nothing         -> []           ++           case purgeCacheUrls of             _:_ -> ["purgeCacheURLs" .= Aeson.Array (Vector.fromList $ map (Aeson.String . Text.pack) purgeCacheUrls)]-            [] -> []+            []  -> []       )       manager @@ -457,7 +459,7 @@     Aeson.Object o ->       case HashMap.lookup "webhookHash" o of         Just (Aeson.String hashString) -> pure hashString-        _ -> throw'+        _                              -> throw'     _ -> throw'  -- | Get the webhook.@@ -513,29 +515,25 @@       request'         { method = renderStdMethod method'         , requestHeaders =-            [("User-Agent", "Pixela Haskell Client " <> version)]-            +++            ("User-Agent", "Pixela Haskell Client " <> BS.pack (showVersion version)) :             case maybeToken of               Just token' -> [("X-USER-TOKEN", BS.pack token')]-              Nothing -> []+              Nothing     -> []         , requestBody =             RequestBodyLBS $               case maybeBody of                 Just body -> Aeson.encode body-                Nothing -> ""+                Nothing   -> ""         }   response <- httpLbs request'' manager   pure $ responseBody response-        + decodeJson :: BSL.ByteString -> IO Aeson.Value decodeJson responseBody' =-  case Aeson.decode $ responseBody' of+  case Aeson.decode responseBody' of     Nothing -> throwIO $ JsonException "failed to parse response body as JSON"-    Just b -> pure b+    Just b  -> pure b  (</>) :: (Semigroup p, IsString p) => p -> p -> p p </> q = p <> "/" <> q infixr 6 </>--version :: (IsString a) => a-version = "1.0.0"