on master help sign in
Apply stylish-haskell on all modules
f9bcc15Oleg Grenrus
servant-client/src/Servant/Client.hs+2−2
@@ -13,5 +13,5 @@ module Servant.Client
13 , module Servant.Client.Core.Reexport
13 , module Servant.Client.Core.Reexport
14 ) where
14 ) where
15
15
16−import Servant.Client.Core.Reexport
16+import Servant.Client.Core.Reexport
17−import Servant.Client.Internal.HttpClient
17+import Servant.Client.Internal.HttpClient
servant-client/src/Servant/Client/Internal/HttpClient.hs+33−18
@@ -11,34 +11,49 @@
11{-# LANGUAGE TypeFamilies #-}
11{-# LANGUAGE TypeFamilies #-}
12module Servant.Client.Internal.HttpClient where
12module Servant.Client.Internal.HttpClient where
13
13
14−import Prelude ()
14+import Prelude ()
15import Prelude.Compat
15import Prelude.Compat
16
16
17import Control.Concurrent.STM.TVar
17import Control.Concurrent.STM.TVar
18import Control.Exception
18import Control.Exception
19import Control.Monad
19import Control.Monad
20−import Control.Monad.Base (MonadBase (..))
20+import Control.Monad.Base
21+ (MonadBase (..))
21−import Control.Monad.Catch (MonadCatch, MonadThrow)
22+import Control.Monad.Catch
23+ (MonadCatch, MonadThrow)
22−import Control.Monad.Error.Class (MonadError (..))
24+import Control.Monad.Error.Class
25+ (MonadError (..))
23import Control.Monad.Reader
26import Control.Monad.Reader
24−import Control.Monad.STM (atomically)
27+import Control.Monad.STM
28+ (atomically)
25−import Control.Monad.Trans.Control (MonadBaseControl (..))
29+import Control.Monad.Trans.Control
30+ (MonadBaseControl (..))
26import Control.Monad.Trans.Except
31import Control.Monad.Trans.Except
27−import Data.ByteString.Builder (toLazyByteString)
32+import Data.ByteString.Builder
33+ (toLazyByteString)
28import qualified Data.ByteString.Lazy as BSL
34import qualified Data.ByteString.Lazy as BSL
29−import Data.Foldable (toList, for_)
35+import Data.Foldable
36+ (for_, toList)
30−import Data.Functor.Alt (Alt (..))
37+import Data.Functor.Alt
38+ (Alt (..))
31−import Data.Maybe (maybeToList)
39+import Data.Maybe
40+ (maybeToList)
32−import Data.Semigroup ((<>))
41+import Data.Proxy
42+ (Proxy (..))
43+import Data.Semigroup
44+ ((<>))
33−import Data.Proxy (Proxy (..))
45+import Data.Sequence
34−import Data.Sequence (fromList)
46+ (fromList)
35−import Data.String (fromString)
47+import Data.String
48+ (fromString)
36import qualified Data.Text as T
49import qualified Data.Text as T
37−import Data.Time.Clock (getCurrentTime)
50+import Data.Time.Clock
51+ (getCurrentTime)
38import GHC.Generics
52import GHC.Generics
39−import Network.HTTP.Media (renderHeader)
53+import Network.HTTP.Media
54+ (renderHeader)
40−import Network.HTTP.Types (hContentType, renderQuery,
55+import Network.HTTP.Types
41− statusCode)
56+ (hContentType, renderQuery, statusCode)
42import Servant.Client.Core
57import Servant.Client.Core
43
58
44import qualified Network.HTTP.Client as Client
59import qualified Network.HTTP.Client as Client
servant-client/test/Servant/ClientSpec.hs+31−34
@@ -26,56 +26,53 @@
26#include "overlapping-compat.h"
26#include "overlapping-compat.h"
27module Servant.ClientSpec (spec, Person(..), startWaiApp, endWaiApp) where
27module Servant.ClientSpec (spec, Person(..), startWaiApp, endWaiApp) where
28
28
29−import Prelude ()
29+import Prelude ()
30import Prelude.Compat
30import Prelude.Compat
31
31
32−import Control.Arrow (left)
32+import Control.Arrow
33+ (left)
33−import Control.Concurrent (ThreadId, forkIO,
34+import Control.Concurrent
34− killThread)
35+ (ThreadId, forkIO, killThread)
35−import Control.Exception (bracket)
36+import Control.Exception
37+ (bracket)
36−import Control.Monad.Error.Class (throwError)
38+import Control.Monad.Error.Class
39+ (throwError)
37import Data.Aeson
40import Data.Aeson
38−import Data.Char (chr, isPrint)
41+import Data.Char
42+ (chr, isPrint)
39−import Data.Foldable (forM_)
43+import Data.Foldable
44+ (forM_)
40−import Data.Semigroup ((<>))
45+import Data.Monoid ()
41−import Data.Monoid ()
42import Data.Proxy
46import Data.Proxy
47+import Data.Semigroup
48+ ((<>))
43import qualified Generics.SOP as SOP
49import qualified Generics.SOP as SOP
44−import GHC.Generics (Generic)
50+import GHC.Generics
51+ (Generic)
45import qualified Network.HTTP.Client as C
52import qualified Network.HTTP.Client as C
46import qualified Network.HTTP.Types as HTTP
53import qualified Network.HTTP.Types as HTTP
47import Network.Socket
54import Network.Socket
48import qualified Network.Wai as Wai
55import qualified Network.Wai as Wai
49import Network.Wai.Handler.Warp
56import Network.Wai.Handler.Warp
50−import System.IO.Unsafe (unsafePerformIO)
57+import System.IO.Unsafe
58+ (unsafePerformIO)
51import Test.Hspec
59import Test.Hspec
52import Test.Hspec.QuickCheck
60import Test.Hspec.QuickCheck
53import Test.HUnit
61import Test.HUnit
54import Test.QuickCheck
62import Test.QuickCheck
55−import Web.FormUrlEncoded (FromForm, ToForm)
63+import Web.FormUrlEncoded
56−
64+ (FromForm, ToForm)
65+
57−import Servant.API ((:<|>) ((:<|>)),
66+import Servant.API
58− (:>), AuthProtect,
67+ ((:<|>) ((:<|>)), (:>), AuthProtect, BasicAuth,
59− BasicAuth,
60− BasicAuthData (..),
61− Capture,
62− CaptureAll, Delete,
68+ BasicAuthData (..), Capture, CaptureAll, Delete,
63− DeleteNoContent,
69+ DeleteNoContent, EmptyAPI, FormUrlEncoded, Get, Header,
64− EmptyAPI, addHeader,
65− FormUrlEncoded,
66− Get, Header,
67− Headers, JSON,
68− NoContent (NoContent),
70+ Headers, JSON, NoContent (NoContent), Post, Put, QueryFlag,
69− Post, Put, Raw,
71+ QueryParam, QueryParams, Raw, ReqBody, addHeader, getHeaders)
70− QueryFlag,
71− QueryParam,
72− QueryParams,
73− ReqBody,
74− getHeaders)
75import Servant.API.Internal.Test.ComprehensiveAPI
72import Servant.API.Internal.Test.ComprehensiveAPI
76import Servant.Client
73import Servant.Client
77−import qualified Servant.Client.Core.Internal.Request as Req
74+import qualified Servant.Client.Core.Internal.Auth as Auth
78−import qualified Servant.Client.Core.Internal.Auth as Auth
75+import qualified Servant.Client.Core.Internal.Request as Req
79import Servant.Server
76import Servant.Server
80import Servant.Server.Experimental.Auth
77import Servant.Server.Experimental.Auth
81
78
servant-client/test/Servant/StreamSpec.hs+17−12
@@ -26,31 +26,36 @@
26#include "overlapping-compat.h"
26#include "overlapping-compat.h"
27module Servant.StreamSpec (spec) where
27module Servant.StreamSpec (spec) where
28
28
29−import Control.Monad (replicateM_, void)
29+import Control.Monad
30+ (replicateM_, void)
30import qualified Data.ByteString as BS
31import qualified Data.ByteString as BS
31import Data.Proxy
32import Data.Proxy
32import qualified Network.HTTP.Client as C
33import qualified Network.HTTP.Client as C
33−import Prelude ()
34+import Prelude ()
34import Prelude.Compat
35import Prelude.Compat
36+import System.IO
35−import System.IO (IOMode (ReadMode), withFile)
37+ (IOMode (ReadMode), withFile)
36−import System.IO.Unsafe (unsafePerformIO)
38+import System.IO.Unsafe
39+ (unsafePerformIO)
37import Test.Hspec
40import Test.Hspec
38import Test.QuickCheck
41import Test.QuickCheck
39
42
40−import Servant.API ((:<|>) ((:<|>)), (:>), JSON,
43+import Servant.API
41− NetstringFraming, NewlineFraming,
44+ ((:<|>) ((:<|>)), (:>), JSON, NetstringFraming,
42− OctetStream, ResultStream (..),
45+ NewlineFraming, NoFraming, OctetStream, ResultStream (..),
43− StreamGenerator (..), StreamGet,
46+ StreamGenerator (..), StreamGet)
44− NoFraming)
45import Servant.Client
47import Servant.Client
46−import Servant.ClientSpec (Person (..))
48+import Servant.ClientSpec
49+ (Person (..))
47import qualified Servant.ClientSpec as CS
50import qualified Servant.ClientSpec as CS
48import Servant.Server
51import Servant.Server
49
52
50#if MIN_VERSION_base(4,10,0)
53#if MIN_VERSION_base(4,10,0)
54+import GHC.Stats
51−import GHC.Stats (gcdetails_mem_in_use_bytes, gc, getRTSStats)
55+ (gc, gcdetails_mem_in_use_bytes, getRTSStats)
52#else
56#else
57+import GHC.Stats
53−import GHC.Stats (currentBytesUsed, getGCStats)
58+ (currentBytesUsed, getGCStats)
54#endif
59#endif
55
60
56spec :: Spec
61spec :: Spec
servant-docs/example/greet.hs+9−8
@@ -5,14 +5,15 @@
5{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE TypeOperators #-}
6{-# LANGUAGE TypeOperators #-}
7{-# OPTIONS_GHC -fno-warn-orphans #-}
7{-# OPTIONS_GHC -fno-warn-orphans #-}
8−import Control.Lens
8+import Control.Lens
9−import Data.Aeson
9+import Data.Aeson
10−import Data.Proxy
10+import Data.Proxy
11−import Data.String.Conversions
11+import Data.String.Conversions
12−import Data.Text (Text)
12+import Data.Text
13+ (Text)
13−import GHC.Generics
14+import GHC.Generics
14−import Servant.API
15+import Servant.API
15−import Servant.Docs
16+import Servant.Docs
16
17
17-- * Example
18-- * Example
18
19
servant-docs/src/Servant/Docs.hs+2−2
@@ -56,5 +56,5 @@ module Servant.Docs
56 , single
56 , single
57 ) where
57 ) where
58
58
59−import Servant.Docs.Internal
59+import Servant.Docs.Internal
60−import Servant.Docs.Internal.Pretty
60+import Servant.Docs.Internal.Pretty
servant-docs/src/Servant/Docs/Internal.hs+31−19
@@ -20,33 +20,45 @@
20#include "overlapping-compat.h"
20#include "overlapping-compat.h"
21module Servant.Docs.Internal where
21module Servant.Docs.Internal where
22
22
23−import Prelude ()
23+import Prelude ()
24import Prelude.Compat
24import Prelude.Compat
25
25
26import Control.Applicative
26import Control.Applicative
27−import Control.Arrow (second)
27+import Control.Arrow
28+ (second)
28−import Control.Lens (makeLenses, mapped, over,
29+import Control.Lens
29− traversed, view, (%~), (&), (.~),
30+ (makeLenses, mapped, over, traversed, view, (%~), (&), (.~),
30− (<>~), (^.), (|>))
31+ (<>~), (^.), (|>))
31import qualified Control.Monad.Omega as Omega
32import qualified Control.Monad.Omega as Omega
32import qualified Data.ByteString.Char8 as BSC
33import qualified Data.ByteString.Char8 as BSC
33−import Data.ByteString.Lazy.Char8 (ByteString)
34+import Data.ByteString.Lazy.Char8
35+ (ByteString)
34import qualified Data.CaseInsensitive as CI
36import qualified Data.CaseInsensitive as CI
35−import Data.Foldable (fold)
37+import Data.Foldable
38+ (fold)
36−import Data.Hashable (Hashable)
39+import Data.Hashable
40+ (Hashable)
37−import Data.HashMap.Strict (HashMap)
41+import Data.HashMap.Strict
42+ (HashMap)
43+import Data.List.Compat
38−import Data.List.Compat (intercalate, intersperse, sort)
44+ (intercalate, intersperse, sort)
39−import Data.List.NonEmpty (NonEmpty ((:|)), groupWith)
45+import Data.List.NonEmpty
46+ (NonEmpty ((:|)), groupWith)
40import qualified Data.List.NonEmpty as NE
47import qualified Data.List.NonEmpty as NE
41import Data.Maybe
48import Data.Maybe
42−import Data.Monoid (All (..), Any (..), Dual (..),
49+import Data.Monoid
43− First (..), Last (..),
50+ (All (..), Any (..), Dual (..), First (..), Last (..),
44− Product (..), Sum (..))
51+ Product (..), Sum (..))
45−import Data.Ord (comparing)
52+import Data.Ord
53+ (comparing)
46−import Data.Proxy (Proxy (Proxy))
54+import Data.Proxy
55+ (Proxy (Proxy))
47−import Data.Semigroup (Semigroup (..))
56+import Data.Semigroup
57+ (Semigroup (..))
48−import Data.String.Conversions (cs)
58+import Data.String.Conversions
59+ (cs)
49−import Data.Text (Text, unpack)
60+import Data.Text
61+ (Text, unpack)
50import GHC.Generics
62import GHC.Generics
51import GHC.TypeLits
63import GHC.TypeLits
52import Servant.API
64import Servant.API
servant-docs/src/Servant/Docs/Internal/Pretty.hs+10−6
@@ -4,16 +4,20 @@
4{-# LANGUAGE MultiParamTypeClasses #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE PolyKinds #-}
6{-# LANGUAGE PolyKinds #-}
7−{-# LANGUAGE TypeOperators #-}
8{-# LANGUAGE TypeFamilies #-}
7{-# LANGUAGE TypeFamilies #-}
8+{-# LANGUAGE TypeOperators #-}
9
9
10module Servant.Docs.Internal.Pretty where
10module Servant.Docs.Internal.Pretty where
11
11
12−import Data.Aeson (ToJSON(..))
12+import Data.Aeson
13+ (ToJSON (..))
13−import Data.Aeson.Encode.Pretty (encodePretty)
14+import Data.Aeson.Encode.Pretty
15+ (encodePretty)
14−import Data.Proxy (Proxy(Proxy))
16+import Data.Proxy
17+ (Proxy (Proxy))
15−import Network.HTTP.Media ((//))
18+import Network.HTTP.Media
19+ ((//))
16−import Servant.API
20+import Servant.API
17
21
18-- | PrettyJSON content type.
22-- | PrettyJSON content type.
19data PrettyJSON
23data PrettyJSON
servant-docs/test/Servant/DocsSpec.hs+2−1
@@ -20,7 +20,8 @@ import Control.Lens
20import Data.Aeson
20import Data.Aeson
21import Data.Monoid
21import Data.Monoid
22import Data.Proxy
22import Data.Proxy
23−import Data.String.Conversions (cs)
23+import Data.String.Conversions
24+ (cs)
24import GHC.Generics
25import GHC.Generics
25import Test.Hspec
26import Test.Hspec
26
27
servant-foreign/Setup.hs+1−1
@@ -1,2 +1,2 @@
1−import Distribution.Simple
1+import Distribution.Simple
2main = defaultMain
2main = defaultMain
servant-foreign/src/Servant/Foreign.hs+3−3
@@ -51,6 +51,6 @@ module Servant.Foreign
51 , module Servant.Foreign.Inflections
51 , module Servant.Foreign.Inflections
52 ) where
52 ) where
53
53
54−import Servant.API
54+import Servant.API
55+import Servant.Foreign.Inflections
55−import Servant.Foreign.Internal
56+import Servant.Foreign.Internal
56−import Servant.Foreign.Inflections
servant-foreign/src/Servant/Foreign/Inflections.hs+7−4
@@ -10,11 +10,14 @@ module Servant.Foreign.Inflections
10 ) where
10 ) where
11
11
12
12
13−import Control.Lens hiding (cons)
13+import Control.Lens hiding
14+ (cons)
14−import qualified Data.Char as C
15+import qualified Data.Char as C
15import Data.Monoid
16import Data.Monoid
16−import Data.Text hiding (map)
17+import Data.Text hiding
18+ (map)
17−import Prelude hiding (head, tail)
19+import Prelude hiding
20+ (head, tail)
18import Servant.Foreign.Internal
21import Servant.Foreign.Internal
19
22
20concatCaseL :: Getter FunctionName Text
23concatCaseL :: Getter FunctionName Text
servant-foreign/src/Servant/Foreign/Internal.hs+29−24
@@ -1,42 +1,47 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE ConstraintKinds #-}
3−{-# LANGUAGE DeriveDataTypeable #-}
3+{-# LANGUAGE DeriveDataTypeable #-}
4−{-# LANGUAGE FlexibleContexts #-}
4+{-# LANGUAGE FlexibleContexts #-}
5−{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE FlexibleInstances #-}
6{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6{-# LANGUAGE GeneralizedNewtypeDeriving #-}
7−{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE MultiParamTypeClasses #-}
8−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings #-}
9−{-# LANGUAGE PolyKinds #-}
9+{-# LANGUAGE PolyKinds #-}
10−{-# LANGUAGE ScopedTypeVariables #-}
10+{-# LANGUAGE ScopedTypeVariables #-}
11−{-# LANGUAGE TemplateHaskell #-}
11+{-# LANGUAGE TemplateHaskell #-}
12−{-# LANGUAGE TypeFamilies #-}
12+{-# LANGUAGE TypeFamilies #-}
13−{-# LANGUAGE TypeOperators #-}
13+{-# LANGUAGE TypeOperators #-}
14−{-# LANGUAGE UndecidableInstances #-}
14+{-# LANGUAGE UndecidableInstances #-}
15#if !MIN_VERSION_base(4,8,0)
15#if !MIN_VERSION_base(4,8,0)
16−{-# LANGUAGE NullaryTypeClasses #-}
16+{-# LANGUAGE NullaryTypeClasses #-}
17#endif
17#endif
18
18
19-- | Generalizes all the data needed to make code generation work with
19-- | Generalizes all the data needed to make code generation work with
20-- arbitrary programming languages.
20-- arbitrary programming languages.
21module Servant.Foreign.Internal where
21module Servant.Foreign.Internal where
22
22
23−import Prelude ()
23+import Prelude ()
24−import Prelude.Compat
24+import Prelude.Compat
25
25
26−import Control.Lens (makePrisms, makeLenses, Getter, (&), (<>~), (%~),
26+import Control.Lens
27− (.~))
27+ (Getter, makeLenses, makePrisms, (%~), (&), (.~), (<>~))
28−import Data.Data (Data)
28+import Data.Data
29+ (Data)
29import Data.Proxy
30import Data.Proxy
30−import Data.Semigroup (Semigroup)
31+import Data.Semigroup
32+ (Semigroup)
31import Data.String
33import Data.String
32import Data.Text
34import Data.Text
33−import Data.Typeable (Typeable)
35+import Data.Text.Encoding
34−import Data.Text.Encoding (decodeUtf8)
36+ (decodeUtf8)
37+import Data.Typeable
38+ (Typeable)
35import GHC.TypeLits
39import GHC.TypeLits
36−import qualified Network.HTTP.Types as HTTP
40+import qualified Network.HTTP.Types as HTTP
37import Servant.API
41import Servant.API
42+import Servant.API.Modifiers
43+ (RequiredArgument)
38import Servant.API.TypeLevel
44import Servant.API.TypeLevel
39−import Servant.API.Modifiers (RequiredArgument)
40
45
41newtype FunctionName = FunctionName { unFunctionName :: [Text] }
46newtype FunctionName = FunctionName { unFunctionName :: [Text] }
42 deriving (Data, Show, Eq, Semigroup, Monoid, Typeable)
47 deriving (Data, Show, Eq, Semigroup, Monoid, Typeable)
servant-foreign/test/Servant/ForeignSpec.hs+17−16
@@ -1,14 +1,14 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE ConstraintKinds #-}
3−{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DataKinds #-}
4−{-# LANGUAGE FlexibleContexts #-}
4+{-# LANGUAGE FlexibleContexts #-}
5−{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE FlexibleInstances #-}
6−{-# LANGUAGE MultiParamTypeClasses #-}
6+{-# LANGUAGE MultiParamTypeClasses #-}
7−{-# LANGUAGE OverloadedStrings #-}
7+{-# LANGUAGE OverloadedStrings #-}
8−{-# LANGUAGE PolyKinds #-}
8+{-# LANGUAGE PolyKinds #-}
9−{-# LANGUAGE ScopedTypeVariables #-}
9+{-# LANGUAGE ScopedTypeVariables #-}
10−{-# LANGUAGE TypeFamilies #-}
10+{-# LANGUAGE TypeFamilies #-}
11−{-# LANGUAGE TypeOperators #-}
11+{-# LANGUAGE TypeOperators #-}
12#if __GLASGOW_HASKELL__ < 709
12#if __GLASGOW_HASKELL__ < 709
13{-# OPTIONS_GHC -fcontext-stack=41 #-}
13{-# OPTIONS_GHC -fcontext-stack=41 #-}
14#endif
14#endif
@@ -16,12 +16,13 @@
16
16
17module Servant.ForeignSpec where
17module Servant.ForeignSpec where
18
18
19−import Data.Monoid ((<>))
19+import Data.Monoid
20+ ((<>))
20−import Data.Proxy
21+import Data.Proxy
21−import Servant.Foreign
22−import Servant.API.Internal.Test.ComprehensiveAPI
22+import Servant.API.Internal.Test.ComprehensiveAPI
23+import Servant.Foreign
23
24
24−import Test.Hspec
25+import Test.Hspec
25
26
26
27
27spec :: Spec
28spec :: Spec
servant-server/src/Servant.hs+3−2
@@ -13,9 +13,10 @@ module Servant (
13 throwError
13 throwError
14 ) where
14 ) where
15
15
16−import Control.Monad.Error.Class (throwError)
16+import Control.Monad.Error.Class
17+ (throwError)
17import Data.Proxy
18import Data.Proxy
18import Servant.API
19import Servant.API
19−import Servant.Server
20import Servant.Links
20import Servant.Links
21+import Servant.Server
21import Servant.Utils.StaticFiles
22import Servant.Utils.StaticFiles
servant-server/src/Servant/Server.hs+13−9
@@ -1,8 +1,8 @@
1−{-# LANGUAGE ConstraintKinds #-}
1+{-# LANGUAGE ConstraintKinds #-}
2−{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DataKinds #-}
3−{-# LANGUAGE FlexibleContexts #-}
3+{-# LANGUAGE FlexibleContexts #-}
4−{-# LANGUAGE RankNTypes #-}
4+{-# LANGUAGE RankNTypes #-}
5−{-# LANGUAGE TypeFamilies #-}
5+{-# LANGUAGE TypeFamilies #-}
6
6
7-- | This module lets you implement 'Server's for defined APIs. You'll
7-- | This module lets you implement 'Server's for defined APIs. You'll
8-- most likely just need 'serve'.
8-- most likely just need 'serve'.
@@ -92,10 +92,14 @@ module Servant.Server
92
92
93 ) where
93 ) where
94
94
95−import Data.Proxy (Proxy (..))
95+import Data.Proxy
96+ (Proxy (..))
96−import Data.Tagged (Tagged (..))
97+import Data.Tagged
98+ (Tagged (..))
97−import Data.Text (Text)
99+import Data.Text
100+ (Text)
98−import Network.Wai (Application)
101+import Network.Wai
102+ (Application)
99import Servant.Server.Internal
103import Servant.Server.Internal
100
104
101
105
servant-server/src/Servant/Server/Experimental/Auth.hs+28−24
@@ -1,33 +1,37 @@
1{-# OPTIONS_GHC -fno-warn-orphans #-}
1{-# OPTIONS_GHC -fno-warn-orphans #-}
2−{-# LANGUAGE DeriveGeneric #-}
3−{-# LANGUAGE DeriveDataTypeable #-}
2+{-# LANGUAGE DeriveDataTypeable #-}
3+{-# LANGUAGE DeriveGeneric #-}
4−{-# LANGUAGE FlexibleContexts #-}
4+{-# LANGUAGE FlexibleContexts #-}
5−{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE FlexibleInstances #-}
6−{-# LANGUAGE MultiParamTypeClasses #-}
6+{-# LANGUAGE MultiParamTypeClasses #-}
7−{-# LANGUAGE PolyKinds #-}
7+{-# LANGUAGE PolyKinds #-}
8−{-# LANGUAGE ScopedTypeVariables #-}
8+{-# LANGUAGE ScopedTypeVariables #-}
9−{-# LANGUAGE TypeFamilies #-}
9+{-# LANGUAGE TypeFamilies #-}
10−{-# LANGUAGE TypeOperators #-}
10+{-# LANGUAGE TypeOperators #-}
11−{-# LANGUAGE UndecidableInstances #-}
11+{-# LANGUAGE UndecidableInstances #-}
12
12
13module Servant.Server.Experimental.Auth where
13module Servant.Server.Experimental.Auth where
14
14
15−import Control.Monad.Trans (liftIO)
15+import Control.Monad.Trans
16+ (liftIO)
16−import Data.Proxy (Proxy (Proxy))
17+import Data.Proxy
18+ (Proxy (Proxy))
17−import Data.Typeable (Typeable)
19+import Data.Typeable
20+ (Typeable)
18−import GHC.Generics (Generic)
21+import GHC.Generics
22+ (Generic)
19−import Network.Wai (Request)
23+import Network.Wai
24+ (Request)
20
25
21−import Servant ((:>))
26+import Servant
27+ ((:>))
22import Servant.API.Experimental.Auth
28import Servant.API.Experimental.Auth
23−import Servant.Server.Internal (HasContextEntry,
29+import Servant.Server.Internal
24− HasServer (..),
25− getContextEntry)
30+ (HasContextEntry, HasServer (..), getContextEntry)
26−import Servant.Server.Internal.RoutingApplication (addAuthCheck,
31+import Servant.Server.Internal.Handler
32+ (Handler, runHandler)
33+import Servant.Server.Internal.RoutingApplication
27− delayedFailFatal,
34+ (DelayedIO, addAuthCheck, delayedFailFatal, withRequest)
28− DelayedIO,
29− withRequest)
30−import Servant.Server.Internal.Handler (Handler, runHandler)
31
35
32-- * General Auth
36-- * General Auth
33
37
servant-server/src/Servant/Server/Internal.hs+74−76
@@ -1,27 +1,23 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE ConstraintKinds #-}
3−{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DataKinds #-}
4−{-# LANGUAGE DeriveDataTypeable #-}
4+{-# LANGUAGE DeriveDataTypeable #-}
5−{-# LANGUAGE FlexibleContexts #-}
5+{-# LANGUAGE FlexibleContexts #-}
6−{-# LANGUAGE FlexibleInstances #-}
6+{-# LANGUAGE FlexibleInstances #-}
7−{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE MultiParamTypeClasses #-}
8−{-# LANGUAGE OverloadedStrings #-}
8+{-# LANGUAGE OverloadedStrings #-}
9−{-# LANGUAGE PolyKinds #-}
9+{-# LANGUAGE PolyKinds #-}
10−{-# LANGUAGE RankNTypes #-}
10+{-# LANGUAGE RankNTypes #-}
11−{-# LANGUAGE ScopedTypeVariables #-}
11+{-# LANGUAGE ScopedTypeVariables #-}
12−{-# LANGUAGE TupleSections #-}
12+{-# LANGUAGE TupleSections #-}
13−{-# LANGUAGE TypeFamilies #-}
13+{-# LANGUAGE TypeFamilies #-}
14−{-# LANGUAGE TypeOperators #-}
14+{-# LANGUAGE TypeOperators #-}
15−{-# LANGUAGE UndecidableInstances #-}
15+{-# LANGUAGE UndecidableInstances #-}
16
16
17#if MIN_VERSION_base(4,9,0) && __GLASGOW_HASKELL__ >= 802
17#if MIN_VERSION_base(4,9,0) && __GLASGOW_HASKELL__ >= 802
18#define HAS_TYPE_ERROR
18#define HAS_TYPE_ERROR
19#endif
19#endif
20
20
21−#ifdef HAS_TYPE_ERROR
22−{-# LANGUAGE UndecidableInstances #-}
23−#endif
24−
25#include "overlapping-compat.h"
21#include "overlapping-compat.h"
26
22
27module Servant.Server.Internal
23module Servant.Server.Internal
@@ -34,72 +30,74 @@ module Servant.Server.Internal
34 , module Servant.Server.Internal.ServantErr
30 , module Servant.Server.Internal.ServantErr
35 ) where
31 ) where
36
32
37−import Control.Monad (join, when)
33+import Control.Monad
34+ (join, when)
38−import Control.Monad.Trans (liftIO)
35+import Control.Monad.Trans
36+ (liftIO)
39−import Control.Monad.Trans.Resource (runResourceT)
37+import Control.Monad.Trans.Resource
38+ (runResourceT)
40−import qualified Data.ByteString as B
39+import qualified Data.ByteString as B
41−import qualified Data.ByteString.Builder as BB
40+import qualified Data.ByteString.Builder as BB
42−import qualified Data.ByteString.Char8 as BC8
41+import qualified Data.ByteString.Char8 as BC8
43−import qualified Data.ByteString.Lazy as BL
42+import qualified Data.ByteString.Lazy as BL
44−import Data.Maybe (fromMaybe, mapMaybe,
43+import Data.Either
44+ (partitionEithers)
45+import Data.Maybe
45− isNothing, maybeToList)
46+ (fromMaybe, isNothing, mapMaybe, maybeToList)
46−import Data.Either (partitionEithers)
47−import Data.Semigroup ((<>))
47+import Data.Semigroup
48+ ((<>))
48−import Data.String (IsString (..))
49+import Data.String
50+ (IsString (..))
49−import Data.String.Conversions (cs)
51+import Data.String.Conversions
52+ (cs)
50−import Data.Tagged (Tagged(..), retag, untag)
53+import Data.Tagged
54+ (Tagged (..), retag, untag)
51−import qualified Data.Text as T
55+import qualified Data.Text as T
52import Data.Typeable
56import Data.Typeable
57+import GHC.TypeLits
53−import GHC.TypeLits (KnownNat, KnownSymbol, natVal,
58+ (KnownNat, KnownSymbol, natVal, symbolVal)
54− symbolVal)
59+import qualified Network.HTTP.Media as NHM
60+import Network.HTTP.Types hiding
55−import Network.HTTP.Types hiding (Header, ResponseHeaders)
61+ (Header, ResponseHeaders)
56−import qualified Network.HTTP.Media as NHM
57−import Network.Socket (SockAddr)
62+import Network.Socket
63+ (SockAddr)
58−import Network.Wai (Application, Request,
64+import Network.Wai
59− httpVersion, isSecure,
65+ (Application, Request, httpVersion, isSecure, lazyRequestBody,
60− lazyRequestBody,
61− rawQueryString, remoteHost,
62− requestHeaders, requestMethod,
66+ rawQueryString, remoteHost, requestHeaders, requestMethod,
63− responseLBS, responseStream,
67+ responseLBS, responseStream, vault)
64− vault)
65−import Prelude ()
68+import Prelude ()
66import Prelude.Compat
69import Prelude.Compat
67−import Web.HttpApiData (FromHttpApiData, parseHeader,
68− parseQueryParam,
69− parseUrlPieceMaybe,
70− parseUrlPieces)
71−import Servant.API ((:<|>) (..), (:>), BasicAuth, Capture',
70+import Servant.API
72− CaptureAll, Verb, EmptyAPI,
71+ ((:<|>) (..), (:>), Accept (..), BasicAuth,
73− ReflectMethod(reflectMethod),
72+ BoundaryStrategy (..), Capture', CaptureAll, Description,
74− IsSecure(..), Header', QueryFlag,
73+ EmptyAPI, FramingRender (..), Header', If, IsSecure (..),
75− QueryParam', QueryParams, Raw,
74+ QueryFlag, QueryParam', QueryParams, Raw,
76− RemoteHost, ReqBody', Vault,
75+ ReflectMethod (reflectMethod), RemoteHost, ReqBody',
77− WithNamedContext,
76+ SBool (..), SBoolI (..), Stream, StreamGenerator (..),
78− Description, Summary,
79− Accept(..),
80− FramingRender(..), Stream,
81− StreamGenerator(..), ToStreamGenerator(..),
77+ Summary, ToStreamGenerator (..), Vault, Verb,
82− BoundaryStrategy(..),
78+ WithNamedContext)
83− If, SBool (..), SBoolI (..))
84−import Servant.API.Modifiers (unfoldRequestArgument, RequestArgument, FoldRequired, FoldLenient)
85−import Servant.API.ContentTypes (AcceptHeader (..),
79+import Servant.API.ContentTypes
86− AllCTRender (..),
87− AllCTUnrender (..),
80+ (AcceptHeader (..), AllCTRender (..), AllCTUnrender (..),
88− AllMime,
89− MimeRender(..),
90− canHandleAcceptH)
81+ AllMime, MimeRender (..), canHandleAcceptH)
82+import Servant.API.Modifiers
83+ (FoldLenient, FoldRequired, RequestArgument,
84+ unfoldRequestArgument)
85+import Servant.API.ResponseHeaders
91−import Servant.API.ResponseHeaders (GetHeaders, Headers, getHeaders,
86+ (GetHeaders, Headers, getHeaders, getResponse)
92− getResponse)
87+import Web.HttpApiData
88+ (FromHttpApiData, parseHeader, parseQueryParam,
89+ parseUrlPieceMaybe, parseUrlPieces)
93
90
94−import Servant.Server.Internal.Context
95import Servant.Server.Internal.BasicAuth
91import Servant.Server.Internal.BasicAuth
92+import Servant.Server.Internal.Context
96import Servant.Server.Internal.Handler
93import Servant.Server.Internal.Handler
97import Servant.Server.Internal.Router
94import Servant.Server.Internal.Router
98import Servant.Server.Internal.RoutingApplication
95import Servant.Server.Internal.RoutingApplication
99import Servant.Server.Internal.ServantErr
96import Servant.Server.Internal.ServantErr
100
97
101#ifdef HAS_TYPE_ERROR
98#ifdef HAS_TYPE_ERROR
102−import GHC.TypeLits (TypeError, ErrorMessage (..))
99+import GHC.TypeLits
100+ (ErrorMessage (..), TypeError)
103#endif
101#endif
104
102
105class HasServer api context where
103class HasServer api context where
@@ -762,7 +760,7 @@ instance (HasContextEntry context (NamedContext name subContext), HasServer subA
762-- ...Maybe you haven't applied enough arguments to
760-- ...Maybe you haven't applied enough arguments to
763-- ...Capture' '[] "foo"
761-- ...Capture' '[] "foo"
764-- ...
762-- ...
765−--
763+--
766instance TypeError (HasServerArrowKindError arr) => HasServer ((arr :: k -> l) :> api) context
764instance TypeError (HasServerArrowKindError arr) => HasServer ((arr :: k -> l) :> api) context
767 where
765 where
768 type ServerT (arr :> api) m = TypeError (HasServerArrowKindError arr)
766 type ServerT (arr :> api) m = TypeError (HasServerArrowKindError arr)
servant-server/src/Servant/Server/Internal/BasicAuth.hs+22−13
@@ -1,22 +1,31 @@
1{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2−{-# LANGUAGE DeriveFunctor #-}
2+{-# LANGUAGE DeriveFunctor #-}
3−{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE DeriveGeneric #-}
4−{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE OverloadedStrings #-}
5
5
6module Servant.Server.Internal.BasicAuth where
6module Servant.Server.Internal.BasicAuth where
7
7
8−import Control.Monad (guard)
8+import Control.Monad
9+ (guard)
9−import Control.Monad.Trans (liftIO)
10+import Control.Monad.Trans
11+ (liftIO)
10−import qualified Data.ByteString as BS
12+import qualified Data.ByteString as BS
11−import Data.ByteString.Base64 (decodeLenient)
13+import Data.ByteString.Base64
14+ (decodeLenient)
12−import Data.Monoid ((<>))
15+import Data.Monoid
16+ ((<>))
13−import Data.Typeable (Typeable)
17+import Data.Typeable
18+ (Typeable)
19+import Data.Word8
14−import Data.Word8 (isSpace, toLower, _colon)
20+ (isSpace, toLower, _colon)
15import GHC.Generics
21import GHC.Generics
16−import Network.HTTP.Types (Header)
22+import Network.HTTP.Types
23+ (Header)
24+import Network.Wai
17−import Network.Wai (Request, requestHeaders)
25+ (Request, requestHeaders)
18
26
19−import Servant.API.BasicAuth (BasicAuthData(BasicAuthData))
27+import Servant.API.BasicAuth
28+ (BasicAuthData (BasicAuthData))
20import Servant.Server.Internal.RoutingApplication
29import Servant.Server.Internal.RoutingApplication
21import Servant.Server.Internal.ServantErr
30import Servant.Server.Internal.ServantErr
22
31
servant-server/src/Servant/Server/Internal/Handler.hs+19−11
@@ -5,17 +5,25 @@
5{-# LANGUAGE TypeFamilies #-}
5{-# LANGUAGE TypeFamilies #-}
6module Servant.Server.Internal.Handler where
6module Servant.Server.Internal.Handler where
7
7
8−import Prelude ()
8+import Prelude ()
9−import Prelude.Compat
9+import Prelude.Compat
10−
10+
11−import Control.Monad.Base (MonadBase (..))
11+import Control.Monad.Base
12+ (MonadBase (..))
12−import Control.Monad.Catch (MonadCatch, MonadThrow)
13+import Control.Monad.Catch
14+ (MonadCatch, MonadThrow)
13−import Control.Monad.Error.Class (MonadError)
15+import Control.Monad.Error.Class
16+ (MonadError)
14−import Control.Monad.IO.Class (MonadIO)
17+import Control.Monad.IO.Class
18+ (MonadIO)
15−import Control.Monad.Trans.Control (MonadBaseControl (..))
19+import Control.Monad.Trans.Control
20+ (MonadBaseControl (..))
16−import Control.Monad.Trans.Except (ExceptT, runExceptT)
21+import Control.Monad.Trans.Except
22+ (ExceptT, runExceptT)
17−import GHC.Generics (Generic)
23+import GHC.Generics
24+ (Generic)
18−import Servant.Server.Internal.ServantErr (ServantErr)
25+import Servant.Server.Internal.ServantErr
26+ (ServantErr)
19
27
20newtype Handler a = Handler { runHandler' :: ExceptT ServantErr IO a }
28newtype Handler a = Handler { runHandler' :: ExceptT ServantErr IO a }
21 deriving
29 deriving
servant-server/src/Servant/Server/Internal/Router.hs+9−6
@@ -1,15 +1,18 @@
1−{-# LANGUAGE DeriveFunctor #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DeriveFunctor #-}
3−{-# LANGUAGE GADTs #-}
3+{-# LANGUAGE GADTs #-}
4{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
5module Servant.Server.Internal.Router where
5module Servant.Server.Internal.Router where
6
6
7−import Data.Map (Map)
7+import Data.Map
8+ (Map)
8import qualified Data.Map as M
9import qualified Data.Map as M
9import Data.Monoid
10import Data.Monoid
10−import Data.Text (Text)
11+import Data.Text
12+ (Text)
11import qualified Data.Text as T
13import qualified Data.Text as T
12−import Network.Wai (Response, pathInfo)
14+import Network.Wai
15+ (Response, pathInfo)
13import Servant.Server.Internal.RoutingApplication
16import Servant.Server.Internal.RoutingApplication
14import Servant.Server.Internal.ServantErr
17import Servant.Server.Internal.ServantErr
15
18
servant-server/src/Servant/Server/Internal/RoutingApplication.hs+19−10
@@ -10,16 +10,25 @@
10{-# LANGUAGE UndecidableInstances #-}
10{-# LANGUAGE UndecidableInstances #-}
11module Servant.Server.Internal.RoutingApplication where
11module Servant.Server.Internal.RoutingApplication where
12
12
13−import Control.Monad (ap, liftM)
13+import Control.Monad
14+ (ap, liftM)
14−import Control.Monad.Base (MonadBase (..))
15+import Control.Monad.Base
16+ (MonadBase (..))
15−import Control.Monad.Catch (MonadThrow (..))
17+import Control.Monad.Catch
18+ (MonadThrow (..))
19+import Control.Monad.Reader
16−import Control.Monad.Reader (MonadReader (..), ReaderT (..), runReaderT)
20+ (MonadReader (..), ReaderT (..), runReaderT)
17−import Control.Monad.Trans (MonadIO (..), MonadTrans (..))
21+import Control.Monad.Trans
22+ (MonadIO (..), MonadTrans (..))
23+import Control.Monad.Trans.Control
18−import Control.Monad.Trans.Control (ComposeSt, MonadBaseControl (..), MonadTransControl (..),
24+ (ComposeSt, MonadBaseControl (..), MonadTransControl (..),
19− defaultLiftBaseWith, defaultRestoreM)
25+ defaultLiftBaseWith, defaultRestoreM)
26+import Control.Monad.Trans.Resource
27+ (MonadResource (..), ResourceT, runInternalState,
20−import Control.Monad.Trans.Resource (MonadResource (..), ResourceT, runResourceT, transResourceT, withInternalState, runInternalState)
28+ runResourceT, transResourceT, withInternalState)
29+import Network.Wai
21−import Network.Wai (Application, Request, Response, ResponseReceived)
30+ (Application, Request, Response, ResponseReceived)
22−import Prelude ()
31+import Prelude ()
23import Prelude.Compat
32import Prelude.Compat
24import Servant.Server.Internal.Handler
33import Servant.Server.Internal.Handler
25import Servant.Server.Internal.ServantErr
34import Servant.Server.Internal.ServantErr
servant-server/src/Servant/Server/Internal/ServantErr.hs+8−5
@@ -1,14 +1,17 @@
1−{-# LANGUAGE OverloadedStrings #-}
2−{-# LANGUAGE RecordWildCards #-}
3{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE RecordWildCards #-}
4module Servant.Server.Internal.ServantErr where
4module Servant.Server.Internal.ServantErr where
5
5
6−import Control.Exception (Exception)
6+import Control.Exception
7+ (Exception)
7import qualified Data.ByteString.Char8 as BS
8import qualified Data.ByteString.Char8 as BS
8import qualified Data.ByteString.Lazy as LBS
9import qualified Data.ByteString.Lazy as LBS
9−import Data.Typeable (Typeable)
10+import Data.Typeable
11+ (Typeable)
10import qualified Network.HTTP.Types as HTTP
12import qualified Network.HTTP.Types as HTTP
13+import Network.Wai
11−import Network.Wai (Response, responseLBS)
14+ (Response, responseLBS)
12
15
13data ServantErr = ServantErr { errHTTPCode :: Int
16data ServantErr = ServantErr { errHTTPCode :: Int
14 , errReasonPhrase :: String
17 , errReasonPhrase :: String
servant-server/src/Servant/Utils/StaticFiles.hs+12−6
@@ -15,15 +15,21 @@ module Servant.Utils.StaticFiles
15 serveDirectory
15 serveDirectory
16 ) where
16 ) where
17
17
18−import Data.ByteString (ByteString)
18+import Data.ByteString
19+ (ByteString)
19import Network.Wai.Application.Static
20import Network.Wai.Application.Static
20−import Servant.API.Raw (Raw)
21+import Servant.API.Raw
22+ (Raw)
21−import Servant.Server (ServerT, Tagged (..))
23+import Servant.Server
24+ (ServerT, Tagged (..))
25+import System.FilePath
22−import System.FilePath (addTrailingPathSeparator)
26+ (addTrailingPathSeparator)
23#if !MIN_VERSION_wai_app_static(3,1,0)
27#if !MIN_VERSION_wai_app_static(3,1,0)
24−import Filesystem.Path.CurrentOS (decodeString)
28+import Filesystem.Path.CurrentOS
29+ (decodeString)
25#endif
30#endif
26−import WaiAppStatic.Storage.Filesystem (ETagLookup)
31+import WaiAppStatic.Storage.Filesystem
32+ (ETagLookup)
27
33
28-- | Serve anything under the specified directory as a 'Raw' endpoint.
34-- | Serve anything under the specified directory as a 'Raw' endpoint.
29--
35--
servant-server/test/Servant/ArbitraryMonadServerSpec.hs+4−3
@@ -9,9 +9,10 @@ import Data.Proxy
9import Servant.API
9import Servant.API
10import Servant.Server
10import Servant.Server
11
11
12−import Test.Hspec (Spec, describe, it)
12+import Test.Hspec
13+ (Spec, describe, it)
13−import Test.Hspec.Wai (get, matchStatus, post,
14+import Test.Hspec.Wai
14− shouldRespondWith, with)
15+ (get, matchStatus, post, shouldRespondWith, with)
15
16
16spec :: Spec
17spec :: Spec
17spec = describe "Arbitrary monad server" $ do
18spec = describe "Arbitrary monad server" $ do
servant-server/test/Servant/HoistSpec.hs+4−3
@@ -1,10 +1,11 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE TypeOperators #-}
2{-# LANGUAGE TypeOperators #-}
3module Servant.HoistSpec where
3module Servant.HoistSpec where
4
4
5−import Test.Hspec (Spec)
5+import Test.Hspec
6+ (Spec)
6
7
7−import Servant
8+import Servant
8
9
9-------------------------------------------------------------------------------
10-------------------------------------------------------------------------------
10-- https://github.com/haskell-servant/servant/issues/734
11-- https://github.com/haskell-servant/servant/issues/734
servant-server/test/Servant/Server/ErrorSpec.hs+11−7
@@ -6,16 +6,20 @@
6{-# OPTIONS_GHC -fno-warn-orphans #-}
6{-# OPTIONS_GHC -fno-warn-orphans #-}
7module Servant.Server.ErrorSpec (spec) where
7module Servant.Server.ErrorSpec (spec) where
8
8
9−import Control.Monad (when)
9+import Control.Monad
10+ (when)
10−import Data.Aeson (encode)
11+import Data.Aeson
12+ (encode)
11import qualified Data.ByteString.Char8 as BC
13import qualified Data.ByteString.Char8 as BC
12import qualified Data.ByteString.Lazy.Char8 as BCL
14import qualified Data.ByteString.Lazy.Char8 as BCL
13−import Data.Monoid ((<>))
15+import Data.Monoid
16+ ((<>))
14import Data.Proxy
17import Data.Proxy
15−import Network.HTTP.Types (hAccept, hAuthorization,
18+import Network.HTTP.Types
16− hContentType, methodGet,
19+ (hAccept, hAuthorization, hContentType, methodGet, methodPost,
17− methodPost, methodPut)
20+ methodPut)
18−import Safe (readMay)
21+import Safe
22+ (readMay)
19import Test.Hspec
23import Test.Hspec
20import Test.Hspec.Wai
24import Test.Hspec.Wai
21
25
servant-server/test/Servant/Server/Internal/ContextSpec.hs+6−3
@@ -2,9 +2,12 @@
2{-# OPTIONS_GHC -fdefer-type-errors -Wwarn #-}
2{-# OPTIONS_GHC -fdefer-type-errors -Wwarn #-}
3module Servant.Server.Internal.ContextSpec (spec) where
3module Servant.Server.Internal.ContextSpec (spec) where
4
4
5−import Data.Proxy (Proxy (..))
5+import Data.Proxy
6+ (Proxy (..))
7+import Test.Hspec
6−import Test.Hspec (Spec, describe, it, shouldBe, context)
8+ (Spec, context, describe, it, shouldBe)
7−import Test.ShouldNotTypecheck (shouldNotTypecheck)
9+import Test.ShouldNotTypecheck
10+ (shouldNotTypecheck)
8
11
9import Servant.API
12import Servant.API
10import Servant.Server.Internal.Context
13import Servant.Server.Internal.Context
servant-server/test/Servant/Server/Internal/RoutingApplicationSpec.hs+31−25
@@ -1,31 +1,37 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE FlexibleInstances #-}
2+{-# LANGUAGE FlexibleInstances #-}
3−{-# LANGUAGE KindSignatures #-}
3+{-# LANGUAGE KindSignatures #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
5−{-# LANGUAGE OverloadedStrings #-}
5+{-# LANGUAGE OverloadedStrings #-}
6−{-# LANGUAGE ScopedTypeVariables #-}
6+{-# LANGUAGE ScopedTypeVariables #-}
7−{-# LANGUAGE TypeFamilies #-}
7+{-# LANGUAGE TypeFamilies #-}
8−{-# LANGUAGE TypeOperators #-}
8+{-# LANGUAGE TypeOperators #-}
9module Servant.Server.Internal.RoutingApplicationSpec (spec) where
9module Servant.Server.Internal.RoutingApplicationSpec (spec) where
10
10
11−import Prelude ()
11+import Prelude ()
12−import Prelude.Compat
12+import Prelude.Compat
13−
13+
14−import Control.Exception hiding (Handler)
14+import Control.Exception hiding
15+ (Handler)
16+import Control.Monad.IO.Class
15−import Control.Monad.Trans.Resource (register)
17+import Control.Monad.Trans.Resource
16−import Control.Monad.IO.Class
18+ (register)
17−import Data.IORef
19+import Data.IORef
18−import Data.Proxy
20+import Data.Proxy
19−import GHC.TypeLits (Symbol, KnownSymbol, symbolVal)
21+import GHC.TypeLits
22+ (KnownSymbol, Symbol, symbolVal)
23+import Network.Wai
24+ (defaultRequest)
20−import Servant
25+import Servant
21−import Servant.Server.Internal.RoutingApplication
26+import Servant.Server.Internal.RoutingApplication
22−import Network.Wai (defaultRequest)
23−import Test.Hspec
27+import Test.Hspec
28+import Test.Hspec.Wai
24−import Test.Hspec.Wai (request, shouldRespondWith, with)
29+ (request, shouldRespondWith, with)
25−
30+
26−import qualified Data.Text as T
31+import qualified Data.Text as T
27−
32+
28−import System.IO.Unsafe (unsafePerformIO)
33+import System.IO.Unsafe
34+ (unsafePerformIO)
29
35
30data TestResource x
36data TestResource x
31 = TestResourceNone
37 = TestResourceNone
servant-server/test/Servant/Server/RouterSpec.hs+18−11
@@ -1,20 +1,27 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE FlexibleContexts #-}
2+{-# LANGUAGE FlexibleContexts #-}
3{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TypeOperators #-}
4+{-# LANGUAGE TypeOperators #-}
5module Servant.Server.RouterSpec (spec) where
5module Servant.Server.RouterSpec (spec) where
6
6
7−import Control.Monad (unless)
7+import Control.Monad
8+ (unless)
8−import Data.Proxy (Proxy(..))
9+import Data.Proxy
10+ (Proxy (..))
9−import Data.Text (unpack)
11+import Data.Text
12+ (unpack)
10−import Network.HTTP.Types (Status (..))
13+import Network.HTTP.Types
14+ (Status (..))
11−import Network.Wai (responseBuilder)
15+import Network.Wai
16+ (responseBuilder)
12−import Network.Wai.Internal (Response (ResponseBuilder))
17+import Network.Wai.Internal
13−import Test.Hspec
18+ (Response (ResponseBuilder))
14−import Test.Hspec.Wai (get, shouldRespondWith, with)
15import Servant.API
19import Servant.API
16import Servant.Server
20import Servant.Server
17import Servant.Server.Internal
21import Servant.Server.Internal
22+import Test.Hspec
23+import Test.Hspec.Wai
24+ (get, shouldRespondWith, with)
18
25
19spec :: Spec
26spec :: Spec
20spec = describe "Servant.Server.Internal.Router" $ do
27spec = describe "Servant.Server.Internal.Router" $ do
servant-server/test/Servant/Server/StreamingSpec.hs+8−7
@@ -1,18 +1,19 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4−{-# LANGUAGE TupleSections #-}
4+{-# LANGUAGE TupleSections #-}
5−{-# LANGUAGE TypeOperators #-}
5+{-# LANGUAGE TypeOperators #-}
6
6
7-- | This module tests whether streaming works from client to server
7-- | This module tests whether streaming works from client to server
8-- with a server implemented with servant-server.
8-- with a server implemented with servant-server.
9module Servant.Server.StreamingSpec where
9module Servant.Server.StreamingSpec where
10
10
11import Control.Concurrent
11import Control.Concurrent
12−import Control.Exception hiding (Handler)
12+import Control.Exception hiding
13+ (Handler)
13import Control.Monad.IO.Class
14import Control.Monad.IO.Class
14−import qualified Data.ByteString as Strict
15+import qualified Data.ByteString as Strict
15−import qualified Data.ByteString.Lazy as Lazy
16+import qualified Data.ByteString.Lazy as Lazy
16import Network.HTTP.Types
17import Network.HTTP.Types
17import Network.Wai
18import Network.Wai
18import Network.Wai.Internal
19import Network.Wai.Internal
servant-server/test/Servant/Server/UsingContextSpec.hs+4−3
@@ -1,12 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE FlexibleInstances #-}
2{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TypeOperators #-}
4+{-# LANGUAGE TypeOperators #-}
5
5
6module Servant.Server.UsingContextSpec where
6module Servant.Server.UsingContextSpec where
7
7
8import Network.Wai
8import Network.Wai
9−import Test.Hspec (Spec, describe, it)
9+import Test.Hspec
10+ (Spec, describe, it)
10import Test.Hspec.Wai
11import Test.Hspec.Wai
11
12
12import Servant
13import Servant
servant-server/test/Servant/Server/UsingContextSpec/TestCombinators.hs+9−9
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE FlexibleContexts #-}
2+{-# LANGUAGE FlexibleContexts #-}
3−{-# LANGUAGE FlexibleInstances #-}
3+{-# LANGUAGE FlexibleInstances #-}
4−{-# LANGUAGE KindSignatures #-}
4+{-# LANGUAGE KindSignatures #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6−{-# LANGUAGE PolyKinds #-}
6+{-# LANGUAGE PolyKinds #-}
7−{-# LANGUAGE ScopedTypeVariables #-}
7+{-# LANGUAGE ScopedTypeVariables #-}
8−{-# LANGUAGE TypeFamilies #-}
8+{-# LANGUAGE TypeFamilies #-}
9−{-# LANGUAGE TypeOperators #-}
9+{-# LANGUAGE TypeOperators #-}
10−{-# LANGUAGE UndecidableInstances #-}
10+{-# LANGUAGE UndecidableInstances #-}
11
11
12-- | These are custom combinators for Servant.Server.UsingContextSpec.
12-- | These are custom combinators for Servant.Server.UsingContextSpec.
13--
13--
servant-server/test/Servant/Utils/StaticFilesSpec.hs+23−14
@@ -5,20 +5,29 @@
5{-# OPTIONS_GHC -fno-warn-orphans #-}
5{-# OPTIONS_GHC -fno-warn-orphans #-}
6module Servant.Utils.StaticFilesSpec where
6module Servant.Utils.StaticFilesSpec where
7
7
8−import Control.Exception (bracket)
8+import Control.Exception
9+ (bracket)
9−import Data.Proxy (Proxy (Proxy))
10+import Data.Proxy
11+ (Proxy (Proxy))
10−import Network.Wai (Application)
12+import Network.Wai
13+ (Application)
11−import System.Directory (createDirectory,
14+import System.Directory
12− getCurrentDirectory,
15+ (createDirectory, getCurrentDirectory, setCurrentDirectory)
13− setCurrentDirectory)
16+import System.IO.Temp
14−import System.IO.Temp (withSystemTempDirectory)
17+ (withSystemTempDirectory)
18+import Test.Hspec
15−import Test.Hspec (Spec, around_, describe, it)
19+ (Spec, around_, describe, it)
20+import Test.Hspec.Wai
16−import Test.Hspec.Wai (get, shouldRespondWith, with)
21+ (get, shouldRespondWith, with)
17−
22+
18−import Servant.API ((:<|>) ((:<|>)), Capture, Get, Raw, (:>), JSON)
23+import Servant.API
24+ ((:<|>) ((:<|>)), (:>), Capture, Get, JSON, Raw)
19−import Servant.Server (Server, serve)
25+import Servant.Server
26+ (Server, serve)
20−import Servant.ServerSpec (Person (Person))
27+import Servant.ServerSpec
28+ (Person (Person))
21−import Servant.Utils.StaticFiles (serveDirectoryFileServer)
29+import Servant.Utils.StaticFiles
30+ (serveDirectoryFileServer)
22
31
23type Api =
32type Api =
24 "dummy_api" :> Capture "person_name" String :> Get '[JSON] Person
33 "dummy_api" :> Capture "person_name" String :> Get '[JSON] Person
servant-server/test/doctests.hs+5−3
@@ -13,9 +13,11 @@
13-----------------------------------------------------------------------------
13-----------------------------------------------------------------------------
14module Main where
14module Main where
15
15
16−import Build_doctests (flags, pkgs, module_sources)
16+import Build_doctests
17+ (flags, module_sources, pkgs)
17−import Data.Foldable (traverse_)
18+import Data.Foldable
19+ (traverse_)
18−import Test.DocTest
20+import Test.DocTest
19
21
20main :: IO ()
22main :: IO ()
21main = do
23main = do
servant/src/Servant/API.hs+3−3
@@ -114,9 +114,9 @@ import Servant.API.ResponseHeaders
114 ResponseHeader (..), addHeader, getHeadersHList, getResponse,
114 ResponseHeader (..), addHeader, getHeadersHList, getResponse,
115 noHeader)
115 noHeader)
116import Servant.API.Stream
116import Servant.API.Stream
117− (BoundaryStrategy (..), FromResultStream (..),
118− ByteStringParser (..), FramingRender (..),
117+ (BoundaryStrategy (..), ByteStringParser (..),
118+ FramingRender (..), FramingUnrender (..),
119− FramingUnrender (..), NetstringFraming, NewlineFraming,
119+ FromResultStream (..), NetstringFraming, NewlineFraming,
120 NoFraming, ResultStream (..), Stream, StreamGenerator (..),
120 NoFraming, ResultStream (..), Stream, StreamGenerator (..),
121 StreamGet, StreamPost, ToStreamGenerator (..))
121 StreamGet, StreamPost, ToStreamGenerator (..))
122import Servant.API.Sub
122import Servant.API.Sub
servant/src/Servant/API/Stream.hs+2−2
@@ -22,12 +22,12 @@ module Servant.API.Stream (
22 StreamGenerator (..),
22 StreamGenerator (..),
23 ToStreamGenerator (..),
23 ToStreamGenerator (..),
24 ResultStream (..),
24 ResultStream (..),
25− FromResultStream (..),
25+ FromResultStream (..),
26 -- * Framing
26 -- * Framing
27 FramingRender (..),
27 FramingRender (..),
28 FramingUnrender (..),
28 FramingUnrender (..),
29 BoundaryStrategy (..),
29 BoundaryStrategy (..),
30− ByteStringParser (..),
30+ ByteStringParser (..),
31 -- ** Strategies
31 -- ** Strategies
32 NoFraming,
32 NoFraming,
33 NewlineFraming,
33 NewlineFraming,
servant/src/Servant/Utils/Links.hs+1−1
@@ -3,4 +3,4 @@ module Servant.Utils.Links
3 ( module Servant.Links )
3 ( module Servant.Links )
4 where
4 where
5
5
6−import Servant.Links
6+import Servant.Links
servant/test/Servant/API/ContentTypesSpec.hs+21−14
@@ -12,25 +12,32 @@ import Prelude ()
12import Prelude.Compat
12import Prelude.Compat
13
13
14import Data.Aeson.Compat
14import Data.Aeson.Compat
15−import Data.ByteString.Char8 (ByteString, append, pack)
15+import Data.ByteString.Char8
16+ (ByteString, append, pack)
16−import qualified Data.ByteString.Lazy as BSL
17+import qualified Data.ByteString.Lazy as BSL
17−import qualified Data.ByteString.Lazy.Char8 as BSL8
18+import qualified Data.ByteString.Lazy.Char8 as BSL8
18import Data.Either
19import Data.Either
19−import Data.Function (on)
20+import Data.Function
21+ (on)
20−import Data.List (maximumBy)
22+import Data.List
23+ (maximumBy)
21−import qualified Data.List.NonEmpty as NE
24+import qualified Data.List.NonEmpty as NE
25+import Data.Maybe
22−import Data.Maybe (fromJust, isJust, isNothing)
26+ (fromJust, isJust, isNothing)
23import Data.Proxy
27import Data.Proxy
24−import Data.String (IsString (..))
28+import Data.String
29+ (IsString (..))
25−import Data.String.Conversions (cs)
30+import Data.String.Conversions
31+ (cs)
26−import qualified Data.Text as TextS
32+import qualified Data.Text as TextS
27−import qualified Data.Text.Encoding as TextSE
33+import qualified Data.Text.Encoding as TextSE
28−import qualified Data.Text.Lazy as TextL
34+import qualified Data.Text.Lazy as TextL
29import GHC.Generics
35import GHC.Generics
30import Test.Hspec
36import Test.Hspec
31import Test.QuickCheck
37import Test.QuickCheck
32−import Text.Read (readMaybe)
33−import "quickcheck-instances" Test.QuickCheck.Instances ()
38+import "quickcheck-instances" Test.QuickCheck.Instances ()
39+import Text.Read
40+ (readMaybe)
34
41
35import Servant.API.ContentTypes
42import Servant.API.ContentTypes
36
43
servant/test/Servant/API/ResponseHeadersSpec.hs+4−4
@@ -1,11 +1,11 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
3module Servant.API.ResponseHeadersSpec where
3module Servant.API.ResponseHeadersSpec where
4
4
5−import Test.Hspec
5+import Test.Hspec
6
6
7−import Servant.API.Header
7+import Servant.API.Header
8−import Servant.API.ResponseHeaders
8+import Servant.API.ResponseHeaders
9
9
10spec :: Spec
10spec :: Spec
11spec = describe "Servant.API.ResponseHeaders" $ do
11spec = describe "Servant.API.ResponseHeaders" $ do
servant/test/Servant/LinksSpec.hs+13−10
@@ -1,22 +1,25 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE ConstraintKinds #-}
3−{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DataKinds #-}
4−{-# LANGUAGE PolyKinds #-}
4+{-# LANGUAGE PolyKinds #-}
5−{-# LANGUAGE TypeOperators #-}
6{-# LANGUAGE ScopedTypeVariables #-}
5{-# LANGUAGE ScopedTypeVariables #-}
6+{-# LANGUAGE TypeOperators #-}
7#if __GLASGOW_HASKELL__ < 709
7#if __GLASGOW_HASKELL__ < 709
8{-# OPTIONS_GHC -fcontext-stack=41 #-}
8{-# OPTIONS_GHC -fcontext-stack=41 #-}
9#endif
9#endif
10module Servant.LinksSpec where
10module Servant.LinksSpec where
11
11
12−import Data.Proxy (Proxy (..))
12+import Data.Proxy
13+ (Proxy (..))
14+import Data.String
15+ (fromString)
16+import Test.Hspec
13−import Test.Hspec (Expectation, Spec, describe, it,
17+ (Expectation, Spec, describe, it, shouldBe)
14− shouldBe)
15−import Data.String (fromString)
16
18
17import Servant.API
19import Servant.API
20+import Servant.API.Internal.Test.ComprehensiveAPI
21+ (comprehensiveAPIWithoutRaw)
18import Servant.Links
22import Servant.Links
19−import Servant.API.Internal.Test.ComprehensiveAPI (comprehensiveAPIWithoutRaw)
20
23
21type TestApi =
24type TestApi =
22 -- Capture and query params
25 -- Capture and query params
servant/test/doctests.hs+5−3
@@ -13,9 +13,11 @@
13-----------------------------------------------------------------------------
13-----------------------------------------------------------------------------
14module Main where
14module Main where
15
15
16−import Build_doctests (flags, pkgs, module_sources)
16+import Build_doctests
17+ (flags, module_sources, pkgs)
17−import Data.Foldable (traverse_)
18+import Data.Foldable
19+ (traverse_)
18−import Test.DocTest
20+import Test.DocTest
19
21
20main :: IO ()
22main :: IO ()
21main = do
23main = do