@@ -54,16 +54,6 @@ func runDownload(cfg config.Config, flags *pflag.FlagSet, args []string) error {
54
54
return err
55
55
}
56
56
57
- track , err := flags .GetString ("track" )
58
- if err != nil {
59
- return err
60
- }
61
-
62
- team , err := flags .GetString ("team" )
63
- if err != nil {
64
- return err
65
- }
66
-
67
57
identifier , err := downloadIdentifier (flags )
68
58
if err != nil {
69
59
return err
@@ -80,25 +70,10 @@ func runDownload(cfg config.Config, flags *pflag.FlagSet, args []string) error {
80
70
return err
81
71
}
82
72
83
- uuid , err := flags . GetString ( "uuid" )
73
+ req , err = addQueryToDownloadRequest ( flags , req )
84
74
if err != nil {
85
75
return err
86
76
}
87
- slug , err := flags .GetString ("exercise" )
88
- if err != nil {
89
- return err
90
- }
91
- if uuid == "" {
92
- q := req .URL .Query ()
93
- q .Add ("exercise_id" , slug )
94
- if track != "" {
95
- q .Add ("track_id" , track )
96
- }
97
- if team != "" {
98
- q .Add ("team_id" , team )
99
- }
100
- req .URL .RawQuery = q .Encode ()
101
- }
102
77
103
78
res , err := client .Do (req )
104
79
if err != nil {
@@ -269,6 +244,39 @@ func downloadIdentifier(flags *pflag.FlagSet) (string, error) {
269
244
return identifier , nil
270
245
}
271
246
247
+ func addQueryToDownloadRequest (flags * pflag.FlagSet , req * http.Request ) (* http.Request , error ) {
248
+ uuid , err := flags .GetString ("uuid" )
249
+ if err != nil {
250
+ return req , err
251
+ }
252
+ slug , err := flags .GetString ("exercise" )
253
+ if err != nil {
254
+ return req , err
255
+ }
256
+ track , err := flags .GetString ("track" )
257
+ if err != nil {
258
+ return req , err
259
+ }
260
+
261
+ team , err := flags .GetString ("team" )
262
+ if err != nil {
263
+ return req , err
264
+ }
265
+
266
+ if uuid == "" {
267
+ q := req .URL .Query ()
268
+ q .Add ("exercise_id" , slug )
269
+ if track != "" {
270
+ q .Add ("track_id" , track )
271
+ }
272
+ if team != "" {
273
+ q .Add ("team_id" , team )
274
+ }
275
+ req .URL .RawQuery = q .Encode ()
276
+ }
277
+ return req , nil
278
+ }
279
+
272
280
func setupDownloadFlags (flags * pflag.FlagSet ) {
273
281
flags .StringP ("uuid" , "u" , "" , "the solution UUID" )
274
282
flags .StringP ("track" , "t" , "" , "the track ID" )
0 commit comments