47 lines
966 B
Go
47 lines
966 B
Go
package server
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/drone/drone/common"
|
|
)
|
|
|
|
// Unubscribe accapets a request to unsubscribe the
|
|
// currently authenticated user to the repository.
|
|
//
|
|
// DEL /api/subscribers/:owner/:name
|
|
//
|
|
func Unsubscribe(c *gin.Context) {
|
|
store := ToDatastore(c)
|
|
repo := ToRepo(c)
|
|
user := ToUser(c)
|
|
|
|
delete(user.Repos, repo.FullName)
|
|
err := store.UpdateUser(user)
|
|
if err != nil {
|
|
c.Fail(400, err)
|
|
} else {
|
|
c.Writer.WriteHeader(200)
|
|
}
|
|
}
|
|
|
|
// Subscribe accapets a request to subscribe the
|
|
// currently authenticated user to the repository.
|
|
//
|
|
// POST /api/subscriber/:owner/:name
|
|
//
|
|
func Subscribe(c *gin.Context) {
|
|
store := ToDatastore(c)
|
|
repo := ToRepo(c)
|
|
user := ToUser(c)
|
|
if user.Repos == nil {
|
|
user.Repos = map[string]struct{}{}
|
|
}
|
|
user.Repos[repo.FullName] = struct{}{}
|
|
err := store.UpdateUser(user)
|
|
if err != nil {
|
|
c.Fail(400, err)
|
|
} else {
|
|
c.JSON(200, &common.Subscriber{Subscribed: true})
|
|
}
|
|
}
|