notify.moe/arn/HasEditing.go

58 lines
1.7 KiB
Go

package arn
// import (
// "errors"
// "reflect"
// "github.com/aerogo/aero"
// "github.com/aerogo/api"
// )
// // HasEditing implements basic API functionality for editing the fields in the struct.
// type hasEditing struct {
// Loggable
// }
// // Force interface implementations
// var (
// _ api.Editable = (*HasEditing)(nil)
// _ api.ArrayEventListener = (*HasEditing)(nil)
// )
// // Authorize returns an error if the given API POST request is not authorized.
// func (editable *hasEditing) Authorize(ctx aero.Context, action string) error {
// user := GetUserFromContext(ctx)
// if user == nil || (user.Role != "editor" && user.Role != "admin") {
// return errors.New("Not logged in or not authorized to edit")
// }
// return nil
// }
// // Edit creates an edit log entry.
// func (editable *hasEditing) Edit(ctx aero.Context, key string, value reflect.Value, newValue reflect.Value) (consumed bool, err error) {
// return edit(editable.Self(), ctx, key, value, newValue)
// }
// // OnAppend saves a log entry.
// func (editable *hasEditing) OnAppend(ctx aero.Context, key string, index int, obj interface{}) {
// onAppend(editable.Self(), ctx, key, index, obj)
// }
// // OnRemove saves a log entry.
// func (editable *hasEditing) OnRemove(ctx aero.Context, key string, index int, obj interface{}) {
// onRemove(editable.Self(), ctx, key, index, obj)
// }
// // Save saves the character in the database.
// func (editable *hasEditing) Save() {
// DB.Set(editable.TypeName(), editable.GetID(), editable.Self())
// }
// // Delete deletes the character list from the database.
// func (editable *hasEditing) Delete() error {
// DB.Delete(editable.TypeName(), editable.GetID())
// return nil
// }