Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 2410ae7

Browse files
committed
better service and all models
1 parent 3b12614 commit 2410ae7

File tree

2 files changed

+68
-25
lines changed

2 files changed

+68
-25
lines changed

app/js/controllers.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,32 @@
44

55
angular.module('app.controllers', []).
66
controller('MyCtrl1', ['$scope', 'user', function(scope, user) {
7-
scope.sanity = 'santi';
87
scope.onclick = function() {
98
user.get('user', function(user) {
109
scope.user = user;
1110
scope.$digest();
1211
});
1312
};
1413
scope.save = function() {
15-
var usero = scope.user;
16-
usero.name = 'John';
17-
user.save(usero, function(user) {
14+
var user_ = scope.user;
15+
user.save(user_, function(user) {
1816
scope.user = user;
1917
scope.$digest();
2018
});
21-
}
19+
};
2220
}])
23-
.controller('MyCtrl2', [function() {
21+
.controller('MyCtrl2', ['$scope', 'request', function() {
22+
scope.onclick = function() {
23+
user.get('user', function(user) {
24+
scope.user = user;
25+
scope.$digest();
26+
});
27+
};
28+
scope.save = function() {
29+
var user_ = scope.user;
30+
user.save(user_, function(user) {
31+
scope.user = user;
32+
scope.$digest();
33+
});
34+
};
2435
}]);

app/js/services.js

Lines changed: 51 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,59 @@ var headers = {
1717
headers['X-StackMob-API-Key-'+publicKey] = 1;
1818

1919
angular.module('app.services', []).factory('model', function($rootScope) {
20-
return function(schema) {
21-
var model = StackMob.Model.extend({schemaName: schema});
20+
var service = {};
2221

23-
var get = function(id, callback) {
22+
var callbacks_ = function(callback) {
23+
return {
24+
success: function(model) {
25+
service.model = model;
26+
callback(model.toJSON());
27+
},
28+
error: function(reason) {
29+
log(reason);
30+
}
31+
};
32+
};
33+
/**
34+
* @param {string=} id The id of the object
35+
* @param {function(!Object)=} callback
36+
*/
37+
service.get = function(id, callback) {
2438
var options = {};
25-
options[schema + '_id'] = id;
26-
var instance = new model();
27-
instance.set(options);
28-
instance.fetch({success: function(data) {
29-
callback(data.toJSON());
30-
}});
39+
options[service.schema + '_id'] = id;
40+
service.model.set(options);
41+
service.model.fetch(callbacks_(callback));
3142
};
32-
33-
var save = function(json, callback) {
34-
var instance = new model();
35-
instance.set(json);
36-
instance.save({},{success: function(data) {
37-
callback(data.toJSON());
38-
}});
39-
}
40-
return {get: get, save: save};
43+
service.create = function(callback, json) {
44+
service.model = new service.modelProvider(json);
45+
service.model.create(callbacks(callback));
46+
};
47+
service.save = function(json, callback) {
48+
service.model.save(json, callbacks_(callback));
49+
};
50+
return function(schema, binaryFields) {
51+
service.schema = schema;
52+
service.modelProvider = StackMob.Model.extend({schemaName: schema});
53+
service.model = new service.modelProvider();
54+
return service;
4155
};
42-
}).factory('user', function(model) {return model('user');});;
56+
}).
57+
factory('user', function(model) {
58+
return model('user');
59+
}).
60+
factory('comment', function(model) {
61+
return model('comment');
62+
}).
63+
factory('estimate', function(model) {
64+
return model('estimate');
65+
}).
66+
factory('picture', function(model) {
67+
return model('picture', 'data');
68+
}).
69+
factory('request', function(model) {
70+
return model('request');
71+
}).
72+
factory('vehicle', function(model) {
73+
return model('vehicle');
74+
});
4375

0 commit comments

Comments
 (0)