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 // }