{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} module Datarekisteri.Frontend.Handlers.Members where import Relude hiding (id) import Data.Morpheus.Client (raw, declareLocalTypesInline) import Yesod import Yesod.Auth import Datarekisteri.Frontend.Types import Datarekisteri.Frontend.ApiRequests import Datarekisteri.Frontend.Widgets import Datarekisteri.Core.Types declareLocalTypesInline "schema.gql" [raw| query MembersPage { users { id name nickname homeplace } } |] instance ToTableRow DataIdClient MembersPageUsers where tableHeader _ = toWidget <$> ["Nimi" :: Text, "Kutsumanimi", "Kotipaikka"] toCells MembersPageUsers {..} = toWidget <$> [name, nickname, homeplace] getMembersR :: Handler Html getMembersR = do MembersPage {..} <- apiRequest True () defaultLayout $ do setTitle "Jäsenet" let memberNickname member = let MembersPageUsers {..} = member in nickname memberName member = let MembersPageUsers {..} = member in name memberHomeplace member = let MembersPageUsers {..} = member in homeplace memberId member = let MembersPageUsers {..} = member in id [whamlet|
Ei jäseniä. $else
Nimi | Kutsumanimi | Kotipaikka |
---|---|---|
#{memberName member} | #{memberNickname member} | #{memberHomeplace member} |] |