@@ -13,10 +13,12 @@ import Data.Functor
1313import Data.HashMap.Strict qualified as HM
1414import Data.Map qualified as Map
1515import Data.Set qualified as Set
16+ import Data.String qualified as String
1617import Data.Text qualified as Text
1718import Data.Text.Encoding qualified as Text
1819import Data.Time.Clock qualified as Time
1920import Database.Redis qualified as Redis
21+ import Hasql.Connection qualified as Hasql
2022import Hasql.Pool qualified as Pool
2123import Hasql.Pool.Config qualified as Pool
2224import Network.HTTP.Client qualified as HTTPClient
@@ -52,7 +54,7 @@ withEnv action = do
5254 ' 0' : _ -> False
5355 [] -> False
5456 _ -> True
55- postgresConfig <- fromEnv " SHARE_POSTGRES" (pure . Right . Text. pack )
57+ postgresConfig <- fromEnv " SHARE_POSTGRES" (pure . Right . String. fromString @ Hasql. Settings )
5658 postgresConnMax <- fromEnv " SHARE_POSTGRES_CONN_MAX" (pure . maybeToEither " Invalid SHARE_POSTGRES_CONN_MAX" . readMaybe)
5759 githubClientID <- fromEnv " SHARE_GITHUB_CLIENTID" (pure . Right . Text. pack)
5860 githubClientSecret <- fromEnv " SHARE_GITHUB_CLIENT_SECRET" (pure . Right . Text. pack)
@@ -124,7 +126,7 @@ withEnv action = do
124126 let pgConnectionMaxIdleTime = Time. secondsToDiffTime (60 * 5 ) -- 5 minutes
125127 -- Limiting max lifetime helps cycle connections which may have accumulated memory cruft.
126128 let pgConnectionMaxLifetime = Time. secondsToDiffTime (60 * 60 ) -- 1 hour
127- let pgSettings = Pool. settings [Pool. staticConnectionSettings ( Text. encodeUtf8 postgresConfig) , Pool. size postgresConnMax, Pool. acquisitionTimeout pgConnectionAcquisitionTimeout, Pool. idlenessTimeout pgConnectionMaxIdleTime, Pool. agingTimeout pgConnectionMaxLifetime]
129+ let pgSettings = Pool. settings [Pool. staticConnectionSettings postgresConfig, Pool. size postgresConnMax, Pool. acquisitionTimeout pgConnectionAcquisitionTimeout, Pool. idlenessTimeout pgConnectionMaxIdleTime, Pool. agingTimeout pgConnectionMaxLifetime]
128130 pgConnectionPool <- Pool. acquire pgSettings
129131 timeCache <- FL. newTimeCache FL. simpleTimeFormat -- E.g. 05/Sep/2023:13:23:56 -0700
130132 sandboxedRuntime <- RT. startRuntime True RT. Persistent " share"
0 commit comments