@@ -16,13 +16,6 @@ type User = UserTypeProvider.Root
1616type ReposTypeProvider = JsonProvider< " https://api.github.com/users/tamizhvendan/repos" >
1717type Repo = ReposTypeProvider.Root
1818
19-
20- let httpGet url =
21- Request.createUrl Get url
22- |> Request.setHeader ( UserAgent " FsHopac" )
23- |> getResponse
24- |> Job.bind Response.readBodyAsString
25-
2619type GitHubResponse = {
2720 Body : string
2821 NextPageUrl : string option
@@ -43,19 +36,29 @@ let gitHubResponse response = job {
4336 return { Body = body; NextPageUrl = nextPageUrl}
4437}
4538
39+ let log msg x =
40+ printfn " %s " msg
41+ x
42+
4643let httpGetWithPagination url =
4744 Request.createUrl Get url
4845 |> Request.setHeader ( UserAgent " FsHopac" )
4946 |> getResponse
5047 |> Job.bind gitHubResponse
5148
49+ let httpGet url =
50+ httpGetWithPagination url
51+ |> Job.map ( fun r -> r.Body)
52+
5253let basePath = " https://api.github.com"
5354let userUrl = sprintf " %s /users/%s " basePath
5455
5556let getUser username : Job < User > =
5657 userUrl username
58+ |> log ( " Request: " + username)
5759 |> httpGet
5860 |> Job.map UserTypeProvider.Parse
61+ |> Job.map ( log ( " Response: " + username))
5962
6063let userReposUrl = sprintf " %s /users/%s /repos?per_page=100" basePath
6164
@@ -70,8 +73,10 @@ let topThreeUserRepos (repos : Repo []) =
7073
7174let getUserAllRepos username =
7275 let rec getUserAllRepos ' url ( repos : Repo list ) = job {
76+ log ( " Request: " + url) ()
7377 let! gitHubResponse =
7478 httpGetWithPagination url
79+ log ( " Response: " + url) ()
7580 let currentPageRepos =
7681 gitHubResponse.Body
7782 |> ReposTypeProvider.Parse
@@ -101,8 +106,10 @@ let parseLanguagesJson languagesJson =
101106
102107let getUserRepoLanguages username repoName =
103108 languagesUrl username repoName
109+ |> log ( " Request(L): " + username + " , " + repoName)
104110 |> httpGet
105111 |> Job.map parseLanguagesJson
112+ |> Job.map ( log ( " Response(L): " + username + " , " + repoName))
106113
107114type RepoDto = {
108115 Name : string
0 commit comments