From d9ca7d7efff765abe162023a9aa47f51f473bfd7 Mon Sep 17 00:00:00 2001 From: Alexander Leon Date: Fri, 13 Oct 2017 05:15:59 -0500 Subject: [PATCH] add types for amapa (#20393) --- .../amazon-product-api-tests.ts | 25 ++++++++++---- types/amazon-product-api/index.d.ts | 33 ++++++++++++++++--- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/types/amazon-product-api/amazon-product-api-tests.ts b/types/amazon-product-api/amazon-product-api-tests.ts index 0a02153236..37682a11aa 100644 --- a/types/amazon-product-api/amazon-product-api-tests.ts +++ b/types/amazon-product-api/amazon-product-api-tests.ts @@ -3,7 +3,7 @@ declare var process: { env: any }; import amazon = require('amazon-product-api'); -var client = amazon.createClient({ +let client = amazon.createClient({ awsId: process.env.AWS_ACCESS_KEY_ID, awsSecret: process.env.AWS_SECRET, awsTag: process.env.AWS_ASSOCIATE_TAG @@ -12,7 +12,7 @@ var client = amazon.createClient({ // Item Search -var searchQuery = { +let searchQuery = { director: 'Quentin Tarantino', actor: 'Samuel L. Jackson', searchIndex: 'DVD', @@ -37,11 +37,11 @@ client.itemSearch(searchQuery, (err, results) => { // Item Lookup -var lookupQuery = { +let lookupQuery = { itemId: 'B00008OE6I', idType: 'ASIN', responseGroup: 'OfferFull', - Condition: 'All' + condition: 'All' }; client.itemLookup(lookupQuery).then((results) => { @@ -58,9 +58,22 @@ client.itemLookup(lookupQuery, (err, results) => { console.log(getResultCount(results) + " lookup results"); }); +let lookupQueryWithItemIdArray = { + itemId: ['B00008OE6I', 'B00008OE6E'], + idType: 'ASIN', + responseGroup: 'OfferFull', + condition: 'All' +}; + +client.itemLookup(lookupQueryWithItemIdArray).then((results) => { + console.log(getResultCount(results) + " lookup results"); +}).catch(function(err){ + console.log(err); +}); + // Browse Node Lookup -var nodeLookupQuery = { +let nodeLookupQuery = { browseNodeId: '2625373011' }; @@ -81,4 +94,4 @@ client.browseNodeLookup(nodeLookupQuery, (err, results) => { function getResultCount(results: Object[]) { return results != undefined ? results.length : 0; -} \ No newline at end of file +} diff --git a/types/amazon-product-api/index.d.ts b/types/amazon-product-api/index.d.ts index 797adf45f4..34bafd04f4 100644 --- a/types/amazon-product-api/index.d.ts +++ b/types/amazon-product-api/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for amazon-product-api // Project: https://github.com/t3chnoboy/amazon-product-api -// Definitions by: Matti Lehtinen +// Definitions by: Matti Lehtinen , Alex Leon // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -15,10 +15,35 @@ interface IAmazonProductQueryCallback { (err: string, results: Object[]): void; } +interface IItemSearchOptions { + condition?: string; + keywords?: string; + responseGroup?: string; + searchIndex?: string; + itemPage?: number; + sort?: string; +} + +interface IItemLookupOptions { + condition?: string; + idType?: string; + includeReviewsSummary?: boolean; + itemId?: string | string[]; + responseGroup?: string; + searchIndex?: string; + truncateReviewsAt?: number; + variationPage?: string; +} + +interface IBrowseNodeLookupOptions { + browseNodeId?: string; + responseGroup?: string; +} + interface IAmazonProductClient { - itemSearch(query: any, callback?: IAmazonProductQueryCallback): Promise; - itemLookup(query: any, callback?: IAmazonProductQueryCallback): Promise; - browseNodeLookup(query: any, callback?: IAmazonProductQueryCallback): Promise; + itemSearch(query: IItemSearchOptions, callback?: IAmazonProductQueryCallback): Promise; + itemLookup(query: IItemLookupOptions, callback?: IAmazonProductQueryCallback): Promise; + browseNodeLookup(query: IBrowseNodeLookupOptions, callback?: IAmazonProductQueryCallback): Promise; } export declare function createClient(credentials: ICredentials): IAmazonProductClient;