define(['dojo/_base/xhr','dojo/_base/json','dojo/_base/Deferred','./auth'],function(xhr,json,Deferred){ return { post: function(path,args) { return xhr.post({ url: "../server/api.php/"+path, handleAs: "json", headers: { "Content-Type": "application/json" }, rawBody: json.toJson(args) }); }, createObject: function(type, args) { var d = new Deferred(); this.post("createObject", { type: type, values: args }) .then(function(data) { d.resolve(data.uid); },function(){ d.reject(); }); return d.promise; }, getObject: function(type, uid) { var d = new Deferred(); this.post("getObject", { type: type, uid: uid }) .then(function(data) { d.resolve(data.object); },function(){ d.reject(); }); return d.promise; }, getObjects: function(type, predicates) { var d = new Deferred(); this.post("getObjects", { type: type, predicates: predicates }) .then(function(data) { d.resolve(data.objects); },function(){ d.reject(); }); return d.promise; }, deleteObject: function(type, uid) { var d = new Deferred(); d.reject(); return d.promise; } } });