on master help sign in
Merge pull request #238 from obsidiansystems/flip-obeliskRouteSegment

Swap the arguments of obeliskRouteSegment

commitaddb3ea38da68b53f5f8de5759b19365000536e0 authorLuigy Leon <luichi.19@gmail.com> dateWed 10 Oct 2018, 18:03 (8 years ago) parent188a697dde0021
2 files changed+12−14
lib/route/src/Obelisk/Route.hs+7−5 skeleton/common/src/Common/Route.hs+5−9
lib/route/src/Obelisk/Route.hs+7−5
@@ -705,16 +705,18 @@ obeliskRouteEncoder :: forall check parse appRoute.
705705 )
706706 => (forall a. appRoute a -> SegmentResult check parse a)
707707 -> Encoder check parse (R (ObeliskRoute appRoute)) PageName
708−obeliskRouteEncoder appRouteSegment = pathComponentEncoder (obeliskRouteSegment appRouteSegment)
708+obeliskRouteEncoder appRouteSegment = pathComponentEncoder $ \r ->
709+ obeliskRouteSegment r appRouteSegment
709710
710711-- | From a function which explains how app-specific frontend routes translate into segments, produce a function which does the
711712-- same for ObeliskRoute. This uses the given function for the 'ObeliskRoute_App' case, and 'resourceRouteSegment' for the
712713-- 'ObeliskRoute_Resource' case.
713−obeliskRouteSegment :: forall check parse appRoute.
714+obeliskRouteSegment :: forall check parse appRoute a.
714715 (MonadError Text check, MonadError Text parse)
715− => (forall a. appRoute a -> SegmentResult check parse a)
716− -> (forall a. ObeliskRoute appRoute a -> SegmentResult check parse a)
717−obeliskRouteSegment appRouteSegment = \case
716+ => ObeliskRoute appRoute a
717+ -> (forall a. appRoute a -> SegmentResult check parse a)
718+ -> SegmentResult check parse a
719+obeliskRouteSegment r appRouteSegment = case r of
718720 ObeliskRoute_App appRoute -> appRouteSegment appRoute
719721 ObeliskRoute_Resource resourceRoute -> resourceRouteSegment resourceRoute
720722
skeleton/common/src/Common/Route.hs+5−9
@@ -17,7 +17,6 @@ import Prelude hiding (id, (.))
1717import Control.Category
1818-}
1919
20−import Control.Monad.Except
2120import Data.Text (Text)
2221import Data.Functor.Identity
2322import Data.Functor.Sum
@@ -41,16 +40,13 @@ backendRouteEncoder = handleEncoder (const (InL BackendRoute_Missing :/ ())) $
4140 pathComponentEncoder $ \case
4241 InL backendRoute -> case backendRoute of
4342 BackendRoute_Missing -> PathSegment "missing" $ unitEncoder mempty
44− InR obeliskRoute -> obeliskRouteSegment frontendRouteSegment obeliskRoute
43+ InR obeliskRoute -> obeliskRouteSegment obeliskRoute $ \case
44+ -- The encoder given to PathEnd determines how to parse query parameters,
45+ -- in this example, we have none, so we insist on it.
46+ FrontendRoute_Main -> PathEnd $ unitEncoder mempty
4547
46−frontendRouteSegment :: (Applicative check, MonadError Text parse)
47− => FrontendRoute a -> SegmentResult check parse a
48−frontendRouteSegment = \case
49− FrontendRoute_Main -> PathEnd $ unitEncoder mempty
50− -- The encoder given to PathEnd determines how to parse query parameters,
51− -- in this example, we have none, so we insist on it.
5248
5349concat <$> mapM deriveRouteComponent
5450 [ ''BackendRoute
5551 , ''FrontendRoute
56− ]
52+ ]