rakuten-0.1.1.2: test/Rakuten/Test/MockServer.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
module Rakuten.Test.MockServer
( mockServer
, runMockServer
) where
import Control.Concurrent
import Network.Wai.Handler.Warp
import Rakuten.Test.Class
import Rakuten.Types
import Servant
type RakutenHeader a = a
type API = "IchibaItem" :> "Search" :> "20170706" :> Get '[JSON] (RakutenHeader IchibaItems)
:<|> "IchibaGenre" :> "Search" :> "20140222" :> Get '[JSON] (RakutenHeader IchibaGenres)
api :: Proxy API
api = Proxy
server :: Server API
server = searchIchibaItem
:<|> searchIchibaGenre
where
searchIchibaItem = return testData
searchIchibaGenre = return testData
mockServer :: IO ()
mockServer = run 8000 (serve api server)
runMockServer :: IO () -> IO ()
runMockServer action = do
_ <- forkIO mockServer
action