Clean imports and language extensions
This commit is contained in:
parent
3942d547e0
commit
4ef8890a19
|
@ -30,6 +30,7 @@
|
|||
ghc-base64
|
||||
ghc-cryptonite
|
||||
ghc-datarekisteri-core
|
||||
ghc-data-default
|
||||
ghc-echo
|
||||
ghc-email-validate
|
||||
ghc-esqueleto
|
||||
|
|
|
@ -16,6 +16,7 @@ executable datarekisteri-backend
|
|||
base64,
|
||||
cryptonite,
|
||||
datarekisteri-core,
|
||||
data-default,
|
||||
email-validate,
|
||||
esqueleto,
|
||||
http-types,
|
||||
|
|
|
@ -8,29 +8,37 @@
|
|||
import Relude
|
||||
|
||||
import "cryptonite" Crypto.Random (MonadRandom(..))
|
||||
import Control.Monad.Logger (runStderrLoggingT)
|
||||
import qualified "base64" Data.ByteString.Base64 as B64
|
||||
|
||||
import Control.Monad.Except (catchError)
|
||||
import Control.Monad.Logger (runStderrLoggingT)
|
||||
import Data.Default (def)
|
||||
import Data.Map (findWithDefault)
|
||||
import Data.Text (toLower, breakOn, stripPrefix)
|
||||
import Database.Persist.Postgresql (withPostgresqlConn, runSqlConn)
|
||||
import Datarekisteri.Core.Types
|
||||
import Network.HTTP.Types.Status (status500, status401)
|
||||
import Network.Mail.Mime (renderSendMailCustom, Address(..))
|
||||
import Network.Wai (Application)
|
||||
import Network.Wai.Handler.Warp (Port, run)
|
||||
import Network.Wai.Middleware.Cors
|
||||
import Network.Wai.Middleware.Gzip
|
||||
import Datarekisteri.Backend.API
|
||||
import qualified Datarekisteri.Backend.Sql as Sql
|
||||
import Datarekisteri.Backend.Sql (MonadSql)
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Backend.Utils (checkPassword)
|
||||
import Network.Wai.Middleware.Cors (CorsResourcePolicy(..), cors)
|
||||
import Network.Wai.Middleware.Gzip (gzip)
|
||||
import System.Directory (findExecutable)
|
||||
import System.Process (callProcess)
|
||||
import Options.Applicative hiding (Success, header)
|
||||
|
||||
import qualified Options.Applicative as O
|
||||
|
||||
import Options.Applicative hiding (Success, header)
|
||||
import Web.Scotty.Trans hiding (readEither)
|
||||
import qualified "base64" Data.ByteString.Base64 as B64 (decodeBase64)
|
||||
|
||||
import Datarekisteri.Backend.Sql (MonadSql)
|
||||
import Datarekisteri.Backend.Utils (checkPassword)
|
||||
|
||||
import qualified Datarekisteri.Backend.Sql as Sql
|
||||
|
||||
import Datarekisteri.Backend.API
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Core.Types
|
||||
|
||||
import Paths_datarekisteri_backend
|
||||
|
||||
main :: IO ()
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
|
||||
{-# LANGUAGE NoGeneralizedNewtypeDeriving #-}
|
||||
|
||||
|
@ -21,17 +21,20 @@ module Datarekisteri.Backend.API (coreApp, runApp, resolver) where
|
|||
import Relude hiding (Undefined, get)
|
||||
|
||||
import "cryptonite" Crypto.Random (getRandomBytes, MonadRandom)
|
||||
import qualified "base64" Data.ByteString.Base64 as B64
|
||||
|
||||
import Control.Monad.Except (MonadError, throwError, catchError)
|
||||
import Data.Morpheus.Server (deriveApp, runApp)
|
||||
import Data.Morpheus.Server.Types (defaultRootResolver, RootResolver(..), Undefined)
|
||||
import Data.Morpheus.Types (Arg(..), GQLType, GQLError, App)
|
||||
import Datarekisteri.Core.Types
|
||||
import Datarekisteri.Backend.Email (sendVerificationEmail, sendApplicationAcceptedEmail, sendApplicationRejectedEmail)
|
||||
import Datarekisteri.Backend.Types
|
||||
|
||||
import qualified Data.Text as T
|
||||
|
||||
import Datarekisteri.Backend.Email
|
||||
import Datarekisteri.Backend.DB
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Backend.Utils
|
||||
import qualified "base64" Data.ByteString.Base64 as B64 (encodeBase64)
|
||||
import qualified Data.Text as T (null, chunksOf, intercalate)
|
||||
import Datarekisteri.Core.Types
|
||||
|
||||
-- General functions, maybe migrate to Utils or API.Utils
|
||||
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
module Datarekisteri.Backend.Email where
|
||||
|
||||
import Datarekisteri.Backend.Types
|
||||
import Data.Text (Text)
|
||||
import Data.Text.Lazy (fromStrict)
|
||||
import Network.Mail.Mime (Address(..), simpleMail')
|
||||
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Core.Types
|
||||
import Network.Mail.Mime
|
||||
|
||||
sendDatarekisteriEmail :: MonadEmail m => Text -> Text -> Email -> m ()
|
||||
sendDatarekisteriEmail subject content to = do
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -7,14 +7,17 @@ module Datarekisteri.Backend.Sql where
|
|||
|
||||
import Relude
|
||||
|
||||
import Data.Aeson (Result(..), fromJSON, toJSON)
|
||||
import Data.Time (nominalDay)
|
||||
import Datarekisteri.Backend.Sql.Types
|
||||
import Database.Persist (Entity(..), (=.))
|
||||
|
||||
import Datarekisteri.Backend.Sql.Queries (SqlM, UserUpdate(..))
|
||||
|
||||
import qualified Datarekisteri.Backend.Sql.Queries as Sql
|
||||
|
||||
import Datarekisteri.Backend.Sql.Types
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Core.Types
|
||||
import Database.Persist (Entity(..), (=.))
|
||||
import Data.Aeson (Result(..), fromJSON, toJSON)
|
||||
|
||||
class Monad m => MonadSql m where
|
||||
runQuery :: SqlM a -> m a
|
||||
|
|
|
@ -6,16 +6,19 @@
|
|||
|
||||
module Datarekisteri.Backend.Sql.Queries where
|
||||
|
||||
import Datarekisteri.Backend.Sql.Types
|
||||
import Datarekisteri.Backend.Types (MemberData(..))
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Text (Text)
|
||||
import Database.Esqueleto.Experimental
|
||||
import Control.Monad.Logger (LoggingT)
|
||||
import qualified Database.Persist as Persist (update, (=.))
|
||||
import qualified Database.Persist.Types as Persist (Update)
|
||||
import Data.Maybe (listToMaybe)
|
||||
import Data.Aeson (fromJSON, toJSON, Result(..))
|
||||
import Data.Maybe (listToMaybe)
|
||||
import Data.Text (Text)
|
||||
|
||||
import qualified Database.Persist as Persist
|
||||
|
||||
import Database.Esqueleto.Experimental
|
||||
|
||||
import Datarekisteri.Backend.Types (MemberData(..))
|
||||
|
||||
import Datarekisteri.Backend.Sql.Types
|
||||
import Datarekisteri.Core.Types
|
||||
|
||||
type SqlM a = SqlPersistT (LoggingT IO) a
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{-# LANGUAGE DataKinds #-}
|
||||
{-# LANGUAGE DerivingStrategies #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE FlexibleInstances #-}
|
||||
{-# LANGUAGE GADTs #-}
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
|
@ -10,16 +11,16 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE UndecidableInstances #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
|
||||
module Datarekisteri.Backend.Sql.Types where
|
||||
|
||||
import Data.ByteString (ByteString)
|
||||
import Data.Text (Text)
|
||||
import Database.Persist.TH (persistUpperCase, mkPersist, sqlSettings)
|
||||
import Database.Persist (Entity, Key, entityKey, PersistEntity)
|
||||
import Database.Persist.Sql (fromSqlKey, toSqlKey)
|
||||
import Database.Persist.Postgresql.JSON (Value)
|
||||
import Database.Persist.Sql (fromSqlKey, toSqlKey)
|
||||
import Database.Persist.TH (persistUpperCase, mkPersist, sqlSettings)
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
import Datarekisteri.Backend.Types
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@ module Datarekisteri.Backend.Types where
|
|||
|
||||
import Relude
|
||||
|
||||
import "cryptonite" Crypto.Random (MonadRandom(..))
|
||||
|
||||
import Control.Monad.Except (throwError)
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Aeson (ToJSON(..), FromJSON(..))
|
||||
import Data.ByteArray (ByteArray, ByteArrayAccess)
|
||||
import Data.Morpheus.App.Internal.Resolving (Resolver, LiftOperation)
|
||||
|
@ -28,7 +29,8 @@ import Data.Time (getCurrentTime)
|
|||
import Database.Persist.Class (PersistField(..))
|
||||
import Database.Persist.Sql (PersistFieldSql(..))
|
||||
import Network.Mail.Mime (Mail, Address(..))
|
||||
import "cryptonite" Crypto.Random (MonadRandom(..))
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
|
||||
forward :: Monad m => [a] -> m [Maybe a]
|
||||
forward = pure . map Just
|
||||
|
|
|
@ -2,12 +2,15 @@
|
|||
|
||||
module Datarekisteri.Backend.Utils where
|
||||
|
||||
import "cryptonite" Crypto.Random (MonadRandom)
|
||||
|
||||
import Data.ByteArray.Encoding (convertToBase, Base(..))
|
||||
import Data.ByteString (ByteString)
|
||||
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
|
||||
import Data.Text (Text)
|
||||
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
|
||||
|
||||
import qualified Crypto.KDF.BCrypt as Crypt (hashPassword, validatePassword)
|
||||
import "cryptonite" Crypto.Random (MonadRandom)
|
||||
|
||||
import Datarekisteri.Backend.Types
|
||||
|
||||
base32 :: ByteString -> Text
|
||||
|
|
|
@ -12,14 +12,18 @@ import "cryptonite" Crypto.Random (MonadRandom(..))
|
|||
import Control.Monad.Logger (runStderrLoggingT)
|
||||
import Data.Aeson (toJSON)
|
||||
import Database.Persist.Postgresql (withPostgresqlConn, runSqlConn)
|
||||
import qualified Datarekisteri.Backend.Sql.Queries as Sql
|
||||
import System.IO.Echo (withoutInputEcho)
|
||||
|
||||
import Options.Applicative
|
||||
|
||||
import Datarekisteri.Backend.Sql (MonadSql, runQuery)
|
||||
|
||||
import qualified Datarekisteri.Backend.Sql.Queries as Sql
|
||||
|
||||
import Datarekisteri.Backend.Sql.Types
|
||||
import Datarekisteri.Backend.Types
|
||||
import Datarekisteri.Backend.Utils
|
||||
import Datarekisteri.Core.Types
|
||||
import Options.Applicative
|
||||
import System.IO.Echo (withoutInputEcho)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
|
@ -49,12 +53,11 @@ addUserMain AddUserOpts {..} = do
|
|||
, phoneNumber = addUserPhoneNumber
|
||||
}
|
||||
}
|
||||
_ <- Sql.addEmail $ SqlEmail
|
||||
void $ Sql.addEmail $ SqlEmail
|
||||
{ sqlEmailUid = fromID userID
|
||||
, sqlEmailEmail = addUserEmail
|
||||
, sqlEmailVid = Nothing
|
||||
}
|
||||
pure ()
|
||||
|
||||
gcEmailsMain :: CLIM ()
|
||||
gcEmailsMain = do
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
module Datarekisteri.Core.Types where
|
||||
|
||||
import Relude
|
||||
|
||||
import qualified "base64" Data.ByteString.Base64 as B64
|
||||
|
||||
import Data.Aeson (ToJSON(..), FromJSON(..))
|
||||
import Data.Char (isSpace)
|
||||
import Data.Morpheus.Server.Types (SCALAR)
|
||||
|
@ -21,7 +24,6 @@ import Database.Persist.PersistValue (PersistValue(..))
|
|||
import Database.Persist.Sql (PersistFieldSql(..))
|
||||
import Text.Email.Validate (EmailAddress, toByteString, validate, emailAddress)
|
||||
|
||||
import qualified "base64" Data.ByteString.Base64 as B64 (encodeBase64, decodeBase64)
|
||||
import qualified Data.Text as T
|
||||
|
||||
base64Encode :: ByteString -> Base64
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE RankNTypes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE RankNTypes #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE ViewPatterns #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
import Relude hiding (get)
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
import System.Directory (createDirectoryIfMissing)
|
||||
import Yesod.Static (static, Static)
|
||||
import Yesod (mkYesodDispatch, warp)
|
||||
import Yesod.Auth (getAuth)
|
||||
|
||||
import Options.Applicative
|
||||
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Datarekisteri.Frontend.Handlers
|
||||
import Datarekisteri.Frontend.Auth ()
|
||||
import Yesod.Static (static, Static)
|
||||
import Options.Applicative
|
||||
import System.Directory (createDirectoryIfMissing)
|
||||
|
||||
mkYesodDispatch "DataIdClient" resourcesDataIdClient
|
||||
|
||||
|
|
|
@ -13,9 +13,10 @@ module Datarekisteri.Frontend.ApiRequests where
|
|||
|
||||
import Relude
|
||||
|
||||
import Data.Morpheus.Client
|
||||
import Yesod hiding (Header)
|
||||
import Yesod.Auth
|
||||
import Data.Aeson (ToJSON, FromJSON)
|
||||
import Data.Morpheus.Client (RequestType, RequestArgs, Args, GQLClientResult, FetchError(..), single, request, withHeaders)
|
||||
import Yesod (HandlerFor, getYesod, liftHandler)
|
||||
import Yesod.Auth (YesodAuth, AuthId, requireAuthId, maybeAuthId)
|
||||
|
||||
type ClientTypeConstraint (a :: Type) = (RequestType a, ToJSON (RequestArgs a), FromJSON a)
|
||||
-- From Data.Morpheus.Client.Fetch.RequestType
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE RankNTypes #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -14,11 +14,11 @@ module Datarekisteri.Frontend.Auth where
|
|||
|
||||
import Relude
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Morpheus.Client
|
||||
import qualified "base64" Data.ByteString.Base64 as B64
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
import qualified "base64" Data.ByteString.Base64 as B64 (encodeBase64)
|
||||
|
||||
import qualified Yesod.Auth.Message as Msg
|
||||
|
||||
pluginName = "externalBasic"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -8,8 +8,9 @@ module Datarekisteri.Frontend.FormFields where
|
|||
import Relude
|
||||
|
||||
import Yesod
|
||||
import Datarekisteri.Frontend.Types
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
import Datarekisteri.Frontend.Types
|
||||
|
||||
emailField :: Field Handler Email
|
||||
emailField = Field
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE DisambiguateRecordFields #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
module Datarekisteri.Frontend.Handlers
|
||||
( module Datarekisteri.Frontend.Handlers.Profile
|
||||
, module Datarekisteri.Frontend.Handlers.Apply
|
||||
, module Datarekisteri.Frontend.Handlers.Applications
|
||||
, module Datarekisteri.Frontend.Handlers.VerifyEmail
|
||||
, module Datarekisteri.Frontend.Handlers.Apply
|
||||
, module Datarekisteri.Frontend.Handlers.Members
|
||||
, module Datarekisteri.Frontend.Handlers.VerifyEmail
|
||||
, getHomeR
|
||||
) where
|
||||
|
||||
import Relude
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Frontend.Handlers.Profile
|
||||
import Datarekisteri.Frontend.Handlers.Apply
|
||||
import Datarekisteri.Frontend.Handlers.Applications
|
||||
import Datarekisteri.Frontend.Handlers.VerifyEmail
|
||||
import Datarekisteri.Frontend.Handlers.Members
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
getHomeR :: Handler Html
|
||||
getHomeR = ifM (isJust <$> maybeAuthId) (redirect OwnProfileR) (redirect $ AuthR LoginR)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -14,15 +14,17 @@ module Datarekisteri.Frontend.Handlers.Applications where
|
|||
|
||||
import Relude hiding (id)
|
||||
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Data.Morpheus.Client
|
||||
import Datarekisteri.Core.Types hiding (Applications)
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Time (Day)
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
|
||||
import Yesod hiding (emailField)
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Core.Types hiding (Applications)
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.FormFields
|
||||
import Data.Time (Day)
|
||||
import Data.Maybe (fromJust)
|
||||
import Datarekisteri.Frontend.Types
|
||||
|
||||
declareLocalTypesInline "schema.gql" [raw|
|
||||
query Applications {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -14,14 +14,16 @@ module Datarekisteri.Frontend.Handlers.Apply where
|
|||
|
||||
import Relude hiding (id)
|
||||
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Data.Morpheus.Client
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
import Data.Time (Day)
|
||||
|
||||
import Yesod hiding (emailField)
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.FormFields
|
||||
import Data.Time (Day)
|
||||
import Datarekisteri.Frontend.Types
|
||||
|
||||
declareLocalTypesInline "schema.gql" [raw|
|
||||
mutation Apply($name: String!, $nickname: String, $homeplace: String!,
|
||||
|
|
|
@ -12,12 +12,14 @@ module Datarekisteri.Frontend.Handlers.Members where
|
|||
|
||||
import Relude hiding (id)
|
||||
|
||||
import Data.Morpheus.Client
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Core.Types
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
declareLocalTypesInline "schema.gql" [raw|
|
||||
query MembersPage {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -14,14 +14,16 @@ module Datarekisteri.Frontend.Handlers.Profile where
|
|||
|
||||
import Relude hiding (id)
|
||||
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
|
||||
import Yesod hiding (emailField)
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Core.Types
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Datarekisteri.Frontend.FormFields
|
||||
import Data.Morpheus.Client
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Maybe (fromJust)
|
||||
import Yesod hiding (emailField)
|
||||
import Yesod.Auth
|
||||
|
||||
declareLocalTypesInline "schema.gql" [raw|
|
||||
query ProfilePage($id: UserID) {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
|
@ -13,12 +13,14 @@ module Datarekisteri.Frontend.Handlers.VerifyEmail where
|
|||
|
||||
import Relude
|
||||
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Datarekisteri.Frontend.Types
|
||||
import Datarekisteri.Core.Types
|
||||
import Data.Morpheus.Client
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
|
||||
declareLocalTypesInline "schema.gql" [raw|
|
||||
mutation VerifyEmail($secret: String!) {
|
||||
|
|
|
@ -16,20 +16,22 @@
|
|||
module Datarekisteri.Frontend.Types where
|
||||
|
||||
import Relude hiding (id)
|
||||
import Relude.Extra.Foldable1 (maximum1)
|
||||
|
||||
import Yesod
|
||||
import Yesod.Core.Handler (getCurrentRoute)
|
||||
import Yesod.Default.Util (addStaticContentExternal)
|
||||
import Yesod.Auth
|
||||
import Yesod.Static
|
||||
import Datarekisteri.Core.Types (UserID(..), Scope(..), Permission(..), readPermission)
|
||||
import Data.Map (findWithDefault)
|
||||
import Data.Morpheus.Client (raw, declareLocalTypesInline)
|
||||
import Data.Time (getCurrentTime)
|
||||
import Data.Time.Format.ISO8601 (iso8601Show)
|
||||
import Datarekisteri.Frontend.Auth
|
||||
import Relude.Extra.Foldable1 (maximum1)
|
||||
import Yesod.Core.Handler (getCurrentRoute)
|
||||
import Yesod.Default.Util (addStaticContentExternal)
|
||||
|
||||
import Yesod
|
||||
import Yesod.Auth
|
||||
import Yesod.Static
|
||||
|
||||
import Datarekisteri.Core.Types (UserID(..), Scope(..), Permission(..), readPermission)
|
||||
import Datarekisteri.Frontend.ApiRequests
|
||||
import Data.Morpheus.Client
|
||||
import Data.Map (findWithDefault)
|
||||
import Datarekisteri.Frontend.Auth
|
||||
|
||||
data DataIdClient = DataIdClient
|
||||
{ getStatic :: Static
|
||||
|
|
Loading…
Reference in New Issue