graph(add annotation): initial backend implementation #1286

pull/8087/head
Alexander Zobnin 8 years ago
parent 362860f687
commit d553498a33
  1. 21
      pkg/api/annotations.go
  2. 1
      pkg/api/api.go
  3. 8
      pkg/api/dtos/annotations.go
  4. 8
      pkg/services/annotations/annotations.go
  5. 13
      public/app/features/annotations/annotations_srv.ts

@ -45,6 +45,27 @@ func GetAnnotations(c *middleware.Context) Response {
return Json(200, result)
}
func PostAnnotation(c *middleware.Context, cmd dtos.PostAnnotationsCmd) Response {
repo := annotations.GetRepository()
item := annotations.Item{
OrgId: c.OrgId,
DashboardId: cmd.DashboardId,
PanelId: cmd.PanelId,
Epoch: cmd.Time / 1000,
Title: cmd.Title,
Text: cmd.Text,
}
err := repo.Save(&item)
if err != nil {
return ApiError(500, "Failed to save annotation", err)
}
return ApiSuccess("Annotation added")
}
func DeleteAnnotations(c *middleware.Context, cmd dtos.DeleteAnnotationsCmd) Response {
repo := annotations.GetRepository()

@ -277,6 +277,7 @@ func (hs *HttpServer) registerRoutes() {
}, reqEditorRole)
r.Get("/annotations", wrap(GetAnnotations))
r.Post("/annotations", bind(dtos.PostAnnotationsCmd{}), wrap(PostAnnotation))
r.Post("/annotations/mass-delete", reqOrgAdmin, bind(dtos.DeleteAnnotationsCmd{}), wrap(DeleteAnnotations))
// error test

@ -16,6 +16,14 @@ type Annotation struct {
Data *simplejson.Json `json:"data"`
}
type PostAnnotationsCmd struct {
DashboardId int64 `json:"dashboardId"`
PanelId int64 `json:"panelId"`
Time int64 `json:"time"`
Title string `json:"title"`
Text string `json:"text"`
}
type DeleteAnnotationsCmd struct {
AlertId int64 `json:"alertId"`
DashboardId int64 `json:"dashboardId"`

@ -21,6 +21,14 @@ type ItemQuery struct {
Limit int64 `json:"limit"`
}
type PostParams struct {
DashboardId int64 `json:"dashboardId"`
PanelId int64 `json:"panelId"`
Epoch int64 `json:"epoch"`
Title string `json:"title"`
Text string `json:"text"`
}
type DeleteParams struct {
AlertId int64 `json:"alertId"`
DashboardId int64 `json:"dashboardId"`

@ -126,13 +126,18 @@ export class AnnotationsSrv {
return this.globalAnnotationsPromise;
}
postAnnotation(annotation) {
console.log("POST /api/annotations\n", annotation);
postAnnotation(annotations) {
console.log("POST /api/annotations\n", annotations);
// Not implemented yet
let implemented = false;
let implemented = true;
if (implemented) {
return this.backendSrv.post('/api/annotations', annotation);
return Promise.all(_.map(annotations, annotation => {
return this.backendSrv.post('/api/annotations', annotation);
}))
.catch(error => {
console.log(error);
});
} else {
return Promise.resolve("Not implemented");
}

Loading…
Cancel
Save