Query tankerkönig API with given apikey and station
This commit is contained in:
parent
b5d61674d8
commit
76bcbe8fb5
2 changed files with 131 additions and 5 deletions
|
|
@ -1,4 +1,4 @@
|
|||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module TK2MQTT (
|
||||
runTK2MQTT,
|
||||
|
|
@ -8,12 +8,17 @@ module TK2MQTT (
|
|||
import System.Environment qualified as Env
|
||||
import System.IO
|
||||
|
||||
import Control.Monad.IO.Class
|
||||
import Control.Exception qualified as Exception
|
||||
import System.IO.Error qualified as IOError
|
||||
|
||||
runTK2MQTT :: IO ()
|
||||
runTK2MQTT = do
|
||||
putStrLn "Hello"
|
||||
import Data.Aeson
|
||||
import Network.HTTP.Req
|
||||
|
||||
runTK2MQTT :: String -> String -> IO ()
|
||||
runTK2MQTT apikey stationId = runReq defaultHttpConfig $ do
|
||||
r <- req GET (https "creativecommons.tankerkoenig.de" /: "json" /: "prices.php") NoReqBody jsonResponse ("apikey" =: apikey <> "ids" =: stationId)
|
||||
liftIO $ print (responseBody r :: Value)
|
||||
|
||||
eitherToError :: Show a => Either a b -> IO b
|
||||
eitherToError = either (Exception.throwIO . IOError.userError . show) return
|
||||
|
|
@ -23,4 +28,6 @@ handleError e = do
|
|||
hPutStrLn stderr $ "I ran into an issue: " <> show e
|
||||
|
||||
defaultMain :: IO ()
|
||||
defaultMain = Exception.catch runTK2MQTT handleError
|
||||
defaultMain = do
|
||||
[apikey, stationId] <- Env.getArgs
|
||||
Exception.catch (runTK2MQTT apikey stationId) handleError
|
||||
|
|
|
|||
119
tk2mqtt.cabal
Normal file
119
tk2mqtt.cabal
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
cabal-version: 1.12
|
||||
|
||||
-- This file has been generated from package.yaml by hpack version 0.34.7.
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
|
||||
name: tk2mqtt
|
||||
version: 0.0.1.0
|
||||
description: Tankerkönig-to-MQTT gateway
|
||||
author: Alexander Kobjolke
|
||||
maintainer: alex@jakalx.net
|
||||
copyright: Alexander Kobjolke 2023
|
||||
license: MIT
|
||||
build-type: Simple
|
||||
extra-source-files:
|
||||
README.org
|
||||
|
||||
library
|
||||
exposed-modules:
|
||||
TK2MQTT
|
||||
TK2MQTT.Internal
|
||||
other-modules:
|
||||
Paths_tk2mqtt
|
||||
hs-source-dirs:
|
||||
src
|
||||
default-extensions:
|
||||
BlockArguments
|
||||
OverloadedStrings
|
||||
ImportQualifiedPost
|
||||
ghc-options: -Wall -fdefer-typed-holes
|
||||
build-depends:
|
||||
aeson
|
||||
, base >=4.13 && <5
|
||||
, containers
|
||||
, directory
|
||||
, net-mqtt
|
||||
, req
|
||||
, text
|
||||
, time
|
||||
default-language: GHC2021
|
||||
|
||||
executable tk2mqtt
|
||||
main-is: tk2mqtt.hs
|
||||
other-modules:
|
||||
Paths_tk2mqtt
|
||||
hs-source-dirs:
|
||||
app
|
||||
default-extensions:
|
||||
BlockArguments
|
||||
OverloadedStrings
|
||||
ImportQualifiedPost
|
||||
ghc-options: -Wall -fdefer-typed-holes
|
||||
build-depends:
|
||||
aeson
|
||||
, base >=4.13 && <5
|
||||
, containers
|
||||
, directory
|
||||
, net-mqtt
|
||||
, req
|
||||
, text
|
||||
, time
|
||||
, tk2mqtt
|
||||
default-language: GHC2021
|
||||
|
||||
test-suite doctest
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: Doctest.hs
|
||||
other-modules:
|
||||
Paths_tk2mqtt
|
||||
hs-source-dirs:
|
||||
test/doctest
|
||||
default-extensions:
|
||||
BlockArguments
|
||||
OverloadedStrings
|
||||
ImportQualifiedPost
|
||||
ghc-options: -Wall -fdefer-typed-holes
|
||||
build-tool-depends:
|
||||
doctest:doctest
|
||||
build-depends:
|
||||
aeson
|
||||
, base >=4.13 && <5
|
||||
, containers
|
||||
, directory
|
||||
, net-mqtt
|
||||
, req
|
||||
, text
|
||||
, time
|
||||
default-language: Haskell2010
|
||||
|
||||
test-suite spec
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: Spec.hs
|
||||
other-modules:
|
||||
TK2MQTTSpec
|
||||
Paths_tk2mqtt
|
||||
hs-source-dirs:
|
||||
test/spec
|
||||
default-extensions:
|
||||
BlockArguments
|
||||
OverloadedStrings
|
||||
ImportQualifiedPost
|
||||
ghc-options: -Wall -fdefer-typed-holes
|
||||
cpp-options: -DTEST
|
||||
build-tool-depends:
|
||||
hspec-discover:hspec-discover
|
||||
build-depends:
|
||||
QuickCheck
|
||||
, aeson
|
||||
, base >=4.13 && <5
|
||||
, containers
|
||||
, directory
|
||||
, hspec
|
||||
, net-mqtt
|
||||
, quickcheck-instances
|
||||
, req
|
||||
, text
|
||||
, time
|
||||
, tk2mqtt
|
||||
default-language: GHC2021
|
||||
Loading…
Add table
Add a link
Reference in a new issue