1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-12-12 13:30:26 +00:00
mycorrhiza/shroom/delete.go

34 lines
865 B
Go
Raw Normal View History

2021-02-20 14:03:54 +00:00
package shroom
import (
"fmt"
"github.com/bouncepaw/mycorrhiza/hyphae/backlinks"
2021-02-20 14:03:54 +00:00
"github.com/bouncepaw/mycorrhiza/history"
"github.com/bouncepaw/mycorrhiza/hyphae"
"github.com/bouncepaw/mycorrhiza/l18n"
2021-02-20 14:03:54 +00:00
"github.com/bouncepaw/mycorrhiza/user"
)
// DeleteHypha deletes hypha and makes a history record about that.
func DeleteHypha(u *user.User, h *hyphae.Hypha, lc *l18n.Localizer) (hop *history.Op, errtitle string) {
2021-02-20 14:03:54 +00:00
hop = history.Operation(history.TypeDeleteHypha)
if errtitle, err := CanDelete(u, h, lc); errtitle != "" {
2021-02-26 16:43:45 +00:00
hop.WithErrAbort(err)
2021-02-20 14:03:54 +00:00
return hop, errtitle
}
2021-08-31 19:28:12 +00:00
originalText, _ := FetchTextPart(h)
2021-02-20 14:03:54 +00:00
hop.
WithFilesRemoved(h.TextPath, h.BinaryPath).
WithMsg(fmt.Sprintf("Delete %s", h.Name)).
WithUser(u).
Apply()
if !hop.HasErrors() {
backlinks.UpdateBacklinksAfterDelete(h, originalText)
2021-02-20 14:03:54 +00:00
h.Delete()
}
return hop, ""
}