Bring packages up to date (#722)
* Bring packages up to date * New LTS includes deps now Use stack to select most versions * Alphabetize packages * Strip down packages Switch tests to protolude * Appease cabal check with base version constraint
This commit is contained in:
+31
-89
@@ -23,119 +23,83 @@ Flag CI
|
|||||||
|
|
||||||
executable postgrest
|
executable postgrest
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
|
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||||
ghc-options:
|
ghc-options:
|
||||||
-threaded
|
-threaded
|
||||||
-rtsopts
|
-rtsopts
|
||||||
"-with-rtsopts=-N -I2"
|
"-with-rtsopts=-N -I2"
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
build-depends: aeson (>= 0.8 && < 0.10) || (>= 0.11 && < 0.12)
|
build-depends: auto-update
|
||||||
, auto-update
|
, base
|
||||||
, base >= 4.8 && < 6
|
, hasql
|
||||||
, bytestring
|
, hasql-pool
|
||||||
, bytestring-tree-builder == 0.2.7
|
|
||||||
, case-insensitive
|
|
||||||
, cassava
|
|
||||||
, containers
|
|
||||||
, contravariant
|
|
||||||
, errors
|
|
||||||
, hasql == 0.19.12
|
|
||||||
, hasql-pool == 0.4.1
|
|
||||||
, hasql-transaction == 0.4.5.1
|
|
||||||
, http-types >= 0.9 && < 0.10
|
|
||||||
, interpolatedstring-perl6
|
|
||||||
, jwt
|
|
||||||
, lens >=3.8 && < 5.0
|
|
||||||
, lens-aeson >= 1.0.0.0 && < 1.1.0.0
|
|
||||||
, mtl
|
|
||||||
, optparse-applicative >= 0.11 && < 0.13
|
|
||||||
, parsec
|
|
||||||
, postgresql-binary == 0.9.0.1
|
|
||||||
, postgrest
|
, postgrest
|
||||||
, regex-tdfa
|
, protolude
|
||||||
, safe >= 0.3 && < 0.4
|
|
||||||
, scientific
|
|
||||||
, text
|
, text
|
||||||
, time
|
, time
|
||||||
, transformers
|
, warp
|
||||||
, unordered-containers
|
|
||||||
, vector
|
|
||||||
, wai >= 3.0.1
|
|
||||||
, wai-cors
|
|
||||||
, wai-extra
|
|
||||||
, wai-middleware-static >= 0.6.0
|
|
||||||
, warp >= 3.1.0
|
|
||||||
, insert-ordered-containers >= 0.1.0.1
|
|
||||||
, swagger2 >= 2.1
|
|
||||||
, network-uri >= 2.6.1.0
|
|
||||||
, HTTP
|
|
||||||
, Ranged-sets
|
|
||||||
, protolude >= 0.1.5 && < 0.2.0
|
|
||||||
if !os(windows)
|
if !os(windows)
|
||||||
build-depends: unix >= 2.7 && < 3
|
build-depends: unix
|
||||||
|
|
||||||
hs-source-dirs: main
|
hs-source-dirs: main
|
||||||
|
|
||||||
library
|
library
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
|
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||||
build-depends: aeson
|
build-depends: aeson
|
||||||
, base
|
, base >= 4.8 && < 6
|
||||||
, bytestring
|
, bytestring
|
||||||
, case-insensitive
|
, case-insensitive
|
||||||
, cassava
|
, cassava
|
||||||
, containers
|
, containers
|
||||||
, contravariant
|
, contravariant
|
||||||
, errors
|
|
||||||
, hasql
|
, hasql
|
||||||
, hasql-transaction
|
, hasql-pool == 0.4.1
|
||||||
, hasql-pool
|
, hasql-transaction == 0.4.5.1
|
||||||
|
, HTTP
|
||||||
, http-types
|
, http-types
|
||||||
|
, insert-ordered-containers
|
||||||
, interpolatedstring-perl6
|
, interpolatedstring-perl6
|
||||||
, jwt
|
, jwt
|
||||||
, lens
|
, lens
|
||||||
, lens-aeson
|
, lens-aeson
|
||||||
, mtl
|
, network-uri
|
||||||
, optparse-applicative
|
, optparse-applicative
|
||||||
, parsec
|
, parsec
|
||||||
|
, protolude
|
||||||
|
, Ranged-sets == 0.3.0
|
||||||
, regex-tdfa
|
, regex-tdfa
|
||||||
, safe
|
, safe
|
||||||
, scientific
|
, scientific
|
||||||
|
, swagger2
|
||||||
, text
|
, text
|
||||||
, time
|
, time
|
||||||
, unordered-containers
|
, unordered-containers
|
||||||
, vector
|
, vector
|
||||||
, HTTP
|
, wai
|
||||||
, Ranged-sets
|
|
||||||
, wai >= 3.0.1
|
|
||||||
, wai-cors
|
, wai-cors
|
||||||
, wai-extra
|
, wai-extra
|
||||||
, wai-middleware-static >= 0.6.0
|
, wai-middleware-static
|
||||||
, warp >= 3.1.0
|
|
||||||
, insert-ordered-containers >= 0.1.0.1
|
|
||||||
, swagger2 >= 2.1
|
|
||||||
, protolude >= 0.1.5 && < 0.2.0
|
|
||||||
, network-uri >= 2.6.1.0
|
|
||||||
|
|
||||||
Other-Modules: Paths_postgrest
|
Other-Modules: Paths_postgrest
|
||||||
Exposed-Modules: PostgREST.App
|
Exposed-Modules: PostgREST.ApiRequest
|
||||||
|
, PostgREST.App
|
||||||
, PostgREST.Auth
|
, PostgREST.Auth
|
||||||
, PostgREST.Config
|
, PostgREST.Config
|
||||||
|
, PostgREST.DbStructure
|
||||||
, PostgREST.Error
|
, PostgREST.Error
|
||||||
, PostgREST.Middleware
|
, PostgREST.Middleware
|
||||||
|
, PostgREST.OpenAPI
|
||||||
, PostgREST.Parsers
|
, PostgREST.Parsers
|
||||||
, PostgREST.DbStructure
|
|
||||||
, PostgREST.QueryBuilder
|
, PostgREST.QueryBuilder
|
||||||
, PostgREST.RangeQuery
|
, PostgREST.RangeQuery
|
||||||
, PostgREST.ApiRequest
|
|
||||||
, PostgREST.Types
|
, PostgREST.Types
|
||||||
, PostgREST.OpenAPI
|
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
|
|
||||||
Test-Suite spec
|
Test-Suite spec
|
||||||
Type: exitcode-stdio-1.0
|
Type: exitcode-stdio-1.0
|
||||||
Default-Language: Haskell2010
|
Default-Language: Haskell2010
|
||||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes
|
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||||
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
||||||
Hs-Source-Dirs: test
|
Hs-Source-Dirs: test
|
||||||
Main-Is: Main.hs
|
Main-Is: Main.hs
|
||||||
@@ -145,63 +109,41 @@ Test-Suite spec
|
|||||||
, Feature.DeleteSpec
|
, Feature.DeleteSpec
|
||||||
, Feature.InsertSpec
|
, Feature.InsertSpec
|
||||||
, Feature.NoJwtSpec
|
, Feature.NoJwtSpec
|
||||||
, Feature.QuerySpec
|
, Feature.ProxySpec
|
||||||
, Feature.QueryLimitedSpec
|
, Feature.QueryLimitedSpec
|
||||||
|
, Feature.QuerySpec
|
||||||
, Feature.RangeSpec
|
, Feature.RangeSpec
|
||||||
, Feature.StructureSpec
|
, Feature.StructureSpec
|
||||||
, Feature.UnicodeSpec
|
, Feature.UnicodeSpec
|
||||||
, SpecHelper
|
, SpecHelper
|
||||||
, TestTypes
|
, TestTypes
|
||||||
Build-Depends: aeson
|
Build-Depends: aeson
|
||||||
, auto-update
|
|
||||||
, aeson-qq
|
, aeson-qq
|
||||||
, async
|
, async
|
||||||
|
, auto-update
|
||||||
, base
|
, base
|
||||||
, protolude
|
|
||||||
, base64-string
|
, base64-string
|
||||||
, bytestring
|
, bytestring
|
||||||
, case-insensitive
|
, case-insensitive
|
||||||
, cassava
|
, cassava
|
||||||
, containers
|
|
||||||
, contravariant
|
, contravariant
|
||||||
, errors
|
|
||||||
, hasql
|
, hasql
|
||||||
, hasql-pool
|
, hasql-pool
|
||||||
, hasql-transaction
|
|
||||||
, heredoc
|
, heredoc
|
||||||
|
, hjsonpointer
|
||||||
|
, hjsonschema
|
||||||
, hspec
|
, hspec
|
||||||
, hspec-wai
|
, hspec-wai
|
||||||
, hspec-wai-json
|
, hspec-wai-json
|
||||||
, http-types
|
, http-types
|
||||||
, interpolatedstring-perl6
|
|
||||||
, jwt
|
|
||||||
, lens
|
, lens
|
||||||
, lens-aeson
|
, lens-aeson
|
||||||
, monad-control
|
, monad-control
|
||||||
, mtl
|
|
||||||
, optparse-applicative
|
|
||||||
, parsec
|
|
||||||
, postgrest
|
, postgrest
|
||||||
, process
|
, process
|
||||||
|
, protolude
|
||||||
, regex-tdfa
|
, regex-tdfa
|
||||||
, safe
|
|
||||||
, scientific
|
|
||||||
, string-conversions
|
|
||||||
, text
|
|
||||||
, time
|
, time
|
||||||
, transformers
|
|
||||||
, transformers-base
|
, transformers-base
|
||||||
, unordered-containers
|
|
||||||
, vector
|
|
||||||
, wai
|
, wai
|
||||||
, wai-cors
|
|
||||||
, wai-extra
|
, wai-extra
|
||||||
, wai-middleware-static
|
|
||||||
, warp
|
|
||||||
, insert-ordered-containers
|
|
||||||
, hjsonpointer
|
|
||||||
, hjsonschema
|
|
||||||
, swagger2
|
|
||||||
, network-uri
|
|
||||||
, HTTP
|
|
||||||
, Ranged-sets
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ module PostgREST.Config ( prettyVersion
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Control.Applicative
|
|
||||||
import qualified Data.ByteString.Char8 as BS
|
import qualified Data.ByteString.Char8 as BS
|
||||||
import qualified Data.CaseInsensitive as CI
|
import qualified Data.CaseInsensitive as CI
|
||||||
import Data.List (lookup)
|
import Data.List (lookup)
|
||||||
@@ -29,7 +28,8 @@ import Network.Wai
|
|||||||
import Network.Wai.Middleware.Cors (CorsResourcePolicy (..))
|
import Network.Wai.Middleware.Cors (CorsResourcePolicy (..))
|
||||||
import Options.Applicative
|
import Options.Applicative
|
||||||
import Paths_postgrest (version)
|
import Paths_postgrest (version)
|
||||||
import Protolude hiding (intercalate)
|
import Protolude hiding (intercalate
|
||||||
|
, (<>))
|
||||||
import Safe (readMay)
|
import Safe (readMay)
|
||||||
|
|
||||||
-- | Data type to store all command line options
|
-- | Data type to store all command line options
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import qualified Hasql.Query as H
|
|||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Data.List (elemIndex)
|
import Data.List (elemIndex)
|
||||||
import Data.Maybe (fromJust)
|
import Data.Maybe (fromJust)
|
||||||
import Data.Monoid
|
|
||||||
import Data.Text (split, strip,
|
import Data.Text (split, strip,
|
||||||
breakOn, dropAround)
|
breakOn, dropAround)
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import qualified Hasql.Decoders as HD
|
|||||||
import qualified Data.Aeson as JSON
|
import qualified Data.Aeson as JSON
|
||||||
|
|
||||||
import PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange)
|
import PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange)
|
||||||
import Control.Error (note, hush)
|
|
||||||
import Data.Functor.Contravariant (contramap)
|
import Data.Functor.Contravariant (contramap)
|
||||||
import qualified Data.HashMap.Strict as HM
|
import qualified Data.HashMap.Strict as HM
|
||||||
import Data.Text (intercalate, unwords, replace, isInfixOf, toLower, split)
|
import Data.Text (intercalate, unwords, replace, isInfixOf, toLower, split)
|
||||||
@@ -361,7 +360,7 @@ requestToQuery schema isParent (DbRead (Node (Select colSelects tbls conditions
|
|||||||
<> "FROM (" <> subquery <> ") " <> pgFmtIdent table
|
<> "FROM (" <> subquery <> ") " <> pgFmtIdent table
|
||||||
<> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias)
|
<> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias)
|
||||||
where subquery = requestToQuery schema False (DbRead (Node n forst))
|
where subquery = requestToQuery schema False (DbRead (Node n forst))
|
||||||
|
|
||||||
getQueryParts (Node n@(_, (name, Just r@Relation{relType=Parent,relTable=Table{tableName=table}}, alias)) forst) (j,s) = (joi:j,sel:s)
|
getQueryParts (Node n@(_, (name, Just r@Relation{relType=Parent,relTable=Table{tableName=table}}, alias)) forst) (j,s) = (joi:j,sel:s)
|
||||||
where
|
where
|
||||||
node_name = fromMaybe name alias
|
node_name = fromMaybe name alias
|
||||||
|
|||||||
+1
-18
@@ -1,24 +1,7 @@
|
|||||||
resolver: lts-6.7
|
resolver: lts-7.4
|
||||||
extra-deps:
|
extra-deps:
|
||||||
- Ranged-sets-0.3.0
|
- Ranged-sets-0.3.0
|
||||||
- bytestring-tree-builder-0.2.7
|
|
||||||
- hasql-0.19.12
|
|
||||||
- hasql-pool-0.4.1
|
- hasql-pool-0.4.1
|
||||||
- hasql-transaction-0.4.5.1
|
- hasql-transaction-0.4.5.1
|
||||||
- jwt-0.7.2
|
|
||||||
- postgresql-binary-0.9.0.1
|
|
||||||
- binary-parser-0.5.2
|
|
||||||
- contravariant-extras-0.3.2
|
|
||||||
- placeholders-0.1
|
|
||||||
- postgresql-error-codes-1
|
|
||||||
- success-0.2.6
|
|
||||||
- tuple-th-0.2.5
|
|
||||||
- wai-cors-0.2.5
|
|
||||||
- cryptohash-sha256-0.11.100.0
|
|
||||||
- hackage-security-0.5.2.1
|
|
||||||
- swagger2-2.1
|
|
||||||
- hjsonpointer-0.3.0.1
|
|
||||||
- hjsonschema-1.0.0.0
|
|
||||||
- network-uri-2.6.1.0
|
|
||||||
ghc-options:
|
ghc-options:
|
||||||
postgrest: -O2 -Werror -Wall -fwarn-identities
|
postgrest: -O2 -Werror -Wall -fwarn-identities
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import Network.HTTP.Types
|
|||||||
|
|
||||||
import SpecHelper
|
import SpecHelper
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import Network.Wai.Test (Session)
|
|||||||
|
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec =
|
spec =
|
||||||
describe "Queryiny in parallel" $
|
describe "Queryiny in parallel" $
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import SpecHelper
|
|||||||
|
|
||||||
import Network.HTTP.Types
|
import Network.HTTP.Types
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import Text.Heredoc
|
|||||||
import Network.HTTP.Types
|
import Network.HTTP.Types
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec =
|
spec =
|
||||||
describe "Deleting" $ do
|
describe "Deleting" $ do
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import Network.Wai.Test (SResponse(simpleBody,simpleHeaders,simpleStatus))
|
|||||||
import SpecHelper
|
import SpecHelper
|
||||||
|
|
||||||
import qualified Data.Aeson as JSON
|
import qualified Data.Aeson as JSON
|
||||||
|
import Data.List (lookup)
|
||||||
import Data.Maybe (fromJust)
|
import Data.Maybe (fromJust)
|
||||||
import Data.Monoid ((<>))
|
|
||||||
import Text.Heredoc
|
import Text.Heredoc
|
||||||
import Network.HTTP.Types.Header
|
import Network.HTTP.Types.Header
|
||||||
import Network.HTTP.Types
|
import Network.HTTP.Types
|
||||||
@@ -18,6 +18,8 @@ import Control.Monad (replicateM_, void)
|
|||||||
import TestTypes(IncPK(..), CompoundPK(..))
|
import TestTypes(IncPK(..), CompoundPK(..))
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec = do
|
spec = do
|
||||||
describe "Posting new record" $ do
|
describe "Posting new record" $ do
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import Network.HTTP.Types
|
|||||||
|
|
||||||
import SpecHelper
|
import SpecHelper
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import SpecHelper
|
|||||||
|
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec =
|
spec =
|
||||||
describe "GET / with proxy" $
|
describe "GET / with proxy" $
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import Text.Heredoc
|
|||||||
import SpecHelper
|
import SpecHelper
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec =
|
spec =
|
||||||
describe "Requesting many items with server limits enabled" $ do
|
describe "Requesting many items with server limits enabled" $ do
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import SpecHelper
|
|||||||
import Text.Heredoc
|
import Text.Heredoc
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec = do
|
spec = do
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import SpecHelper
|
|||||||
import Text.Heredoc
|
import Text.Heredoc
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
defaultRange :: BL.ByteString
|
defaultRange :: BL.ByteString
|
||||||
defaultRange = [json| { "min": 0, "max": 15 } |]
|
defaultRange = [json| { "min": 0, "max": 15 } |]
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import SpecHelper
|
|||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
import Network.Wai.Test (SResponse(..))
|
import Network.Wai.Test (SResponse(..))
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec = do
|
spec = do
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import Test.Hspec.Wai.JSON
|
|||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
import Control.Monad (void)
|
import Control.Monad (void)
|
||||||
|
|
||||||
|
import Protolude hiding (get)
|
||||||
|
|
||||||
spec :: SpecWith Application
|
spec :: SpecWith Application
|
||||||
spec =
|
spec =
|
||||||
describe "Reading and writing to unicode schema and table names" $
|
describe "Reading and writing to unicode schema and table names" $
|
||||||
|
|||||||
+5
-3
@@ -8,8 +8,8 @@ import qualified Hasql.Pool as P
|
|||||||
import PostgREST.DbStructure (getDbStructure)
|
import PostgREST.DbStructure (getDbStructure)
|
||||||
import PostgREST.App (postgrest)
|
import PostgREST.App (postgrest)
|
||||||
import Control.AutoUpdate
|
import Control.AutoUpdate
|
||||||
|
import Data.Function (id)
|
||||||
import Data.IORef
|
import Data.IORef
|
||||||
import Data.String.Conversions (cs)
|
|
||||||
import Data.Time.Clock.POSIX (getPOSIXTime)
|
import Data.Time.Clock.POSIX (getPOSIXTime)
|
||||||
|
|
||||||
import qualified Feature.AuthSpec
|
import qualified Feature.AuthSpec
|
||||||
@@ -25,18 +25,20 @@ import qualified Feature.StructureSpec
|
|||||||
import qualified Feature.UnicodeSpec
|
import qualified Feature.UnicodeSpec
|
||||||
import qualified Feature.ProxySpec
|
import qualified Feature.ProxySpec
|
||||||
|
|
||||||
|
import Protolude
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
setupDb
|
setupDb
|
||||||
|
|
||||||
pool <- P.acquire (3, 10, cs testDbConn)
|
pool <- P.acquire (3, 10, toS testDbConn)
|
||||||
-- ask for the OS time at most once per second
|
-- ask for the OS time at most once per second
|
||||||
getTime <- mkAutoUpdate
|
getTime <- mkAutoUpdate
|
||||||
defaultUpdateSettings { updateAction = getPOSIXTime }
|
defaultUpdateSettings { updateAction = getPOSIXTime }
|
||||||
|
|
||||||
|
|
||||||
result <- P.use pool $ getDbStructure "test"
|
result <- P.use pool $ getDbStructure "test"
|
||||||
refDbStructure <- newIORef $ either (error.show) id result
|
refDbStructure <- newIORef $ either (panic.show) id result
|
||||||
let withApp = return $ postgrest testCfg refDbStructure pool getTime
|
let withApp = return $ postgrest testCfg refDbStructure pool getTime
|
||||||
ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime
|
ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime
|
||||||
unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime
|
unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime
|
||||||
|
|||||||
+7
-7
@@ -1,10 +1,10 @@
|
|||||||
module SpecHelper where
|
module SpecHelper where
|
||||||
|
|
||||||
import Data.String.Conversions (cs)
|
|
||||||
import Control.Monad (void)
|
import Control.Monad (void)
|
||||||
|
|
||||||
import Codec.Binary.Base64.String (encode)
|
import Codec.Binary.Base64.String (encode)
|
||||||
import Data.CaseInsensitive (CI(..))
|
import Data.CaseInsensitive (CI(..))
|
||||||
|
import Data.List (lookup)
|
||||||
import Text.Regex.TDFA ((=~))
|
import Text.Regex.TDFA ((=~))
|
||||||
import qualified Data.ByteString.Char8 as BS
|
import qualified Data.ByteString.Char8 as BS
|
||||||
import System.Process (readProcess)
|
import System.Process (readProcess)
|
||||||
@@ -21,7 +21,7 @@ import Data.Maybe (fromJust)
|
|||||||
import Data.Aeson (decode)
|
import Data.Aeson (decode)
|
||||||
import qualified Data.JsonSchema.Draft4 as D4
|
import qualified Data.JsonSchema.Draft4 as D4
|
||||||
|
|
||||||
import Data.Text
|
import Protolude
|
||||||
|
|
||||||
validateOpenApiResponse :: [Header] -> WaiSession ()
|
validateOpenApiResponse :: [Header] -> WaiSession ()
|
||||||
validateOpenApiResponse headers = do
|
validateOpenApiResponse headers = do
|
||||||
@@ -98,14 +98,14 @@ acceptHdrs mime = [(hAccept, mime)]
|
|||||||
rangeUnit :: Header
|
rangeUnit :: Header
|
||||||
rangeUnit = ("Range-Unit" :: CI BS.ByteString, "items")
|
rangeUnit = ("Range-Unit" :: CI BS.ByteString, "items")
|
||||||
|
|
||||||
matchHeader :: CI BS.ByteString -> String -> [Header] -> Bool
|
matchHeader :: CI BS.ByteString -> BS.ByteString -> [Header] -> Bool
|
||||||
matchHeader name valRegex headers =
|
matchHeader name valRegex headers =
|
||||||
maybe False (=~ valRegex) $ lookup name headers
|
maybe False (=~ valRegex) $ lookup name headers
|
||||||
|
|
||||||
authHeaderBasic :: String -> String -> Header
|
authHeaderBasic :: BS.ByteString -> BS.ByteString -> Header
|
||||||
authHeaderBasic u p =
|
authHeaderBasic u p =
|
||||||
(hAuthorization, cs $ "Basic " ++ encode (u ++ ":" ++ p))
|
(hAuthorization, "Basic " <> (toS . encode . toS $ u <> ":" <> p))
|
||||||
|
|
||||||
authHeaderJWT :: String -> Header
|
authHeaderJWT :: BS.ByteString -> Header
|
||||||
authHeaderJWT token =
|
authHeaderJWT token =
|
||||||
(hAuthorization, cs $ "Bearer " ++ token)
|
(hAuthorization, "Bearer " <> token)
|
||||||
|
|||||||
Reference in New Issue
Block a user