aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJoris2020-01-04 19:22:45 +0100
committerJoris2020-01-04 19:22:45 +0100
commitda2a0c13aa89705c65fdb9df2f496fb4eea29654 (patch)
tree760e267f0215349af1d5e7c10c84a04bcb5bc75c /common
parent1dfb85d3fd56d163fc854a8b3cf659d0ac39f639 (diff)
downloadbudget-da2a0c13aa89705c65fdb9df2f496fb4eea29654.tar.gz
budget-da2a0c13aa89705c65fdb9df2f496fb4eea29654.tar.bz2
budget-da2a0c13aa89705c65fdb9df2f496fb4eea29654.zip
Allow to remove only unused categories
Diffstat (limited to 'common')
-rw-r--r--common/src/Common/Model/CategoryPage.hs9
-rw-r--r--common/src/Common/Validation/Atomic.hs9
2 files changed, 12 insertions, 6 deletions
diff --git a/common/src/Common/Model/CategoryPage.hs b/common/src/Common/Model/CategoryPage.hs
index 476b4ce..e20f49f 100644
--- a/common/src/Common/Model/CategoryPage.hs
+++ b/common/src/Common/Model/CategoryPage.hs
@@ -5,12 +5,13 @@ module Common.Model.CategoryPage
import Data.Aeson (FromJSON, ToJSON)
import GHC.Generics (Generic)
-import Common.Model.Category (Category)
+import Common.Model.Category (Category, CategoryId)
data CategoryPage = CategoryPage
- { _categoryPage_page :: Int
- , _categoryPage_categories :: [Category]
- , _categoryPage_totalCount :: Int
+ { _categoryPage_page :: Int
+ , _categoryPage_categories :: [Category]
+ , _categoryPage_usedCategories :: [CategoryId]
+ , _categoryPage_totalCount :: Int
} deriving (Eq, Show, Generic)
instance FromJSON CategoryPage
diff --git a/common/src/Common/Validation/Atomic.hs b/common/src/Common/Validation/Atomic.hs
index 2a356df..4bb7cad 100644
--- a/common/src/Common/Validation/Atomic.hs
+++ b/common/src/Common/Validation/Atomic.hs
@@ -7,6 +7,7 @@ module Common.Validation.Atomic
, color
) where
+import qualified Data.Char as Char
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time.Calendar (Day)
@@ -47,6 +48,10 @@ day str =
Just d -> V.Success d
Nothing -> V.Failure $ Msg.get Msg.Form_InvalidDate
--- TODO: validate
color :: Text -> Validation Text Text
-color str = V.Success str
+color str =
+ if T.take 1 str == "#" && T.all Char.isHexDigit (T.drop 1 str) then
+ V.Success str
+
+ else
+ V.Failure (Msg.get Msg.Form_InvalidColor)