From 1b1c3faabae530229eb675a2e70e744c2f45cbbe Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Mon, 4 Dec 2023 08:36:02 +0100 Subject: feat: add experimental render api --- app/Issue/Group.hs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'app/Issue/Group.hs') diff --git a/app/Issue/Group.hs b/app/Issue/Group.hs index 69caf20..2f19a98 100644 --- a/app/Issue/Group.hs +++ b/app/Issue/Group.hs @@ -1,15 +1,13 @@ module Issue.Group ( groupArg, - groupIssuesBy, + groupIssuesByTag, ) where import Data.Map (Map) import Data.Map qualified as M -import Data.Maybe (mapMaybe) import Data.Text qualified as T import Issue (Issue (..)) -import Issue.Tag (Tag (..)) import Issue.Tag qualified as I import Options.Applicative qualified as O @@ -28,20 +26,14 @@ groupArg = | "@" `T.isPrefixOf` s = Just (T.drop 1 s) | otherwise = Nothing -groupIssuesBy :: T.Text -> [Issue] -> Map T.Text [Issue] -groupIssuesBy group issues = +groupIssuesByTag :: T.Text -> [Issue] -> Map T.Text [Issue] +groupIssuesByTag tagKey issues = foldl ( \collected issue -> foldl (flip $ M.alter (Just . maybe [issue] (issue :))) collected - (groupsOfIssue group issue) + (I.tagValuesOf tagKey (issue.tags ++ issue.internalTags)) ) M.empty issues - -groupsOfIssue :: T.Text -> Issue -> [T.Text] -groupsOfIssue group issue = - mapMaybe I.tagValue - . filter (\(Tag key _) -> key == group) - $ issue.tags ++ issue.internalTags -- cgit v1.2.3