Chore: add Folderuid into panel-library API (#48577)

* add folderuid into interface

* panellibrary id/uid things

* modify doc

* update doc

* correct some comments
This commit is contained in:
ying-jeanne
2022-05-05 10:04:54 +02:00
committed by GitHub
parent 60cabaea0a
commit 0d14c27eb9
8 changed files with 156 additions and 64 deletions
+44
View File
@@ -30,11 +30,33 @@ func (l *LibraryElementService) createHandler(c *models.ReqContext) response.Res
return response.Error(http.StatusBadRequest, "bad request data", err)
}
if cmd.FolderUID != nil {
if *cmd.FolderUID == "" {
cmd.FolderID = 0
} else {
folder, err := l.folderService.GetFolderByUID(c.Req.Context(), c.SignedInUser, c.OrgId, *cmd.FolderUID)
if err != nil || folder == nil {
return response.Error(http.StatusBadRequest, "failed to get folder", err)
}
cmd.FolderID = folder.Id
}
}
element, err := l.createLibraryElement(c.Req.Context(), c.SignedInUser, cmd)
if err != nil {
return toLibraryElementError(err, "Failed to create library element")
}
if element.FolderID != 0 {
folder, err := l.folderService.GetFolderByID(c.Req.Context(), c.SignedInUser, element.FolderID, c.OrgId)
if err != nil {
return response.Error(http.StatusInternalServerError, "failed to get folder", err)
}
element.FolderUID = folder.Uid
element.Meta.FolderUID = folder.Uid
element.Meta.FolderName = folder.Title
}
return response.JSON(http.StatusOK, LibraryElementResponse{Result: element})
}
@@ -88,11 +110,33 @@ func (l *LibraryElementService) patchHandler(c *models.ReqContext) response.Resp
return response.Error(http.StatusBadRequest, "bad request data", err)
}
if cmd.FolderUID != nil {
if *cmd.FolderUID == "" {
cmd.FolderID = 0
} else {
folder, err := l.folderService.GetFolderByUID(c.Req.Context(), c.SignedInUser, c.OrgId, *cmd.FolderUID)
if err != nil || folder == nil {
return response.Error(http.StatusBadRequest, "failed to get folder", err)
}
cmd.FolderID = folder.Id
}
}
element, err := l.patchLibraryElement(c.Req.Context(), c.SignedInUser, cmd, web.Params(c.Req)[":uid"])
if err != nil {
return toLibraryElementError(err, "Failed to update library element")
}
if element.FolderID != 0 {
folder, err := l.folderService.GetFolderByID(c.Req.Context(), c.SignedInUser, element.FolderID, c.OrgId)
if err != nil {
return response.Error(http.StatusInternalServerError, "failed to get folder", err)
}
element.FolderUID = folder.Uid
element.Meta.FolderUID = folder.Uid
element.Meta.FolderName = folder.Title
}
return response.JSON(http.StatusOK, LibraryElementResponse{Result: element})
}