aboutsummaryrefslogtreecommitdiff
path: root/server/src/Controller/Category.hs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/Controller/Category.hs')
-rw-r--r--server/src/Controller/Category.hs88
1 files changed, 0 insertions, 88 deletions
diff --git a/server/src/Controller/Category.hs b/server/src/Controller/Category.hs
deleted file mode 100644
index 371ba78..0000000
--- a/server/src/Controller/Category.hs
+++ /dev/null
@@ -1,88 +0,0 @@
-module Controller.Category
- ( listAll
- , list
- , create
- , edit
- , delete
- ) where
-
-import Control.Monad.IO.Class (liftIO)
-import qualified Data.Text.Lazy as TL
-import Data.Validation (Validation (..))
-import Network.HTTP.Types.Status (badRequest400, ok200)
-import Web.Scotty hiding (delete)
-
-import Common.Model (CategoryId, CategoryPage (..),
- CreateCategoryForm (..),
- EditCategoryForm (..))
-import qualified Common.Msg as Msg
-
-import qualified Controller.Helper as ControllerHelper
-import Model.CreateCategory (CreateCategory (..))
-import Model.EditCategory (EditCategory (..))
-import qualified Model.Query as Query
-import qualified Persistence.Category as CategoryPersistence
-import qualified Persistence.Payment as PaymentPersistence
-import qualified Secure
-import qualified Validation.Category as CategoryValidation
-
-listAll :: ActionM ()
-listAll =
- Secure.loggedAction (\_ ->
- (liftIO . Query.run $ CategoryPersistence.listAll) >>= json
- )
-
-list :: Int -> Int -> ActionM ()
-list page perPage =
- Secure.loggedAction (\_ ->
- (liftIO . Query.run $ do
- categories <- CategoryPersistence.list page perPage
- usedCategories <- PaymentPersistence.usedCategories
- count <- CategoryPersistence.count
- return $ CategoryPage page categories usedCategories count
- ) >>= json
- )
-
-create :: CreateCategoryForm -> ActionM ()
-create form =
- Secure.loggedAction (\_ ->
- (liftIO . Query.run $ do
- case CategoryValidation.createCategory form of
- Success (CreateCategory name color) -> do
- Right <$> (CategoryPersistence.create name color)
-
- Failure validationError ->
- return $ Left validationError
- ) >>= ControllerHelper.okOrBadRequest
- )
-
-edit :: EditCategoryForm -> ActionM ()
-edit form =
- Secure.loggedAction (\_ ->
- (liftIO . Query.run $ do
- case CategoryValidation.editCategory form of
- Success (EditCategory categoryId name color) ->
- do
- isSuccess <- CategoryPersistence.edit categoryId name color
- return $ if isSuccess then
- Right ()
- else
- Left $ Msg.get Msg.Error_CategoryEdit
-
- Failure validationError ->
- return $ Left validationError
- ) >>= ControllerHelper.okOrBadRequest
- )
-
-delete :: CategoryId -> ActionM ()
-delete categoryId =
- Secure.loggedAction (\_ -> do
- deleted <- liftIO . Query.run $ do
- CategoryPersistence.delete categoryId
- if deleted
- then
- status ok200
- else do
- status badRequest400
- text . TL.fromStrict $ Msg.get Msg.Category_NotDeleted
- )