mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-03-14 16:10:29 +01:00
Extends the ArticlesService $resource object to include a custom method for creating, or updating, an Article instance. Related #1260
54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
angular
|
|
.module('articles.services')
|
|
.factory('ArticlesService', ArticlesService);
|
|
|
|
ArticlesService.$inject = ['$resource'];
|
|
|
|
function ArticlesService($resource) {
|
|
var Article = $resource('api/articles/:articleId', {
|
|
articleId: '@_id'
|
|
}, {
|
|
update: {
|
|
method: 'PUT'
|
|
}
|
|
});
|
|
|
|
angular.extend(Article.prototype, {
|
|
createOrUpdate: function () {
|
|
var article = this;
|
|
return createOrUpdate(article);
|
|
}
|
|
});
|
|
|
|
return Article;
|
|
|
|
function createOrUpdate(article) {
|
|
if (article._id) {
|
|
return article.$update(onSuccess, onError);
|
|
} else {
|
|
return article.$save(onSuccess, onError);
|
|
}
|
|
|
|
// Handle successful response
|
|
function onSuccess(article) {
|
|
// Any required internal processing from inside the service, goes here.
|
|
}
|
|
|
|
// Handle error response
|
|
function onError(errorResponse) {
|
|
var error = errorResponse.data;
|
|
// Handle error internally
|
|
handleError(error);
|
|
}
|
|
}
|
|
|
|
function handleError(error) {
|
|
// Log error
|
|
console.log(error);
|
|
}
|
|
}
|
|
}());
|