{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
module WikiMusic.Servant.GenreRoutes
( fetchGenresRoute,
fetchGenreRoute,
insertGenresRoute,
insertGenreCommentsRoute,
insertGenreArtworksRoute,
upsertGenreOpinionsRoute,
deleteGenresByIdentifierRoute,
deleteGenreCommentsByIdentifierRoute,
deleteGenreOpinionsByIdentifierRoute,
deleteGenreArtworksByIdentifierRoute,
updateGenreArtworksOrderRoute,
updateGenreRoute,
searchGenresRoute,
)
where
import Servant
import WikiMusic.Free.GenreCommand
import WikiMusic.Free.GenreQuery
import WikiMusic.Interaction.Genre
import WikiMusic.Interaction.Model.Genre
import WikiMusic.Model.Other
import WikiMusic.Protolude
import WikiMusic.Servant.Utilities
import WikiMusic.Sqlite.GenreCommand ()
import WikiMusic.Sqlite.GenreQuery ()
fetchGenresRoute :: Env -> Maybe Text -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Text -> Handler GetGenresQueryResponse
fetchGenresRoute :: Env
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Handler GetGenresQueryResponse
fetchGenresRoute Env
env Maybe Text
authToken Maybe Int
limit Maybe Int
offset Maybe Text
sort' Maybe Text
include =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError GetGenresQueryResponse)
-> Handler (Either GenreError GetGenresQueryResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @(GenreQuery :+: GenreCommand) (Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse))
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> Limit
-> Offset
-> Maybe Text
-> Maybe Text
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
forall (f :: * -> *).
(GenreQuery :<: f, GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> Limit
-> Offset
-> Maybe Text
-> Maybe Text
-> Free f (Either GenreError GetGenresQueryResponse)
fetchGenresAction Env
env WikiMusicUser
authUser (Limit -> (Int -> Limit) -> Maybe Int -> Limit
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (Int -> Limit
Limit Int
25) Int -> Limit
Limit Maybe Int
limit) (Offset -> (Int -> Offset) -> Maybe Int -> Offset
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (Int -> Offset
Offset Int
0) Int -> Offset
Offset Maybe Int
offset) Maybe Text
sort' Maybe Text
include) Handler (Either GenreError GetGenresQueryResponse)
-> (Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse
forall s b. Show s => Either s b -> Handler b
maybe200
)
searchGenresRoute :: Env -> Maybe Text -> Text -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Text -> Handler GetGenresQueryResponse
searchGenresRoute :: Env
-> Maybe Text
-> Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Handler GetGenresQueryResponse
searchGenresRoute Env
env Maybe Text
authToken Text
searchInput Maybe Int
limit Maybe Int
offset Maybe Text
sort' Maybe Text
include =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError GetGenresQueryResponse)
-> Handler (Either GenreError GetGenresQueryResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @(GenreQuery :+: GenreCommand) (Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse))
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> Limit
-> Offset
-> Maybe Text
-> Maybe Text
-> Text
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
forall (f :: * -> *).
(GenreQuery :<: f, GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> Limit
-> Offset
-> Maybe Text
-> Maybe Text
-> Text
-> Free f (Either GenreError GetGenresQueryResponse)
searchGenresAction Env
env WikiMusicUser
authUser (Limit -> (Int -> Limit) -> Maybe Int -> Limit
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (Int -> Limit
Limit Int
25) Int -> Limit
Limit Maybe Int
limit) (Offset -> (Int -> Offset) -> Maybe Int -> Offset
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (Int -> Offset
Offset Int
0) Int -> Offset
Offset Maybe Int
offset) Maybe Text
sort' Maybe Text
include Text
searchInput) Handler (Either GenreError GetGenresQueryResponse)
-> (Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse
forall s b. Show s => Either s b -> Handler b
maybe200
)
fetchGenreRoute :: Env -> Maybe Text -> UUID -> Handler GetGenresQueryResponse
fetchGenreRoute :: Env -> Maybe Text -> UUID -> Handler GetGenresQueryResponse
fetchGenreRoute Env
env Maybe Text
authToken UUID
identifier =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError GetGenresQueryResponse)
-> Handler (Either GenreError GetGenresQueryResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @(GenreQuery :+: GenreCommand) (Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse))
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
-> IO (Either GenreError GetGenresQueryResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UUID
-> Maybe Text
-> Maybe Text
-> Free
(GenreQuery :+: GenreCommand)
(Either GenreError GetGenresQueryResponse)
forall (f :: * -> *).
(GenreQuery :<: f, GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> UUID
-> Maybe Text
-> Maybe Text
-> Free f (Either GenreError GetGenresQueryResponse)
fetchGenreAction Env
env WikiMusicUser
authUser UUID
identifier (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"created-at-desc") (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"artworks,opinions,comments")) Handler (Either GenreError GetGenresQueryResponse)
-> (Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse)
-> Handler GetGenresQueryResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError GetGenresQueryResponse
-> Handler GetGenresQueryResponse
forall s b. Show s => Either s b -> Handler b
maybe200
)
insertGenresRoute :: Env -> Maybe Text -> InsertGenresRequest -> Handler InsertGenresCommandResponse
insertGenresRoute :: Env
-> Maybe Text
-> InsertGenresRequest
-> Handler InsertGenresCommandResponse
insertGenresRoute Env
env Maybe Text
authToken InsertGenresRequest
req =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler InsertGenresCommandResponse)
-> Handler InsertGenresCommandResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError InsertGenresCommandResponse)
-> Handler (Either GenreError InsertGenresCommandResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @(GenreCommand :+: GenreQuery) (Free
(GenreCommand :+: GenreQuery)
(Either GenreError InsertGenresCommandResponse)
-> IO (Either GenreError InsertGenresCommandResponse))
-> Free
(GenreCommand :+: GenreQuery)
(Either GenreError InsertGenresCommandResponse)
-> IO (Either GenreError InsertGenresCommandResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> InsertGenresRequest
-> Free
(GenreCommand :+: GenreQuery)
(Either GenreError InsertGenresCommandResponse)
forall (f :: * -> *).
(GenreCommand :<: f, GenreQuery :<: f) =>
Env
-> WikiMusicUser
-> InsertGenresRequest
-> Free f (Either GenreError InsertGenresCommandResponse)
insertGenresAction Env
env WikiMusicUser
authUser InsertGenresRequest
req) Handler (Either GenreError InsertGenresCommandResponse)
-> (Either GenreError InsertGenresCommandResponse
-> Handler InsertGenresCommandResponse)
-> Handler InsertGenresCommandResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError InsertGenresCommandResponse
-> Handler InsertGenresCommandResponse
forall s b. Show s => Either s b -> Handler b
maybe204
)
insertGenreCommentsRoute :: Env -> Maybe Text -> InsertGenreCommentsRequest -> Handler InsertGenreCommentsCommandResponse
Env
env Maybe Text
authToken InsertGenreCommentsRequest
req =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler InsertGenreCommentsCommandResponse)
-> Handler InsertGenreCommentsCommandResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError InsertGenreCommentsCommandResponse)
-> Handler (Either GenreError InsertGenreCommentsCommandResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free
GenreCommand (Either GenreError InsertGenreCommentsCommandResponse)
-> IO (Either GenreError InsertGenreCommentsCommandResponse))
-> Free
GenreCommand (Either GenreError InsertGenreCommentsCommandResponse)
-> IO (Either GenreError InsertGenreCommentsCommandResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> InsertGenreCommentsRequest
-> Free
GenreCommand (Either GenreError InsertGenreCommentsCommandResponse)
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> InsertGenreCommentsRequest
-> Free f (Either GenreError InsertGenreCommentsCommandResponse)
insertGenreCommentsAction Env
env WikiMusicUser
authUser InsertGenreCommentsRequest
req) Handler (Either GenreError InsertGenreCommentsCommandResponse)
-> (Either GenreError InsertGenreCommentsCommandResponse
-> Handler InsertGenreCommentsCommandResponse)
-> Handler InsertGenreCommentsCommandResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError InsertGenreCommentsCommandResponse
-> Handler InsertGenreCommentsCommandResponse
forall s b. Show s => Either s b -> Handler b
maybe204
)
upsertGenreOpinionsRoute :: Env -> Maybe Text -> UpsertGenreOpinionsRequest -> Handler UpsertGenreOpinionsCommandResponse
upsertGenreOpinionsRoute :: Env
-> Maybe Text
-> UpsertGenreOpinionsRequest
-> Handler UpsertGenreOpinionsCommandResponse
upsertGenreOpinionsRoute Env
env Maybe Text
authToken UpsertGenreOpinionsRequest
req =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler UpsertGenreOpinionsCommandResponse)
-> Handler UpsertGenreOpinionsCommandResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError UpsertGenreOpinionsCommandResponse)
-> Handler (Either GenreError UpsertGenreOpinionsCommandResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free
GenreCommand (Either GenreError UpsertGenreOpinionsCommandResponse)
-> IO (Either GenreError UpsertGenreOpinionsCommandResponse))
-> Free
GenreCommand (Either GenreError UpsertGenreOpinionsCommandResponse)
-> IO (Either GenreError UpsertGenreOpinionsCommandResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UpsertGenreOpinionsRequest
-> Free
GenreCommand (Either GenreError UpsertGenreOpinionsCommandResponse)
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> UpsertGenreOpinionsRequest
-> Free f (Either GenreError UpsertGenreOpinionsCommandResponse)
upsertGenreOpinionsAction Env
env WikiMusicUser
authUser UpsertGenreOpinionsRequest
req) Handler (Either GenreError UpsertGenreOpinionsCommandResponse)
-> (Either GenreError UpsertGenreOpinionsCommandResponse
-> Handler UpsertGenreOpinionsCommandResponse)
-> Handler UpsertGenreOpinionsCommandResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError UpsertGenreOpinionsCommandResponse
-> Handler UpsertGenreOpinionsCommandResponse
forall s b. Show s => Either s b -> Handler b
maybe204
)
insertGenreArtworksRoute :: Env -> Maybe Text -> InsertGenreArtworksRequest -> Handler InsertGenreArtworksCommandResponse
insertGenreArtworksRoute :: Env
-> Maybe Text
-> InsertGenreArtworksRequest
-> Handler InsertGenreArtworksCommandResponse
insertGenreArtworksRoute Env
env Maybe Text
authToken InsertGenreArtworksRequest
req =
Env
-> Maybe Text
-> (WikiMusicUser -> Handler InsertGenreArtworksCommandResponse)
-> Handler InsertGenreArtworksCommandResponse
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError InsertGenreArtworksCommandResponse)
-> Handler (Either GenreError InsertGenreArtworksCommandResponse)
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free
GenreCommand (Either GenreError InsertGenreArtworksCommandResponse)
-> IO (Either GenreError InsertGenreArtworksCommandResponse))
-> Free
GenreCommand (Either GenreError InsertGenreArtworksCommandResponse)
-> IO (Either GenreError InsertGenreArtworksCommandResponse)
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> InsertGenreArtworksRequest
-> Free
GenreCommand (Either GenreError InsertGenreArtworksCommandResponse)
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> InsertGenreArtworksRequest
-> Free f (Either GenreError InsertGenreArtworksCommandResponse)
insertGenreArtworksAction Env
env WikiMusicUser
authUser InsertGenreArtworksRequest
req) Handler (Either GenreError InsertGenreArtworksCommandResponse)
-> (Either GenreError InsertGenreArtworksCommandResponse
-> Handler InsertGenreArtworksCommandResponse)
-> Handler InsertGenreArtworksCommandResponse
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError InsertGenreArtworksCommandResponse
-> Handler InsertGenreArtworksCommandResponse
forall s b. Show s => Either s b -> Handler b
maybe204
)
deleteGenresByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenresByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenresByIdentifierRoute Env
env Maybe Text
authToken UUID
uid =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ()))
-> Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UUID
-> Free GenreCommand (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env -> WikiMusicUser -> UUID -> Free f (Either GenreError ())
deleteGenresByIdentifierAction Env
env WikiMusicUser
authUser UUID
uid) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)
deleteGenreCommentsByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
Env
env Maybe Text
authToken UUID
uid =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ()))
-> Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UUID
-> Free GenreCommand (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env -> WikiMusicUser -> UUID -> Free f (Either GenreError ())
deleteGenreCommentsByIdentifierAction Env
env WikiMusicUser
authUser UUID
uid) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)
deleteGenreOpinionsByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenreOpinionsByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenreOpinionsByIdentifierRoute Env
env Maybe Text
authToken UUID
uid =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ()))
-> Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UUID
-> Free GenreCommand (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env -> WikiMusicUser -> UUID -> Free f (Either GenreError ())
deleteGenreOpinionsByIdentifierAction Env
env WikiMusicUser
authUser UUID
uid) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)
deleteGenreArtworksByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenreArtworksByIdentifierRoute :: Env -> Maybe Text -> UUID -> Handler ()
deleteGenreArtworksByIdentifierRoute Env
env Maybe Text
authToken UUID
uid =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ()))
-> Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> UUID
-> Free GenreCommand (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env -> WikiMusicUser -> UUID -> Free f (Either GenreError ())
deleteGenreArtworksByIdentifierAction Env
env WikiMusicUser
authUser UUID
uid) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)
updateGenreArtworksOrderRoute :: Env -> Maybe Text -> GenreArtworkOrderUpdateRequest -> Handler ()
updateGenreArtworksOrderRoute :: Env -> Maybe Text -> GenreArtworkOrderUpdateRequest -> Handler ()
updateGenreArtworksOrderRoute Env
env Maybe Text
authToken GenreArtworkOrderUpdateRequest
req =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @GenreCommand (Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ()))
-> Free GenreCommand (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> GenreArtworkOrderUpdateRequest
-> Free GenreCommand (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f) =>
Env
-> WikiMusicUser
-> GenreArtworkOrderUpdateRequest
-> Free f (Either GenreError ())
updateGenreArtworksOrderAction Env
env WikiMusicUser
authUser GenreArtworkOrderUpdateRequest
req) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)
updateGenreRoute :: Env -> Maybe Text -> GenreDeltaRequest -> Handler ()
updateGenreRoute :: Env -> Maybe Text -> GenreDeltaRequest -> Handler ()
updateGenreRoute Env
env Maybe Text
authToken GenreDeltaRequest
req =
Env -> Maybe Text -> (WikiMusicUser -> Handler ()) -> Handler ()
forall a.
Env -> Maybe Text -> (WikiMusicUser -> Handler a) -> Handler a
doWithAuth
Env
env
Maybe Text
authToken
( \WikiMusicUser
authUser ->
IO (Either GenreError ()) -> Handler (Either GenreError ())
forall a. IO a -> Handler a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (forall (f :: * -> *) a. Exec f => Free f a -> IO a
exec @(GenreCommand :+: GenreQuery) (Free (GenreCommand :+: GenreQuery) (Either GenreError ())
-> IO (Either GenreError ()))
-> Free (GenreCommand :+: GenreQuery) (Either GenreError ())
-> IO (Either GenreError ())
forall a b. (a -> b) -> a -> b
$ Env
-> WikiMusicUser
-> GenreDeltaRequest
-> Free (GenreCommand :+: GenreQuery) (Either GenreError ())
forall (f :: * -> *).
(GenreCommand :<: f, GenreQuery :<: f) =>
Env
-> WikiMusicUser
-> GenreDeltaRequest
-> Free f (Either GenreError ())
updateGenreAction Env
env WikiMusicUser
authUser GenreDeltaRequest
req) Handler (Either GenreError ())
-> (Either GenreError () -> Handler ()) -> Handler ()
forall a b. Handler a -> (a -> Handler b) -> Handler b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Either GenreError () -> Handler ()
forall s b. Show s => Either s b -> Handler b
maybe204
)