mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* require legacy Editor for post, put, delete endpoints * require user to be signed in on group level because handler that checks that user has role Editor does not check it is signed in
49 lines
1.5 KiB
Plaintext
49 lines
1.5 KiB
Plaintext
{{>partial_header}}
|
|
package {{packageName}}
|
|
|
|
{{#operations}}
|
|
import (
|
|
"github.com/go-macaron/binding"
|
|
|
|
"github.com/grafana/grafana/pkg/api/routing"
|
|
"github.com/grafana/grafana/pkg/api/response"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
|
|
"github.com/grafana/grafana/pkg/services/ngalert/metrics"
|
|
"github.com/grafana/grafana/pkg/middleware"
|
|
)
|
|
|
|
type {{classname}}ForkingService interface { {{#operation}}
|
|
{{nickname}}(*models.ReqContext) response.Response{{/operation}}
|
|
}
|
|
|
|
{{#operations}}{{#operation}}
|
|
func (f *Forked{{classname}}) {{nickname}}(ctx *models.ReqContext) response.Response {
|
|
{{#bodyParams}}
|
|
conf := apimodels.{{dataType}}{}
|
|
if err := web.Bind(ctx.Req, &conf); err != nil {
|
|
return response.Error(http.StatusBadRequest, "bad request data", err)
|
|
}
|
|
return f.fork{{nickname}}(ctx, conf)
|
|
{{/bodyParams}}
|
|
{{^bodyParams}}
|
|
return f.fork{{nickname}}(ctx)
|
|
{{/bodyParams}}
|
|
}
|
|
{{/operation}}{{/operations}}
|
|
|
|
func (api *API) Register{{classname}}Endpoints(srv {{classname}}ForkingService, m *metrics.API) {
|
|
api.RouteRegister.Group("", func(group routing.RouteRegister){ {{#operations}}{{#operation}}
|
|
group.{{httpMethod}}(
|
|
toMacaronPath("{{{path}}}"),
|
|
api.authorize(http.Method{{httpMethod}}, "{{{path}}}"),
|
|
metrics.Instrument(
|
|
http.Method{{httpMethod}},
|
|
"{{{path}}}",
|
|
srv.{{nickname}},
|
|
m,
|
|
),
|
|
){{/operation}}{{/operations}}
|
|
}, middleware.ReqSignedIn)
|
|
}{{#operation}}
|
|
{{/operation}}{{/operations}} |