{-# LANGUAGE GeneralizedNewtypeDeriving, NoDeriveAnyClass #-} {-# LANGUAGE TypeOperators, DataKinds #-} module Thermoprint.API ( PrinterId(..) , JobId(..) , ThermoprintAPI ) where import Thermoprint.Printout import Servant.API import Data.Aeson newtype PrinterId = PrinterId Integer deriving (Show, Eq, FromText, ToText, FromJSON, ToJSON) newtype JobId = JobId Integer deriving (Show, Eq, FromText, ToText, FromJSON, ToJSON) type ThermoprintAPI = "print" :> Capture "printerId" PrinterId :> ReqBody '[JSON] Printout :> Post '[JSON] JobId