You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
817 B
35 lines
817 B
package channels
|
|
|
|
import (
|
|
"git.aiterp.net/rpdata/api/models"
|
|
"github.com/globalsign/mgo/bson"
|
|
)
|
|
|
|
// Edit edits a channels
|
|
func Edit(channel models.Channel, logged, hub *bool, eventName, locationName *string) (models.Channel, error) {
|
|
mutation := bson.M{}
|
|
|
|
if logged != nil && *logged != channel.Logged {
|
|
mutation["logged"] = *logged
|
|
}
|
|
if hub != nil && *hub != channel.Hub {
|
|
mutation["hub"] = *hub
|
|
}
|
|
if eventName != nil && *eventName != channel.EventName {
|
|
mutation["eventName"] = *eventName
|
|
}
|
|
if locationName != nil && *locationName != channel.LocationName {
|
|
mutation["locationName"] = *locationName
|
|
}
|
|
|
|
if len(mutation) == 0 {
|
|
return channel, nil
|
|
}
|
|
|
|
err := collection.UpdateId(channel.Name, bson.M{"$set": mutation})
|
|
if err != nil {
|
|
return models.Channel{}, err
|
|
}
|
|
|
|
return channel, nil
|
|
}
|