diff --git a/amazon-product-api/amazon-product-api-tests.ts b/amazon-product-api/amazon-product-api-tests.ts new file mode 100644 index 0000000000..b98e15710f --- /dev/null +++ b/amazon-product-api/amazon-product-api-tests.ts @@ -0,0 +1,84 @@ +/// +/// + +import amazon = require('amazon-product-api'); + +var client = amazon.createClient({ + awsId: process.env.AWS_ACCESS_KEY_ID, + awsSecret: process.env.AWS_SECRET, + awsTag: process.env.AWS_ASSOCIATE_TAG +}); + + +// Item Search + +var searchQuery = { + director: 'Quentin Tarantino', + actor: 'Samuel L. Jackson', + searchIndex: 'DVD', + audienceRating: 'R', + responseGroup: 'ItemAttributes,Offers,Images' +}; + +client.itemSearch(searchQuery).then((results) => { + console.log(getResultCount(results) + " search results"); +}).catch(function(err){ + console.log(err); +}); + +client.itemSearch(searchQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + console.log(getResultCount(results) + " search results"); +}); + + +// Item Lookup + +var lookupQuery = { + itemId: 'B00008OE6I', + idType: 'ASIN', + responseGroup: 'OfferFull', + Condition: 'All' +}; + +client.itemLookup(lookupQuery).then((results) => { + console.log(getResultCount(results) + " lookup results"); +}).catch(function(err){ + console.log(err); +}); + +client.itemLookup(lookupQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + console.log(getResultCount(results) + " lookup results"); +}); + +// Browse Node Lookup + +var nodeLookupQuery = { + browseNodeId: '2625373011' +}; + +client.browseNodeLookup(nodeLookupQuery).then((results) => { + console.log(getResultCount(results) + " node lookup results"); +}).catch(function(err){ + console.log(err); +}); + +client.browseNodeLookup(nodeLookupQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + + console.log(getResultCount(results) + " node lookup results"); +}); + +function getResultCount(results: Object[]) { + return results != undefined ? results.length : 0; +} \ No newline at end of file diff --git a/amazon-product-api/amazon-product-api.d.ts b/amazon-product-api/amazon-product-api.d.ts new file mode 100644 index 0000000000..fc84dcc090 --- /dev/null +++ b/amazon-product-api/amazon-product-api.d.ts @@ -0,0 +1,27 @@ +// Type definitions for amazon-product-api +// Project: https://github.com/t3chnoboy/amazon-product-api +// Definitions by: Matti Lehtinen +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "amazon-product-api" { + + interface ICredentials { + awsId: string, + awsSecret: string, + awsTag: string + } + + interface IAmazonProductQueryCallback { + (err: string, results: Object[]): void; + } + + interface IAmazonProductClient { + itemSearch(query: any, callback?: IAmazonProductQueryCallback) : Promise; + itemLookup(query: any, callback?: IAmazonProductQueryCallback) : Promise; + browseNodeLookup(query: any, callback?: IAmazonProductQueryCallback) : Promise; + } + + export function createClient(credentials:ICredentials) : IAmazonProductClient; +}