UNPKG

@fye/netsuite-rest-api

Version:

NetSuite Rest API Client

128 lines (102 loc) 3.23 kB
# Nestuite Rest API v2 A wrapper to make REST API request to Netsuite. ### Notable Changes - Netsuite configuration paramaters are no longer pulled from `process.env`. They need to be passed in. - Body will now returned as parsed object rather than a JSON string ## Required Config values ```js { netsuiteApiHost: 'netsuite host', consumerKey: 'netsuite consumer key', consumerSecret: 'nesuite consumer secret', netsuiteAccountId: 'netsuite account id', netsuiteTokenKey: 'netsuite token key', netsuiteTokenSecret: 'netsuite token secret', } ``` ## Other gotchas - Query parameters must be passed in with path. This may be changed at a future time just not now. - `requestType` must be either `suiteql`, `workbook` or `record` ## Available convenience values - `suitesqlPath = services/rest/query/v1/suiteql` - `workbookPath = services/rest/query/v1/workbook` - `salesOrderPath = services/rest/record/v1/salesOrder` - `purchaseOrderPath = services/rest/record/v1/purchaseOrder` - `cashSalePath = services/rest/record/v1/cashSale` - `expandAbleSubResourcesQueryParam = expandSubResources=true` ## Examples #### Get Request ```js const { makeRequest, expandAbleSubResourcesQueryParam, suitesqlPath } = require('@fye/netsuite-rest-api'); async () => { const config = { netsuiteApiHost: 'netsuite host', consumerKey: 'netsuite consumer key', consumerSecret: 'nesuite consumer secret', netsuiteAccountId: 'netsuite account id', netsuiteTokenKey: 'netsuite token key', netsuiteTokenSecret: 'netsuite token secret', }; const requestData = { method: 'GET', requestType: 'record', path: `${s}/1234?${expandAbleSubResourcesQueryParam}`, }; const response = await makeRequest(config, requestData); }; ``` #### Update/Patch Request ```js const { makeRequest } = require('@fye/netsuite-rest-api'); ( async () => { const config = {...}; const requestData = { method: 'PATCH', requestType: 'record', path: 'salesorder/1234', query: { foo: 'bar' }, } const response = await makeRequest(config, requestData) }) ``` #### Suitesql Request ```js const { makeRequest } = require('@fye/netsuite-rest-api'); ( async () => { const config = {...}; const requestData = { method: 'POST', requestType: 'suitesql', query: 'select foo from bar;', } const response = await makeRequest(config, requestData) }) ``` #### Suitesql Request with next URL ```js const { makeRequest } = require('@fye/netsuite-rest-api'); ( async () => { const config = {...}; const requestData = { method: 'POST', requestType: 'suitesql', query: 'select foo from bar;', nextUrl: 'https://endpoint.com/services/rest/query/v1/suiteql?limit=10&offset=10' } const response = await makeRequest(config, requestData) }) ``` #### Workbook Request with next URL ```js const { makeRequest } = require('@fye/netsuite-rest-api'); ( async () => { const config = {...}; const requestData = { method: 'POST', requestType: 'workbook', query: 'workbook999', nextUrl: 'https://endpoint.com/services/rest/query/v1/workbook/workbook999/result?limit=10&offset=10' } const response = await makeRequest(config, requestData) }) ```