@@ -13,53 +13,56 @@ import (
13
13
"go.uber.org/zap"
14
14
)
15
15
16
- func (a * Application ) TaskMyBadgeHandler (w http.ResponseWriter , r * http.Request ) {
17
- l := a .logger .With (
18
- zap .String ("url" , r .URL .String ()),
19
- zap .String ("service" , chi .URLParam (r , "serviceID" )),
20
- zap .String ("project" , chi .URLParam (r , "project" )),
21
- zap .String ("branch" , chi .URLParam (r , "branch" )),
22
- zap .String ("commit" , chi .URLParam (r , "commit" )),
23
- zap .String ("branch" , chi .URLParam (r , "branch" )),
24
- )
25
- service := chi .URLParam (r , "serviceID" )
26
- project := chi .URLParam (r , "project" )
27
- branch := chi .URLParam (r , "branch" )
28
- commit := chi .URLParam (r , "commit" )
29
- bdg := chi .URLParam (r , "badge" )
16
+ // BadgeMyTaskHandler generates a badge for a given task
17
+ func (a * Application ) BadgeMyTaskHandler (latest bool ) http.HandlerFunc {
18
+ return func (w http.ResponseWriter , r * http.Request ) {
19
+ l := a .logger .With (
20
+ zap .String ("url" , r .URL .String ()),
21
+ zap .String ("service" , chi .URLParam (r , "serviceID" )),
22
+ zap .String ("project" , chi .URLParam (r , "project" )),
23
+ zap .String ("branch" , chi .URLParam (r , "branch" )),
24
+ zap .String ("commit" , chi .URLParam (r , "commit" )),
25
+ zap .String ("branch" , chi .URLParam (r , "branch" )),
26
+ )
27
+ service := chi .URLParam (r , "serviceID" )
28
+ project := chi .URLParam (r , "project" )
29
+ branch := chi .URLParam (r , "branch" )
30
+ commit := chi .URLParam (r , "commit" )
31
+ bdg := chi .URLParam (r , "badge" )
30
32
31
- t , err := a .storage .GetByCommit (service , project , branch , commit , false )
32
- if err != nil {
33
- l .Warn ("Task get error" , zap .Error (err ))
34
- w .WriteHeader (http .StatusNotFound )
35
- return
36
- }
33
+ t , err := a .storage .GetByCommit (service , project , branch , commit , latest )
34
+ if err != nil {
35
+ l .Warn ("Task get error" , zap .Error (err ))
36
+ w .WriteHeader (http .StatusNotFound )
37
+ return
38
+ }
37
39
38
- p := filepath .Join (a .storage .GetVolumePath (t ), "/data" , fmt .Sprintf ("%s.badge" , bdg ))
40
+ p := filepath .Join (a .storage .GetVolumePath (t ), "/data" , fmt .Sprintf ("%s.badge" , bdg ))
39
41
40
- _ , err = os .Stat (p )
41
- if err != nil {
42
- l .Warn ("Task get error" , zap .Error (err ))
43
- if os .IsNotExist (err ) {
44
- w .WriteHeader (http .StatusNotFound )
45
- } else {
46
- w .WriteHeader (http .StatusBadRequest )
42
+ _ , err = os .Stat (p )
43
+ if err != nil {
44
+ l .Warn ("Task get error" , zap .Error (err ))
45
+ if os .IsNotExist (err ) {
46
+ w .WriteHeader (http .StatusNotFound )
47
+ } else {
48
+ w .WriteHeader (http .StatusBadRequest )
49
+ }
50
+ return
47
51
}
48
- return
49
- }
50
- l = l . With ( zap . String ( "path" , p ))
51
- b , err := ioutil . ReadFile ( p )
52
- if err != nil {
53
- l . Error ( "reading file" , zap . Error ( err ))
54
- w . WriteHeader ( http . StatusInternalServerError )
55
- return
56
- }
57
- var badge _badge. Badge
58
- err = json . Unmarshal ( b , & badge )
59
- if err != nil {
60
- l . Error ( "JSON unmarshal" , zap . Error ( err ))
61
- w . WriteHeader ( http . StatusInternalServerError )
62
- return
52
+ l = l . With ( zap . String ( "path" , p ))
53
+ b , err := ioutil . ReadFile ( p )
54
+ if err != nil {
55
+ l . Error ( "reading file" , zap . Error ( err ) )
56
+ w . WriteHeader ( http . StatusInternalServerError )
57
+ return
58
+ }
59
+ var badge _badge. Badge
60
+ err = json . Unmarshal ( b , & badge )
61
+ if err != nil {
62
+ l . Error ( "JSON unmarshal" , zap . Error ( err ) )
63
+ w . WriteHeader ( http . StatusInternalServerError )
64
+ return
65
+ }
66
+ badge . Render ( w , r )
63
67
}
64
- badge .Render (w , r )
65
68
}
0 commit comments