Created
July 30, 2014 19:38
-
-
Save ulpian/48ce3850682ba265b79b to your computer and use it in GitHub Desktop.
provapi.js: Javascript driver for provenance api (require JQuery for $.ajax)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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