neuron-0.6.0.0: src/lib/Text/URI/Util.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Text.URI.Util where
import Relude
import qualified Text.URI as URI
getQueryParam :: URI.RText 'URI.QueryKey -> URI.URI -> Maybe Text
getQueryParam k uri =
listToMaybe $ catMaybes $ flip fmap (URI.uriQuery uri) $ \case
URI.QueryFlag _ -> Nothing
URI.QueryParam key (URI.unRText -> val) ->
if key == k
then Just val
else Nothing
hasQueryFlag :: URI.RText 'URI.QueryKey -> URI.URI -> Bool
hasQueryFlag k uri =
fromMaybe False $ listToMaybe $ catMaybes $ flip fmap (URI.uriQuery uri) $ \case
URI.QueryFlag key ->
if key == k
then Just True
else Nothing
_ -> Nothing