Skip to content

Instantly share code, notes, and snippets.

@pat-eason
Created April 29, 2015 15:31
Show Gist options
  • Save pat-eason/68f1996ecd8d0c1247b9 to your computer and use it in GitHub Desktop.
Save pat-eason/68f1996ecd8d0c1247b9 to your computer and use it in GitHub Desktop.
Sails Blueprint CRUD utility
/*
* Based off of Sails.js 0.11.1 Blueprints REST API generator
*/
Blueprints = {
serializeObject: function(){
//js function to create json object out of form data
$.fn.serializeObject = function(){
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
},
create: function(model, data, successCallback, errorCallback){
$.ajax({
method: "POST",
url: "/"+model+"/",
contentType: "application/json; charset=utf-8",
data: data,
dataType: 'json',
success: function (data, status, jqXHR){
successCallback(data, status, jqXHR);
},
error: function (jqXHR, status){
errorCallback(jqXHR, status);
console.log(jqXHR);
}
});
},
retrieve: function(model, id, successCallback, errorCallback){
if(id === undefined){
id='';
}
$.ajax({
method: "GET",
url: "/"+model+"/"+id,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data, status, jqXHR){
successCallback(data, status, jqXHR);
},
error: function (jqXHR, status){
errorCallback(jqXHR, status);
console.log(jqXHR);
}
});
},
update: function(model, data, id, successCallback, errorCallback){
$.ajax({
method: "PUT",
url: "/"+model+"/"+id,
contentType: "application/json; charset=utf-8",
data: data,
dataType: 'json',
success: function (data, status, jqXHR){
successCallback(data, status, jqXHR);
},
error: function (jqXHR, status){
errorCallback(jqXHR, status);
console.log(jqXHR);
}
});
},
delete: function(model, id, successCallback, errorCallback){
$.ajax({
method: "DELETE",
url: "/"+model+"/"+id,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data, status, jqXHR){
successCallback(data, status, jqXHR);
},
error: function (jqXHR, status){
console.log(jqXHR);
errorCallback(jqXHR, status);
}
});
}
}
Blueprints.serializeObject();
//create todo
$('form#createTodo').submit(function(e){
e.preventDefault();
// Blueprints.create(model, data, successCallback, erroCallback);
Blueprints.create('user',
JSON.stringify($(this).serializeObject()),
function(data, status, jqXHR){
//success callback
console.log(data);
},
function(data){
//error callback
console.log(data);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment