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

Unified Diff: milo/appengine/buildbucket/html.go

Issue 2748073006: Milo Refactor: Remove theme support (Closed)
Patch Set: Fix builder.html pointer 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 side-by-side diff with in-line comments
Download patch
Index: milo/appengine/buildbucket/html.go
diff --git a/milo/appengine/buildbucket/html.go b/milo/appengine/buildbucket/html.go
index 9bfc5187a7799d611afd64d2c422d5203d182bf2..8fa92160d1825ae3c37def437a3c05d9a06e0211 100644
--- a/milo/appengine/buildbucket/html.go
+++ b/milo/appengine/buildbucket/html.go
@@ -5,68 +5,59 @@
package buildbucket
import (
+ "errors"
"net/http"
"github.com/julienschmidt/httprouter"
- "golang.org/x/net/context"
-
- "github.com/luci/luci-go/milo/appengine/settings"
- "github.com/luci/luci-go/milo/common/miloerror"
+ "github.com/luci/luci-go/milo/appengine/common"
+ "github.com/luci/luci-go/server/router"
"github.com/luci/luci-go/server/templates"
)
// TODO(nodir): move this value to luci-config.
const defaultServer = "cr-buildbucket.appspot.com"
-// Builder displays builder view by fetching builds from buildbucket.
-type Builder struct{}
-
-// GetTemplateName for Builder returns the template name for builder pages.
-func (b Builder) GetTemplateName(t settings.Theme) string {
- return "builder.html"
-}
-
-// Render renders builder view page.
-// Note: The builder html template contains self links to "?limit=123", which could
-// potentially override any other request parameters set.
-func (b Builder) Render(c context.Context, r *http.Request, p httprouter.Params) (*templates.Args, error) {
- // Parse URL parameters.
- server := r.FormValue("server")
- if server == "" {
- server = defaultServer
+func parseBuilderQuery(r *http.Request, p httprouter.Params) (query builderQuery, err error) {
+ query.Server = r.FormValue("server")
+ if query.Server == "" {
+ query.Server = defaultServer
}
- bucket := p.ByName("bucket")
- if bucket == "" {
- return nil, &miloerror.Error{
- Message: "No bucket",
- Code: http.StatusBadRequest,
- }
+ query.Bucket = p.ByName("bucket")
+ if query.Bucket == "" {
+ err = errors.New("No bucket")
+ return
}
builder := p.ByName("builder")
if builder == "" {
- return nil, &miloerror.Error{
- Message: "No builder",
- Code: http.StatusBadRequest,
- }
+ err = errors.New("No builder")
+ return
}
// limit is a name of the query string parameter for specifying
// maximum number of builds to show.
- limit, err := settings.GetLimit(r)
+ query.Limit, err = common.GetLimit(r)
+ return
+}
+
+// BuilderHandler renders the builder view page.
+// Note: The builder html template contains self links to "?limit=123", which could
+// potentially override any other request parameters set.
+func BuilderHandler(c *router.Context) {
+ query, err := parseBuilderQuery(c.Request, c.Params)
if err != nil {
- return nil, err
+ common.ErrorPage(c, http.StatusBadRequest, err.Error())
+ return
}
- result, err := builderImpl(c, server, bucket, builder, limit)
+ result, err := builderImpl(c.Context, query)
if err != nil {
- return nil, err
+ common.ErrorPage(c, http.StatusInternalServerError, err.Error())
+ return
}
- // Render into the template
- args := &templates.Args{
+ templates.MustRender(c.Context, c.Writer, "pages/builder.html", templates.Args{
"Builder": result,
- }
- return args, nil
+ })
}

Powered by Google App Engine
This is Rietveld 408576698