Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: milo/appengine/buildbucket/html.go

Issue 2748073006: Milo Refactor: Remove theme support (Closed)
Patch Set: Review Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The LUCI Authors. All rights reserved. 1 // Copyright 2016 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package buildbucket 5 package buildbucket
6 6
7 import ( 7 import (
8 "errors"
8 "net/http" 9 "net/http"
9 10
10 "github.com/julienschmidt/httprouter" 11 "github.com/julienschmidt/httprouter"
11 » "golang.org/x/net/context" 12 » "github.com/luci/luci-go/milo/appengine/common"
12 13 » "github.com/luci/luci-go/server/router"
13 » "github.com/luci/luci-go/milo/appengine/settings"
14 » "github.com/luci/luci-go/milo/common/miloerror"
15 "github.com/luci/luci-go/server/templates" 14 "github.com/luci/luci-go/server/templates"
16 ) 15 )
17 16
18 // TODO(nodir): move this value to luci-config. 17 // TODO(nodir): move this value to luci-config.
19 const defaultServer = "cr-buildbucket.appspot.com" 18 const defaultServer = "cr-buildbucket.appspot.com"
20 19
21 // Builder displays builder view by fetching builds from buildbucket. 20 func validateParams(r *http.Request, p httprouter.Params) (*builderQuery, error) {
nodir 2017/03/17 20:47:57 s/validateParams/parseBuilderQuery/ because it par
hinoka 2017/03/17 22:04:55 Done.
22 type Builder struct{}
23
24 // GetTemplateName for Builder returns the template name for builder pages.
25 func (b Builder) GetTemplateName(t settings.Theme) string {
26 » return "builder.html"
27 }
28
29 // Render renders builder view page.
30 // Note: The builder html template contains self links to "?limit=123", which co uld
31 // potentially override any other request parameters set.
32 func (b Builder) Render(c context.Context, r *http.Request, p httprouter.Params) (*templates.Args, error) {
33 » // Parse URL parameters.
34 server := r.FormValue("server") 21 server := r.FormValue("server")
35 if server == "" { 22 if server == "" {
36 server = defaultServer 23 server = defaultServer
37 } 24 }
38 25
39 bucket := p.ByName("bucket") 26 bucket := p.ByName("bucket")
40 if bucket == "" { 27 if bucket == "" {
41 » » return nil, &miloerror.Error{ 28 » » return nil, errors.New("No bucket")
42 » » » Message: "No bucket",
43 » » » Code: http.StatusBadRequest,
44 » » }
45 } 29 }
46 30
47 builder := p.ByName("builder") 31 builder := p.ByName("builder")
48 if builder == "" { 32 if builder == "" {
49 » » return nil, &miloerror.Error{ 33 » » return nil, errors.New("No builder")
50 » » » Message: "No builder",
51 » » » Code: http.StatusBadRequest,
52 » » }
53 } 34 }
54 35
55 // limit is a name of the query string parameter for specifying 36 // limit is a name of the query string parameter for specifying
56 // maximum number of builds to show. 37 // maximum number of builds to show.
57 » limit, err := settings.GetLimit(r) 38 » limit, err := common.GetLimit(r)
58 if err != nil { 39 if err != nil {
59 return nil, err 40 return nil, err
60 } 41 }
61 42
62 » result, err := builderImpl(c, server, bucket, builder, limit) 43 » return &builderQuery{
44 » » Server: server,
45 » » Bucket: bucket,
46 » » Builder: builder,
47 » » Limit: limit,
48 » }, nil
49 }
50
51 // BuilderHandler renders the builder view page.
52 // Note: The builder html template contains self links to "?limit=123", which co uld
53 // potentially override any other request parameters set.
54 func BuilderHandler(c *router.Context) {
55 » query, err := validateParams(c.Request, c.Params)
63 if err != nil { 56 if err != nil {
64 » » return nil, err 57 » » common.ErrorPage(c, http.StatusBadRequest, err.Error())
58 » » return
65 } 59 }
66 60
67 » // Render into the template 61 » result, err := builderImpl(c.Context, query)
68 » args := &templates.Args{ 62 » if err != nil {
63 » » common.ErrorPage(c, http.StatusInternalServerError, err.Error())
64 » » return
65 » }
66
67 » templates.MustRender(c.Context, c.Writer, "pages/builder.html", template s.Args{
69 "Builder": result, 68 "Builder": result,
70 » } 69 » })
71 » return args, nil 70 » return
nodir 2017/03/17 20:47:57 remove
hinoka 2017/03/17 22:04:54 Done.
72 } 71 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698