Files
meanTorrent/modules/articles/client/services/articles.client.service.js
Michael Leanos a7370a7808 feat(articles): ArticlesService extended $resource (#1266)
Extends the ArticlesService $resource object to include a custom method
for creating, or updating, an Article instance.

Related #1260
2016-07-10 17:55:29 -07:00

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);
}
}
}());