plugins/carddav: add route to delete a contact

This commit is contained in:
Simon Ser 2020-05-13 17:59:04 +02:00
parent 297798dca2
commit 37be46c047
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
2 changed files with 21 additions and 0 deletions

View file

@ -14,6 +14,9 @@
<a href="{{.AddressObject.URL}}/edit">
Edit
</a>
<form action="{{.AddressObject.URL}}/delete" method="post">
<input type="submit" value="Delete">
</form>
</p>
<ul>

View file

@ -211,4 +211,22 @@ func registerRoutes(p *plugin) {
p.GET("/contacts/:path/edit", updateContact)
p.POST("/contacts/:path/edit", updateContact)
p.POST("/contacts/:path/delete", func(ctx *alps.Context) error {
path, err := parseObjectPath(ctx.Param("path"))
if err != nil {
return err
}
c, err := p.client(ctx.Session)
if err != nil {
return err
}
if err := c.RemoveAll(path); err != nil {
return fmt.Errorf("failed to delete address object: %v", err)
}
return ctx.Redirect(http.StatusFound, "/contacts")
})
}