Gisle Aune
6 years ago
5 changed files with 175 additions and 0 deletions
-
107graph2/queries/character.go
-
16graph2/schema/root.gql
-
7graph2/schema/types/Character.gql
-
32models/characters/edit.go
-
13models/characters/remove.go
@ -0,0 +1,32 @@ |
|||||
|
package characters |
||||
|
|
||||
|
import ( |
||||
|
"git.aiterp.net/rpdata/api/models" |
||||
|
"github.com/globalsign/mgo/bson" |
||||
|
) |
||||
|
|
||||
|
// Edit sets the fields of metadata. Only non-empty and different fields will be set in the
|
||||
|
// database, preventing out of order edits to two fields from conflicting
|
||||
|
func Edit(character models.Character, name, shortName, description *string) (models.Character, error) { |
||||
|
changes := bson.M{} |
||||
|
|
||||
|
if name != nil && *name != character.Name { |
||||
|
character.Name = *name |
||||
|
changes["name"] = *name |
||||
|
} |
||||
|
if shortName != nil && *shortName != character.ShortName { |
||||
|
character.ShortName = *shortName |
||||
|
changes["shortName"] = *shortName |
||||
|
} |
||||
|
if description != nil && *description != character.Description { |
||||
|
character.Description = *description |
||||
|
changes["description"] = *description |
||||
|
} |
||||
|
|
||||
|
err := collection.UpdateId(character.ID, changes) |
||||
|
if err != nil { |
||||
|
return models.Character{}, err |
||||
|
} |
||||
|
|
||||
|
return character, nil |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package characters |
||||
|
|
||||
|
import "git.aiterp.net/rpdata/api/models" |
||||
|
|
||||
|
// Remove removes a character, returning it if it succeeds
|
||||
|
func Remove(character models.Character) (models.Character, error) { |
||||
|
err := collection.RemoveId(character.ID) |
||||
|
if err != nil { |
||||
|
return models.Character{}, err |
||||
|
} |
||||
|
|
||||
|
return character, nil |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue