File tree Expand file tree Collapse file tree 1 file changed +32
-3
lines changed Expand file tree Collapse file tree 1 file changed +32
-3
lines changed Original file line number Diff line number Diff line change 11#r " packages/Hopac/lib/net45/Hopac.Core.dll"
2+ open FSharp.Data
3+ open FSharp.Data
4+ open FSharp.Data
5+ open FSharp.Data
26#r " packages/Hopac/lib/net45/Hopac.Platform.dll"
37#r " packages/Hopac/lib/net45/Hopac.dll"
48#r " packages/Hopac/lib/net45/Hopac.dll"
@@ -111,13 +115,35 @@ type RepoDto = {
111115 Name : string
112116 StargazersCount : int
113117 Languages : string []
114- }
118+ } with
119+ static member ToJson ( r : RepoDto ) =
120+ let languages =
121+ r.Languages
122+ |> Array.map ( JsonValue.String)
123+ |> JsonValue.Array
124+ let stars =
125+ r.StargazersCount |> decimal |> JsonValue.Number
126+ JsonValue.Record [|
127+ " name" , JsonValue.String r.Name
128+ " stars" , stars
129+ " languages" , languages
130+ |]
115131
116132type UserDto = {
117133 Name : string
118134 AvatarUrl : string
119135 TopThreeRepos : RepoDto []
120- }
136+ } with
137+ static member ToJson ( u : UserDto ) =
138+ let topThreeRepos =
139+ u.TopThreeRepos
140+ |> Array.map RepoDto.ToJson
141+ |> JsonValue.Array
142+ JsonValue.Record [|
143+ " name" , JsonValue.String u.Name
144+ " avatarUrl" , JsonValue.String u.AvatarUrl
145+ " topThreeRepos" , topThreeRepos
146+ |]
121147
122148let repoDto ( repo : Repo ) languages = {
123149 Name = repo.Name
@@ -146,5 +172,8 @@ let getUserDto username = job {
146172}
147173
148174#time " on"
149- getUserDto " haf" |> run
175+ getUserDto " haf"
176+ |> Job.map ( UserDto.ToJson)
177+ |> Job.map ( fun x -> x.ToString())
178+ |> run
150179#time " off"
You can’t perform that action at this time.
0 commit comments