mirror of
https://github.com/osmarks/mycorrhiza.git
synced 2024-10-30 11:46:16 +00:00
30 lines
668 B
Go
30 lines
668 B
Go
|
package shroom
|
|||
|
|
|||
|
import (
|
|||
|
"fmt"
|
|||
|
|
|||
|
"github.com/bouncepaw/mycorrhiza/history"
|
|||
|
"github.com/bouncepaw/mycorrhiza/hyphae"
|
|||
|
"github.com/bouncepaw/mycorrhiza/user"
|
|||
|
)
|
|||
|
|
|||
|
// DeleteHypha deletes hypha and makes a history record about that.
|
|||
|
func DeleteHypha(u *user.User, h *hyphae.Hypha) (hop *history.HistoryOp, errtitle string) {
|
|||
|
hop = history.Operation(history.TypeDeleteHypha)
|
|||
|
|
|||
|
if err, errtitle := CanDelete(u, h); errtitle != "" {
|
|||
|
hop.WithError(err).Abort()
|
|||
|
return hop, errtitle
|
|||
|
}
|
|||
|
|
|||
|
hop.
|
|||
|
WithFilesRemoved(h.TextPath, h.BinaryPath).
|
|||
|
WithMsg(fmt.Sprintf("Delete ‘%s’", h.Name)).
|
|||
|
WithUser(u).
|
|||
|
Apply()
|
|||
|
if !hop.HasErrors() {
|
|||
|
h.Delete()
|
|||
|
}
|
|||
|
return hop, ""
|
|||
|
}
|