{-# LANGUAGE LambdaCase #-} module GitHub.Request.Display ( DisplayGitHubRequest , displayGitHubRequest ) where import Prelude import Data.Text (Text, pack) import qualified Data.Text as T import Data.Text.Encoding (decodeUtf8) import GitHub.Request import RIO (Display) newtype DisplayGitHubRequest = DisplayGitHubRequest { DisplayGitHubRequest -> Text _unDisplayGitHubRequest :: Text } deriving newtype (DisplayGitHubRequest -> DisplayGitHubRequest -> Bool (DisplayGitHubRequest -> DisplayGitHubRequest -> Bool) -> (DisplayGitHubRequest -> DisplayGitHubRequest -> Bool) -> Eq DisplayGitHubRequest forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: DisplayGitHubRequest -> DisplayGitHubRequest -> Bool $c/= :: DisplayGitHubRequest -> DisplayGitHubRequest -> Bool == :: DisplayGitHubRequest -> DisplayGitHubRequest -> Bool $c== :: DisplayGitHubRequest -> DisplayGitHubRequest -> Bool Eq, Int -> DisplayGitHubRequest -> ShowS [DisplayGitHubRequest] -> ShowS DisplayGitHubRequest -> String (Int -> DisplayGitHubRequest -> ShowS) -> (DisplayGitHubRequest -> String) -> ([DisplayGitHubRequest] -> ShowS) -> Show DisplayGitHubRequest forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [DisplayGitHubRequest] -> ShowS $cshowList :: [DisplayGitHubRequest] -> ShowS show :: DisplayGitHubRequest -> String $cshow :: DisplayGitHubRequest -> String showsPrec :: Int -> DisplayGitHubRequest -> ShowS $cshowsPrec :: Int -> DisplayGitHubRequest -> ShowS Show, DisplayGitHubRequest -> Text DisplayGitHubRequest -> Utf8Builder (DisplayGitHubRequest -> Utf8Builder) -> (DisplayGitHubRequest -> Text) -> Display DisplayGitHubRequest forall a. (a -> Utf8Builder) -> (a -> Text) -> Display a textDisplay :: DisplayGitHubRequest -> Text $ctextDisplay :: DisplayGitHubRequest -> Text display :: DisplayGitHubRequest -> Utf8Builder $cdisplay :: DisplayGitHubRequest -> Utf8Builder Display) displayGitHubRequest :: GenRequest m k a -> DisplayGitHubRequest displayGitHubRequest :: GenRequest m k a -> DisplayGitHubRequest displayGitHubRequest = Text -> DisplayGitHubRequest DisplayGitHubRequest (Text -> DisplayGitHubRequest) -> (GenRequest m k a -> Text) -> GenRequest m k a -> DisplayGitHubRequest forall b c a. (b -> c) -> (a -> b) -> a -> c . \case Query ps :: Paths ps qs :: QueryString qs -> Paths -> Text forall a. Monoid a => [a] -> a mconcat [ "[GET] " , "/" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Paths -> Text T.intercalate "/" Paths ps , "?" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Paths -> Text T.intercalate "&" (QueryString -> Paths queryParts QueryString qs) ] PagedQuery ps :: Paths ps qs :: QueryString qs fc :: FetchCount fc -> Paths -> Text forall a. Monoid a => [a] -> a mconcat [ "[GET] " , "/" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Paths -> Text T.intercalate "/" Paths ps , "?" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Paths -> Text T.intercalate "&" (QueryString -> Paths queryParts QueryString qs) , " (" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> String -> Text pack (FetchCount -> String forall a. Show a => a -> String show FetchCount fc) Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> ")" ] Command m :: CommandMethod m ps :: Paths ps _body :: ByteString _body -> Paths -> Text forall a. Monoid a => [a] -> a mconcat [ "[" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Text T.toUpper (String -> Text pack (String -> Text) -> String -> Text forall a b. (a -> b) -> a -> b $ CommandMethod -> String forall a. Show a => a -> String show CommandMethod m) Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> "] " , "/" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> Paths -> Text T.intercalate "/" Paths ps ] queryParts :: QueryString -> [Text] queryParts :: QueryString -> Paths queryParts = ((ByteString, Maybe ByteString) -> Text) -> QueryString -> Paths forall a b. (a -> b) -> [a] -> [b] map (((ByteString, Maybe ByteString) -> Text) -> QueryString -> Paths) -> ((ByteString, Maybe ByteString) -> Text) -> QueryString -> Paths forall a b. (a -> b) -> a -> b $ \(k :: ByteString k, mv :: Maybe ByteString mv) -> ByteString -> Text decodeUtf8 ByteString k Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> "=" Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text -> (ByteString -> Text) -> Maybe ByteString -> Text forall b a. b -> (a -> b) -> Maybe a -> b maybe "" ByteString -> Text decodeUtf8 Maybe ByteString mv