From 92d28ab6655bd2246243459f4430c1c225bde297 Mon Sep 17 00:00:00 2001 From: pingu Date: Mon, 3 Jun 2024 14:49:14 +0200 Subject: [PATCH] Now shouldn't produce errors --- src/Model/Linsen.hs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Model/Linsen.hs b/src/Model/Linsen.hs index f862b02..f41129f 100644 --- a/src/Model/Linsen.hs +++ b/src/Model/Linsen.hs @@ -60,16 +60,19 @@ parse parse day = failWithNoMenu (parseEither - ( withObject "Parse meals" - $ (.: "docs") - >=> ((!? (6 - (day ^. weekDate . _wdDay))) <&> \case - Nothing -> fail "Day doesnt exist" -- TODO: Should early return to shortcircuit to [] - Just v -> pure v) - >=> (.: "richText") - >=> (.: "root") - >=> (.: "children") - >=> pure . (\v -> if length v >= 9 then v else mempty) - >=> menuParser + (let index = 6 - day ^. weekDate . _wdDay in + if index `notElem` [1..5] then + pure . const [] + else + withObject "Parse meals" + $ (.: "docs") + >=> (\case + Nothing -> fail "Failed to index into days" + Just v -> pure v) . (!? index) + >=> (.: "richText") + >=> (.: "root") + >=> (.: "children") + >=> menuParser . (\v' -> if length v' >= 9 then v' else mempty) ) ) >=> menusToEitherNoLunch