resource.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. var resourceful = require('resourceful');
  2. var Creature = resourceful.define('creature');
  3. Creature.property('awesome', Boolean, { default: false });
  4. Creature.property('type', String, { default: "dragon", enum: ["Dragon", "Unicorn", "Pony"] });
  5. Creature.property('email', String, { format: "email" });
  6. Creature.property('life', Number, { default: 10, min: 0, max: 20 });
  7. Creature.feed = function (_id, options, callback) {
  8. var self = this;
  9. self.get(_id, function(err, creature){
  10. if(err) {
  11. return callback(err);
  12. }
  13. var life = creature.life + 1;
  14. self.update(_id, { life: life }, function(err, result){
  15. callback(null, creature.id + ' has been fed. life is: ' + result.life);
  16. });
  17. });
  18. }
  19. Creature.feed.remote = true;
  20. Creature.hit = function (_id, options, callback) {
  21. var self = this;
  22. self.get(_id, function(err, creature){
  23. if(err) {
  24. return callback(err);
  25. }
  26. var life = creature.life - 1;
  27. self.update(_id, { life: life }, function(err, result){
  28. callback(null, creature.id + ' has been hit. life is: ' + result.life);
  29. });
  30. });
  31. }
  32. Creature.hit.remote = true;
  33. exports.Creature = Creature;