Skip to content

Instantly share code, notes, and snippets.

@poisa
Forked from gert-janvercauteren/RestService.js
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save poisa/0197b2fd72c63f03d435 to your computer and use it in GitHub Desktop.
Save poisa/0197b2fd72c63f03d435 to your computer and use it in GitHub Desktop.
angular.module('appName').factory('RestService', ['Restangular', '$q', function(Restangular, $q){
var service;
return {
setService: function($serviceName){
service = Restangular.all($serviceName);
},
create: function($data){
var serviceDeferred = $q.defer();
service.post($data).then(function(response){
serviceDeferred.resolve(response);
}, function(error){
serviceDeferred.reject(error);
});
return serviceDeferred.promise;
},
/**
* Delete a resource
*
* @param $id
* @returns {promise}
*/
delete: function($id){
var serviceDeferred = $q.defer();
service.customDELETE($id, null, {'Content-Type':'application/json'}).then(function(response){
serviceDeferred.resolve(response);
}, function(error){
serviceDeferred.reject(error);
});
return serviceDeferred.promise;
},
/**
* Fetch a resource
*
* @param $id
* @returns {promise}
*/
fetch: function($id){
var serviceDeferred = $q.defer();
service.get($id).then(function(response){
serviceDeferred.resolve(response);
}, function(error){
serviceDeferred.reject(error);
});
return serviceDeferred.promise;
},
/**
* Fetch all resources
*
* @returns {promise}
*/
fetchAll: function(){
var serviceDeferred = $q.defer();
service.customGET().then(function(response){
serviceDeferred.resolve(response);
}, function(error){
serviceDeferred.reject(error);
});
return serviceDeferred.promise;
},
/**
* Update a resource
*
* @param $id
* @param $data
* @returns {promise}
*/
update: function($id, $data){
var serviceDeferred = $q.defer();
service.customPUT($data, $id).then(function(response){
serviceDeferred.resolve(response);
}, function(error){
serviceDeferred.reject(error);
});
return serviceDeferred.promise;
},
/**
* Patch (partial in-place update) a resource
*
* @param $id
* @param $data
* @returns {promise}
*/
patch: function($id, $data){
//TODO To be implemented
},
/**
* Replace a collection or members of a collection
*
* @param $data
* @returns {promise}
*/
replaceList: function($data){
//TODO To be implemented
},
/**
* Delete a collection, or members of a collection
* @param $data
* @returns {promise}
*/
deleteList: function($data){
//TODO To be implemented
}
}
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment