Skip to content

Instantly share code, notes, and snippets.

@eightdotthree
Forked from atuttle/api.js
Last active December 14, 2015 03:00
Show Gist options
  • Save eightdotthree/28cd8e26da765f205171 to your computer and use it in GitHub Desktop.
Save eightdotthree/28cd8e26da765f205171 to your computer and use it in GitHub Desktop.
Angular.js REST API Service Wrapper
'use strict';
/**
* @ngdoc service
* @name destinyApp.API
* @description
* # API
*/
angular.module('destinyApp')
.factory('API', function ($http, $q, APIKEY, PLATFORMURL) {
var basePath = PLATFORMURL;
function makeRequest (verb, uri, data) {
var defer = $q.defer();
verb = verb.toLowerCase();
//start with the uri
var httpArgs = [basePath + uri];
if (verb.match(/post|put/)){
httpArgs.push( data );
}
$http[verb].apply(null, httpArgs)
.success(function(data, status){
defer.resolve(data);
})
.error(function(data, status){
defer.reject('HTTP Error: ' + status);
});
return defer.promise;
}
return {
get: function (uri) {
return makeRequest('get', uri);
},
post: function (uri, data) {
return makeRequest('post', uri, data);
},
put: function (uri, data) {
return makeRequest('put', uri, data);
},
delete: function (uri) {
return makeRequest('delete', uri);
}
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment