lightning-haskell-0.1.0.2: src/Web/Lightning/Routes.hs
{-# LANGUAGE OverloadedStrings #-}
{-|
Module : Web.Lightning.Routes
Description : Defines route mappings to lightning-viz API endpoints.
Copyright : (c) Connor Moreside, 2016
License : BSD-3
Maintainer : connor@moresi.de
Stability : experimental
Portability : POSIX
Defines the Route mappings to the lightning-viz API.
-}
module Web.Lightning.Routes
( -- * API Endpoints
plot
, stream
, publicLink
)
where
--------------------------------------------------------------------------------
import Network.API.Builder hiding (runRoute)
import Web.Lightning.Types.Visualization (Visualization (..))
--------------------------------------------------------------------------------
-- | The main route that corresponds to the /visualizations endpoint. Using
-- this route, one can create and update plots.
plot :: Route
-- ^ Returns a new route corresponding to /sessionId/visualizations.
plot = Route ["visualizations"]
[]
"POST"
-- | This route is used in conjunction with streaming plot functions.
stream :: Visualization
-- ^ Visualization to append
-> Route
-- ^ Returns the URL to update the visualization.
stream (Visualization i _ _) =
Route ["visualizations", i, "data"]
[]
"POST"
-- | Corresponds to the public URL of a visualization.
publicLink :: Visualization
-- ^ The visualization to create the public link for.
-> Route
-- ^ Route representing public link for visualization.
publicLink (Visualization i _ _) =
Route ["visualizations", i, "public"]
[]
"GET"