Library/models/publishers_add_update.go

37 lines
858 B
Go

package models
// AddOrUpdatePublisher adds or updates a publisher from a publisher struct
func AddOrUpdatePublisher(publisher Publisher, doer *User) (newPublisher Publisher, err error) {
if publisher.ID == 0 {
if publisher.Name == "" { // Only insert it if the name is not empty
return Publisher{}, ErrNoPublisherName{}
}
_, err = x.Insert(&publisher)
if err != nil {
return Publisher{}, err
}
// Log
err = logAction(ActionTypePublisherAdded, doer, publisher.ID)
if err != nil {
return Publisher{}, err
}
} else {
_, err = x.ID(publisher.ID).Update(&publisher)
if err != nil {
return Publisher{}, err
}
// Log
err = logAction(ActionTypePublisherUpdated, doer, publisher.ID)
if err != nil {
return Publisher{}, err
}
}
newPublisher, _, err = GetPublisherByID(publisher.ID)
return newPublisher, err
}