diff options
Diffstat (limited to 'spec/src/Thermoprint/API.hs')
-rw-r--r-- | spec/src/Thermoprint/API.hs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/src/Thermoprint/API.hs b/spec/src/Thermoprint/API.hs new file mode 100644 index 0000000..f2ffd02 --- /dev/null +++ b/spec/src/Thermoprint/API.hs | |||
@@ -0,0 +1,21 @@ | |||
1 | {-# LANGUAGE GeneralizedNewtypeDeriving, NoDeriveAnyClass #-} | ||
2 | {-# LANGUAGE TypeOperators, DataKinds #-} | ||
3 | |||
4 | module Thermoprint.API | ||
5 | ( PrinterId(..) | ||
6 | , JobId(..) | ||
7 | , ThermoprintAPI | ||
8 | ) where | ||
9 | |||
10 | import Thermoprint.Printout | ||
11 | |||
12 | import Servant.API | ||
13 | import Data.Aeson | ||
14 | |||
15 | newtype PrinterId = PrinterId Integer | ||
16 | deriving (Show, Eq, FromText, ToText, FromJSON, ToJSON) | ||
17 | |||
18 | newtype JobId = JobId Integer | ||
19 | deriving (Show, Eq, FromText, ToText, FromJSON, ToJSON) | ||
20 | |||
21 | type ThermoprintAPI = "print" :> Capture "printerId" PrinterId :> ReqBody '[JSON] Printout :> Post '[JSON] JobId | ||