Allow setting description on snapshots using API

This commit is contained in:
Sylvain Baubeau
2014-12-18 11:40:09 +01:00
parent acde6ff2b2
commit 85f38cd739
2 changed files with 28 additions and 5 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ func Router(c *ctx.AptlyContext) http.Handler {
{ {
root.GET("/snapshots", apiSnapshotsList) root.GET("/snapshots", apiSnapshotsList)
root.POST("/snapshots", apiSnapshotsCreateEmpty) root.POST("/snapshots", apiSnapshotsCreateEmpty)
root.PUT("/snapshots/:name", apiSnapshotsRename) root.PUT("/snapshots/:name", apiSnapshotsUpdate)
root.GET("/snapshots/:name", apiSnapshotsShow) root.GET("/snapshots/:name", apiSnapshotsShow)
root.GET("/snapshots/:name/packages", apiSnapshotsSearchPackages) root.GET("/snapshots/:name/packages", apiSnapshotsSearchPackages)
root.DELETE("/snapshots/:name", apiSnapshotsDrop) root.DELETE("/snapshots/:name", apiSnapshotsDrop)
+27 -4
View File
@@ -34,6 +34,7 @@ func apiSnapshotsCreateFromMirror(c *gin.Context) {
var b struct { var b struct {
Name string `binding:"required"` Name string `binding:"required"`
Description string
} }
if !c.Bind(&b) { if !c.Bind(&b) {
@@ -72,6 +73,10 @@ func apiSnapshotsCreateFromMirror(c *gin.Context) {
return return
} }
if b.Description != "" {
snapshot.Description = b.Description
}
err = snapshotCollection.Add(snapshot) err = snapshotCollection.Add(snapshot)
if err != nil { if err != nil {
c.Fail(500, err) c.Fail(500, err)
@@ -90,19 +95,24 @@ func apiSnapshotsCreateEmpty(c *gin.Context) {
var b struct { var b struct {
Name string `binding:"required"` Name string `binding:"required"`
Description string
} }
if !c.Bind(&b) { if !c.Bind(&b) {
return return
} }
if b.Description == "" {
b.Description = "Created as empty"
}
snapshotCollection := context.CollectionFactory().SnapshotCollection() snapshotCollection := context.CollectionFactory().SnapshotCollection()
snapshotCollection.Lock() snapshotCollection.Lock()
defer snapshotCollection.Unlock() defer snapshotCollection.Unlock()
packageList := deb.NewPackageList() packageList := deb.NewPackageList()
snapshot = deb.NewSnapshotFromPackageList(b.Name, nil, packageList, "Created as empty") snapshot = deb.NewSnapshotFromPackageList(b.Name, nil, packageList, b.Description)
err = snapshotCollection.Add(snapshot) err = snapshotCollection.Add(snapshot)
if err != nil { if err != nil {
@@ -123,6 +133,7 @@ func apiSnapshotsCreateFromRepository(c *gin.Context) {
var b struct { var b struct {
Name string `binding:"required"` Name string `binding:"required"`
Description string
} }
if !c.Bind(&b) { if !c.Bind(&b) {
@@ -155,6 +166,10 @@ func apiSnapshotsCreateFromRepository(c *gin.Context) {
return return
} }
if b.Description != "" {
snapshot.Description = b.Description
}
err = snapshotCollection.Add(snapshot) err = snapshotCollection.Add(snapshot)
if err != nil { if err != nil {
c.Fail(500, err) c.Fail(500, err)
@@ -165,14 +180,15 @@ func apiSnapshotsCreateFromRepository(c *gin.Context) {
} }
// PUT /api/snapshots/:name // PUT /api/snapshots/:name
func apiSnapshotsRename(c *gin.Context) { func apiSnapshotsUpdate(c *gin.Context) {
var ( var (
err error err error
snapshot *deb.Snapshot snapshot *deb.Snapshot
) )
var b struct { var b struct {
Name string `binding:"required"` Name string
Description string
} }
if !c.Bind(&b) { if !c.Bind(&b) {
@@ -193,7 +209,14 @@ func apiSnapshotsRename(c *gin.Context) {
c.Fail(409, fmt.Errorf("unable to rename: snapshot %s already exists", b.Name)) c.Fail(409, fmt.Errorf("unable to rename: snapshot %s already exists", b.Name))
} }
snapshot.Name = b.Name if b.Name != "" {
snapshot.Name = b.Name
}
if b.Description != "" {
snapshot.Description = b.Description
}
err = context.CollectionFactory().SnapshotCollection().Update(snapshot) err = context.CollectionFactory().SnapshotCollection().Update(snapshot)
if err != nil { if err != nil {
c.Fail(403, err) c.Fail(403, err)