git.iko.soy/typeable/request-track
on master help sign in
request-track-servant/request-track-servant.cabal+9−1
since splitsnapshots
unifiedsplit
@@ -11,6 +11,11 @@ maintainer: nick@typeable.io
11category: Web
11category: Web
12build-type: Simple
12build-type: Simple
13
13
14+flag openapi
15+ description: Enable openapi instances
16+ default: False
17+ manual: True
18+
14common warnings
19common warnings
15 ghc-options: -Wall
20 ghc-options: -Wall
16
21
@@ -18,7 +23,6 @@ library
18 import: warnings
23 import: warnings
19 exposed-modules: Web.Tracking.Servant
24 exposed-modules: Web.Tracking.Servant
20 other-modules: Web.Tracking.Servant.Types
25 other-modules: Web.Tracking.Servant.Types
21− -- other-extensions:
22 build-depends: base >=4.14.0.0 && < 5,
26 build-depends: base >=4.14.0.0 && < 5,
23 bytestring >= 0.11,
27 bytestring >= 0.11,
24 containers >= 0.6,
28 containers >= 0.6,
@@ -28,5 +32,9 @@ library
28 servant-client-core >= 0.19,
32 servant-client-core >= 0.19,
29 servant-server >= 0.19,
33 servant-server >= 0.19,
30 wai >= 3.2
34 wai >= 3.2
35+ if flag(openapi)
36+ other-modules: Web.Tracking.Servant.OpenAPI
37+ build-depends: servant-openapi3
38+ cpp-options: -DOPENAPI
31 hs-source-dirs: src
39 hs-source-dirs: src
32 default-language: GHC2021
40 default-language: GHC2021
request-track-servant/src/Web/Tracking/Servant.hs+4
@@ -1,4 +1,8 @@
1+{-# LANGUAGE CPP #-}
1module Web.Tracking.Servant (module Export) where
2module Web.Tracking.Servant (module Export) where
2
3
3import Web.Tracking as Export (ReqtrackInfo(..))
4import Web.Tracking as Export (ReqtrackInfo(..))
4import Web.Tracking.Servant.Types as Export
5import Web.Tracking.Servant.Types as Export
6+#ifdef OPENAPI
7+import Web.Tracking.Servant.OpenAPI as Export ()
8+#endif
request-track-servant/src/Web/Tracking/Servant/OpenAPI.hsnew file+14
@@ -0,0 +1,14 @@
1+{-# OPTIONS_GHC -Wno-orphans #-}
2+module Web.Tracking.Servant.OpenAPI where
3+
4+import Web.Tracking.Servant.Types (RequestTracking, RequestTracking_)
5+
6+import Data.Proxy
7+import Servant.API
8+import Servant.OpenApi
9+
10+instance HasOpenApi api => HasOpenApi (RequestTracking :> api) where
11+ toOpenApi _ = toOpenApi (Proxy :: Proxy api)
12+
13+instance HasOpenApi api => HasOpenApi (RequestTracking_ :> api) where
14+ toOpenApi _ = toOpenApi (Proxy :: Proxy api)
stack.yaml+5−1
@@ -1,4 +1,4 @@
1−resolver: lts-20.26
1+resolver: lts-21.6
2
2
3packages:
3packages:
4- example-server
4- example-server
@@ -11,3 +11,7 @@ extra-deps:
11
11
12nix:
12nix:
13 packages: [ zlib ]
13 packages: [ zlib ]
14+
15+flags:
16+ request-track-servant:
17+ openapi: true