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

Unified 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 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..9b22bb1d6dc196e9fb832624f21e8d304677c711 100644
--- a/milo/appengine/buildbucket/html.go
+++ b/milo/appengine/buildbucket/html.go
@@ -5,32 +5,19 @@
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.
+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.
server := r.FormValue("server")
if server == "" {
server = defaultServer
@@ -38,35 +25,47 @@ func (b Builder) Render(c context.Context, r *http.Request, p httprouter.Params)
bucket := p.ByName("bucket")
if bucket == "" {
- return nil, &miloerror.Error{
- Message: "No bucket",
- Code: http.StatusBadRequest,
- }
+ return nil, errors.New("No bucket")
}
builder := p.ByName("builder")
if builder == "" {
- return nil, &miloerror.Error{
- Message: "No builder",
- Code: http.StatusBadRequest,
- }
+ return nil, errors.New("No builder")
}
// limit is a name of the query string parameter for specifying
// maximum number of builds to show.
- limit, err := settings.GetLimit(r)
+ limit, err := common.GetLimit(r)
if err != nil {
return nil, err
}
- result, err := builderImpl(c, server, bucket, builder, limit)
+ return &builderQuery{
+ Server: server,
+ Bucket: bucket,
+ Builder: builder,
+ Limit: limit,
+ }, nil
+}
+
+// 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 := validateParams(c.Request, c.Params)
if err != nil {
- return nil, err
+ common.ErrorPage(c, http.StatusBadRequest, err.Error())
+ return
}
- // Render into the template
- args := &templates.Args{
- "Builder": result,
+ result, err := builderImpl(c.Context, query)
+ if err != nil {
+ common.ErrorPage(c, http.StatusInternalServerError, err.Error())
+ return
}
- return args, nil
+
+ templates.MustRender(c.Context, c.Writer, "pages/builder.html", templates.Args{
+ "Builder": result,
+ })
+ return
nodir 2017/03/17 20:47:57 remove
hinoka 2017/03/17 22:04:54 Done.
}

Powered by Google App Engine
This is Rietveld 408576698