wikimusic-api-1.2.0.8: src/WikiMusic/Servant/AuthRoutes.hs
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
module WikiMusic.Servant.AuthRoutes
( fetchMeRoute,
)
where
import Servant
import WikiMusic.Free.AuthQuery
import WikiMusic.Interaction.Auth
import WikiMusic.Interaction.Model.Auth
import WikiMusic.Model.Env
import WikiMusic.Protolude
import WikiMusic.Servant.Utilities
import WikiMusic.Sqlite.AuthQuery ()
fetchMeRoute :: Env -> Maybe Text -> Handler GetMeQueryResponse
fetchMeRoute env authToken = do
doWithAuth
env
authToken
( \authUser -> do
maybeUser <- liftIO (exec @AuthQuery $ fetchMeAction env (authUser ^. #identifier))
maybe (throwError err404) pure maybeUser
)