From f3765823d99ed99111415e0af9b0cf3c9e4a0c5a Mon Sep 17 00:00:00 2001 From: Marco Perone Date: Fri, 15 May 2020 08:55:31 +0200 Subject: [PATCH] add endpoint for users search --- spec/GitHub/SearchSpec.hs | 12 ++++++++++-- src/GitHub.hs | 5 +---- src/GitHub/Endpoints/Search.hs | 7 +++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/spec/GitHub/SearchSpec.hs b/spec/GitHub/SearchSpec.hs index ce82900d..5cc5a15f 100644 --- a/spec/GitHub/SearchSpec.hs +++ b/spec/GitHub/SearchSpec.hs @@ -16,8 +16,9 @@ import qualified Data.Vector as V import GitHub (github) import GitHub.Data - (Auth (..), Issue (..), IssueNumber (..), IssueState (..), mkId) -import GitHub.Endpoints.Search (SearchResult (..), searchIssuesR) + (Auth (..), Issue (..), IssueNumber (..), IssueState (..), + SimpleUser (..), User, mkId) +import GitHub.Endpoints.Search (SearchResult (..), searchIssuesR, searchUsersR) fromRightS :: Show a => Either a b -> b fromRightS (Right b) = b @@ -57,3 +58,10 @@ spec = do issues <- searchResultResults . fromRightS <$> github auth searchIssuesR query length issues `shouldBe` 1 issueId (V.head issues) `shouldBe` mkId (Proxy :: Proxy Issue) 119694665 + + describe "searchUsers" $ + it "performs a user search via the API" $ withAuth $ \auth -> do + let query = "oleg.grenrus@iki.fi created:<2020-01-01" + users <- searchResultResults . fromRightS <$> github auth searchUsersR query + length users `shouldBe` 1 + simpleUserId (V.head users) `shouldBe` mkId (Proxy :: Proxy User) 51087 diff --git a/src/GitHub.hs b/src/GitHub.hs index 62c1ea6d..7fdcc111 100644 --- a/src/GitHub.hs +++ b/src/GitHub.hs @@ -355,13 +355,10 @@ module GitHub ( -- * Search -- | See - -- - -- Missing endpoints: - -- - -- * Search users searchReposR, searchCodeR, searchIssuesR, + searchUsersR, -- * Users -- | See diff --git a/src/GitHub/Endpoints/Search.hs b/src/GitHub/Endpoints/Search.hs index 26c134bd..3fb50e85 100644 --- a/src/GitHub/Endpoints/Search.hs +++ b/src/GitHub/Endpoints/Search.hs @@ -9,6 +9,7 @@ module GitHub.Endpoints.Search( searchReposR, searchCodeR, searchIssuesR, + searchUsersR, module GitHub.Data, ) where @@ -35,3 +36,9 @@ searchCodeR searchString = searchIssuesR :: Text -> Request k (SearchResult Issue) searchIssuesR searchString = query ["search", "issues"] [("q", Just $ TE.encodeUtf8 searchString)] + +-- | Search users. +-- See +searchUsersR :: Text -> Request k (SearchResult SimpleUser) +searchUsersR searchString = + query ["search", "users"] [("q", Just $ TE.encodeUtf8 searchString)]