Skip to content

Instantly share code, notes, and snippets.

@ulpian
Created July 30, 2014 19:38
Show Gist options
  • Select an option

  • Save ulpian/48ce3850682ba265b79b to your computer and use it in GitHub Desktop.

Select an option

Save ulpian/48ce3850682ba265b79b to your computer and use it in GitHub Desktop.
provapi.js: Javascript driver for provenance api (require JQuery for $.ajax)
// Provenance javascript api driver
// needs jquery
Provapi = {
// set functions
auth: function (appname, key, callback) {
// set appname and key
Provapi.name = appname;
Provapi.key = key;
callback(1);
},
product: {
list: function (callback) {
// list products
reqBasic('get','/product/list',function(data){
callback(data);
});
},
nearby: function (param,callback) {
// list product near a location
reqBasic('get','/product/nearby',function(data){
callback(data);
},param);
},
one: function (param,callback) {
// product details
reqBasic('get','/product/one',function(data){
callback(data[0]);
},param);
},
search: function (query,callback) {
// search products
reqBasic('get','/product/search',function(data){
callback(data);
},{search:query});
}
},
maker: {
one: function (param,callback) {
// get maker details
reqBasic('get','/maker/one',function(data){
callback(data[0]);
},param);
},
search: function (query,callback) {
// search for maker
reqBasic('get','/maker/search',function(data){
callback(data);
},{search:query});
}
},
story: {
one: function (param,callback) {
// get story details
reqBasic('get','/story/one',function(data){
callback(data[0]);
},param);
},
latest: function (callback) {
// list products
reqBasic('get','/story/latest',function(data){
callback(data);
});
}
}
}
// requires JQuery
function reqBasic(method,req,callback) {
// check for params
if(arguments[3] != undefined || arguments[3] != null){
param = arguments[3];
} else {
param = {};
}
// make ajax call with jquery
$.ajax({
type: method,
url: 'http://provapi.herokuapp.com/v1'+req,
// dataType: 'jsonp',
beforeSend: function (xhr) {
// set headers for authorisation
xhr.setRequestHeader("Authorization", "Basic " + btoa(Provapi.name+":"+Provapi.key));
},
data: param
}).success(function(data){
callback(data);
}).error(function(error){
callback(error);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment