aboutsummaryrefslogtreecommitdiff
path: root/spec/src/Thermoprint/API.hs
blob: f2ffd020963fa1dfae2891d7b774051a3e8efd78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{-# 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