2017-10-11 16:06:51 +00:00
|
|
|
package models
|
|
|
|
|
2017-11-21 11:09:45 +00:00
|
|
|
// AddOrUpdatePublisher adds or updates a publisher from a publisher struct
|
2018-03-06 11:36:49 +00:00
|
|
|
func AddOrUpdatePublisher(publisher Publisher, doer *User) (newPublisher Publisher, err error) {
|
2017-11-21 11:09:45 +00:00
|
|
|
if publisher.ID == 0 {
|
2018-01-16 13:28:02 +00:00
|
|
|
if publisher.Name == "" { // Only insert it if the name is not empty
|
2018-01-24 22:55:10 +00:00
|
|
|
return Publisher{}, ErrNoPublisherName{}
|
2018-01-16 13:28:02 +00:00
|
|
|
}
|
|
|
|
|
2018-01-16 13:28:44 +00:00
|
|
|
_, err = x.Insert(&publisher)
|
|
|
|
if err != nil {
|
|
|
|
return Publisher{}, err
|
|
|
|
}
|
2018-03-06 11:36:49 +00:00
|
|
|
// Log
|
|
|
|
err = logAction(ActionTypePublisherAdded, doer, publisher.ID)
|
|
|
|
if err != nil {
|
|
|
|
return Publisher{}, err
|
|
|
|
}
|
|
|
|
|
2017-11-21 11:09:45 +00:00
|
|
|
} else {
|
2017-11-29 11:25:52 +00:00
|
|
|
_, err = x.ID(publisher.ID).Update(&publisher)
|
2018-03-06 11:36:49 +00:00
|
|
|
if err != nil {
|
|
|
|
return Publisher{}, err
|
|
|
|
}
|
2017-11-21 11:09:45 +00:00
|
|
|
|
2018-03-06 11:36:49 +00:00
|
|
|
// Log
|
|
|
|
err = logAction(ActionTypePublisherUpdated, doer, publisher.ID)
|
2017-11-21 11:09:45 +00:00
|
|
|
if err != nil {
|
|
|
|
return Publisher{}, err
|
|
|
|
}
|
2017-10-11 19:45:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
newPublisher, _, err = GetPublisherByID(publisher.ID)
|
|
|
|
|
|
|
|
return newPublisher, err
|
2017-11-07 15:35:10 +00:00
|
|
|
}
|