Skip to content

Instantly share code, notes, and snippets.

@leosuncin
Created July 24, 2015 20:57
Show Gist options
  • Save leosuncin/03c7ba4453a9d4420c5f to your computer and use it in GitHub Desktop.
Save leosuncin/03c7ba4453a9d4420c5f to your computer and use it in GitHub Desktop.
Simple angular service for wrap sails.io.js client
'use strict';
/**
* @ngdoc service
* @name yourApp.$sails
* @description
* # $sails
* Service in the yourApp.
*/
angular.module('yourApp')
.service('$sails', [
'$rootScope',
'$q',
function($rootScope, $q) {
var baseUrl = location.origin || 'http://localhost:1337'; // Change this if your want CORS support
function get (url, query) {
url = baseUrl + url;
query = query || {};
return $q(function(resolve, reject) {
io.socket.get(url, query, function(data, jwres) {
if (jwres.statusCode < 400) {
resolve(jwres);
} else {
reject(jwres);
}
});
});
}
function post (url, data) {
url = baseUrl + url;
return $q(function(resolve, reject) {
io.socket.post(url, data, function(data, jwres) {
if (jwres.statusCode < 400) {
resolve(jwres);
} else {
reject(jwres);
}
});
});
}
function put (url, data) {
url = baseUrl + url;
return $q(function(resolve, reject) {
io.socket.put(url, data, function(data, jwres) {
if (jwres.statusCode < 400) {
resolve(jwres);
} else {
reject(jwres);
}
});
});
}
function remove (url, query) {
url = baseUrl + url;
query = query || {};
return $q(function(resolve, reject) {
io.socket.delete(url, query, function(data, jwres) {
if (jwres.statusCode < 400) {
resolve(jwres);
} else {
reject(jwres);
}
});
});
}
function on (event, cb) {
io.socket.on(event, function(msg) {
$rootScope.$apply(function() {
cb.apply(null, msg);
});
});
}
return {
get: get,
post: post,
put: put,
delete: remove,
on: on
};
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment