Skip to content
This repository was archived by the owner on Apr 10, 2024. It is now read-only.

Commit 742a3fa

Browse files
krolikowskidamianlukaszMycs
authored andcommitted
Added missing modules (currentRecord, https); Small improvements in Define (#8)
the build was not executed, so forcing squash and merge.
1 parent 36a85f2 commit 742a3fa

File tree

3 files changed

+257
-2
lines changed

3 files changed

+257
-2
lines changed

N/currentRecord.js

Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
/**
2+
* Return a Netsuite Record Module
3+
*
4+
* @classDescription Record object
5+
* @constructor
6+
* @returns {N/Module}
7+
*/
8+
9+
module.exports = {
10+
attach: options => nlapiCreateRecord(options.type, { id: options.id }),
11+
create: options => nlapiCreateRecord(options.type, { id: options.id }),
12+
copy: options => nlapiCreateRecord(options.type, { id: options.id }),
13+
delete: options => nlapiCreateRecord(options.type, { id: options.id }),
14+
detach: options => nlapiCreateRecord(options.type, { id: options.id }),
15+
get: () => nlapiCreateRecord('test', { id: random(1, 10000) }),
16+
load: options => nlapiCreateRecord(options.type, { id: options.id }),
17+
submitFields: (options) => {
18+
nlapiCreateRecord(options.type, { id: options.id }); return options.id;
19+
},
20+
transform: options => nlapiCreateRecord(options.type, { id: options.id }),
21+
// ENUM with record types
22+
Type: {
23+
ACCOUNT: 'account',
24+
ACCOUNTING_BOOK: 'accountingbook',
25+
ACCOUNTING_CONTEXT: 'accountingcontext',
26+
ACCOUNTING_PERIOD: 'accountingperiod',
27+
ADV_INTER_COMPANY_JOURNAL_ENTRY: 'advintercompanyjournalentry',
28+
ALLOCATION_SCHEDULE: 'allocationschedule',
29+
AMORTIZATION_SCHEDULE: 'amortizationschedule',
30+
AMORTIZATION_TEMPLATE: 'amortizationtemplate',
31+
ASSEMBLY_BUILD: 'assemblybuild',
32+
ASSEMBLY_ITEM: 'assemblyitem',
33+
ASSEMBLY_UNBUILD: 'assemblyunbuild',
34+
BILLING_ACCOUNT: 'billingaccount',
35+
BILLING_CLASS: 'billingclass',
36+
BILLING_RATE_CARD: 'billingratecard',
37+
BILLING_REVENUE_EVENT: 'billingrevenueevent',
38+
BILLING_SCHEDULE: 'billingschedule',
39+
BIN: 'bin',
40+
BIN_TRANSFER: 'bintransfer',
41+
BIN_WORKSHEET: 'binworksheet',
42+
BLANKET_PURCHASE_ORDER: 'blanketpurchaseorder',
43+
BOM: 'bom',
44+
BOM_REVISION: 'bomrevision',
45+
BULK_OWNERSHIP_TRANSFER: 'bulkownershiptransfer',
46+
BUNDLE_INSTALLATION_SCRIPT: 'bundleinstallationscript',
47+
CALENDAR_EVENT: 'calendarevent',
48+
CAMPAIGN: 'campaign',
49+
CAMPAIGN_RESPONSE: 'campaignresponse',
50+
CAMPAIGN_TEMPLATE: 'campaigntemplate',
51+
CASH_REFUND: 'cashrefund',
52+
CASH_SALE: 'cashsale',
53+
CHARGE: 'charge',
54+
CHARGE_RULE: 'chargerule',
55+
CHECK: 'check',
56+
CLASSIFICATION: 'classification',
57+
CLIENT_SCRIPT: 'clientscript',
58+
CMS_CONTENT: 'cmscontent',
59+
CMS_CONTENT_TYPE: 'cmscontenttype',
60+
COMMERCE_CATEGORY: 'commercecategory',
61+
COMPETITOR: 'competitor',
62+
CONSOLIDATED_EXCHANGE_RATE: 'consolidatedexchangerate',
63+
CONTACT: 'contact',
64+
CONTACT_CATEGORY: 'contactcategory',
65+
CONTACT_ROLE: 'contactrole',
66+
COST_CATEGORY: 'costcategory',
67+
COUPON_CODE: 'couponcode',
68+
CREDIT_CARD_CHARGE: 'creditcardcharge',
69+
CREDIT_CARD_REFUND: 'creditcardrefund',
70+
CREDIT_MEMO: 'creditmemo',
71+
CURRENCY: 'currency',
72+
CUSTOMER: 'customer',
73+
CUSTOMER_CATEGORY: 'customercategory',
74+
CUSTOMER_DEPOSIT: 'customerdeposit',
75+
CUSTOMER_MESSAGE: 'customermessage',
76+
CUSTOMER_PAYMENT: 'customerpayment',
77+
CUSTOMER_PAYMENT_AUTHORIZATION: 'customerpaymentauthorization',
78+
CUSTOMER_REFUND: 'customerrefund',
79+
CUSTOMER_STATUS: 'customerstatus',
80+
CUSTOM_RECORD: 'customrecord',
81+
CUSTOM_TRANSACTION: 'customtransaction',
82+
DEPARTMENT: 'department',
83+
DEPOSIT: 'deposit',
84+
DEPOSIT_APPLICATION: 'depositapplication',
85+
DESCRIPTION_ITEM: 'descriptionitem',
86+
DISCOUNT_ITEM: 'discountitem',
87+
DOWNLOAD_ITEM: 'downloaditem',
88+
EMAIL_TEMPLATE: 'emailtemplate',
89+
EMPLOYEE: 'employee',
90+
ENTITY_ACCOUNT_MAPPING: 'entityaccountmapping',
91+
ESTIMATE: 'estimate',
92+
EXPENSE_CATEGORY: 'expensecategory',
93+
EXPENSE_REPORT: 'expensereport',
94+
FAIR_VALUE_PRICE: 'fairvalueprice',
95+
FIXED_AMOUNT_PROJECT_REVENUE_RULE: 'fixedamountprojectrevenuerule',
96+
FOLDER: 'folder',
97+
FULFILLMENT_REQUEST: 'fulfillmentrequest',
98+
GENERIC_RESOURCE: 'genericresource',
99+
GIFT_CERTIFICATE: 'giftcertificate',
100+
GIFT_CERTIFICATE_ITEM: 'giftcertificateitem',
101+
GLOBAL_ACCOUNT_MAPPING: 'globalaccountmapping',
102+
INBOUND_SHIPMENT: 'inboundshipment',
103+
INTERCOMP_ALLOCATION_SCHEDULE: 'intercompallocationschedule',
104+
INTER_COMPANY_JOURNAL_ENTRY: 'intercompanyjournalentry',
105+
INTER_COMPANY_TRANSFER_ORDER: 'intercompanytransferorder',
106+
INVENTORY_ADJUSTMENT: 'inventoryadjustment',
107+
INVENTORY_COST_REVALUATION: 'inventorycostrevaluation',
108+
INVENTORY_COUNT: 'inventorycount',
109+
INVENTORY_DETAIL: 'inventorydetail',
110+
INVENTORY_ITEM: 'inventoryitem',
111+
INVENTORY_NUMBER: 'inventorynumber',
112+
INVENTORY_STATUS: 'inventorystatus',
113+
INVENTORY_STATUS_CHANGE: 'inventorystatuschange',
114+
INVENTORY_TRANSFER: 'inventorytransfer',
115+
INVOICE: 'invoice',
116+
ISSUE: 'issue',
117+
ITEM_ACCOUNT_MAPPING: 'itemaccountmapping',
118+
ITEM_DEMAND_PLAN: 'itemdemandplan',
119+
ITEM_FULFILLMENT: 'itemfulfillment',
120+
ITEM_GROUP: 'itemgroup',
121+
ITEM_LOCATION_CONFIGURATION: 'itemlocationconfiguration',
122+
ITEM_RECEIPT: 'itemreceipt',
123+
ITEM_REVISION: 'itemrevision',
124+
ITEM_SUPPLY_PLAN: 'itemsupplyplan',
125+
JOB: 'job',
126+
JOB_STATUS: 'jobstatus',
127+
JOB_TYPE: 'jobtype',
128+
JOURNAL_ENTRY: 'journalentry',
129+
KIT_ITEM: 'kititem',
130+
LABOR_BASED_PROJECT_REVENUE_RULE: 'laborbasedprojectrevenuerule',
131+
LEAD: 'lead',
132+
LOCATION: 'location',
133+
LOT_NUMBERED_ASSEMBLY_ITEM: 'lotnumberedassemblyitem',
134+
LOT_NUMBERED_INVENTORY_ITEM: 'lotnumberedinventoryitem',
135+
MANUFACTURING_COST_TEMPLATE: 'manufacturingcosttemplate',
136+
MANUFACTURING_OPERATION_TASK: 'manufacturingoperationtask',
137+
MANUFACTURING_ROUTING: 'manufacturingrouting',
138+
MAP_REDUCE_SCRIPT: 'mapreducescript',
139+
MARKUP_ITEM: 'markupitem',
140+
MASSUPDATE_SCRIPT: 'massupdatescript',
141+
MESSAGE: 'message',
142+
MFG_PLANNED_TIME: 'mfgplannedtime',
143+
NEXUS: 'nexus',
144+
NON_INVENTORY_ITEM: 'noninventoryitem',
145+
NOTE: 'note',
146+
NOTE_TYPE: 'notetype',
147+
OPPORTUNITY: 'opportunity',
148+
ORDER_SCHEDULE: 'orderschedule',
149+
OTHER_CHARGE_ITEM: 'otherchargeitem',
150+
OTHER_NAME: 'othername',
151+
OTHER_NAME_CATEGORY: 'othernamecategory',
152+
PARTNER: 'partner',
153+
PARTNER_CATEGORY: 'partnercategory',
154+
PAYCHECK: 'paycheck',
155+
PAYCHECK_JOURNAL: 'paycheckjournal',
156+
PAYMENT_ITEM: 'paymentitem',
157+
PAYMENT_METHOD: 'paymentmethod',
158+
PAYROLL_ITEM: 'payrollitem',
159+
PCT_COMPLETE_PROJECT_REVENUE_RULE: 'pctcompleteprojectrevenuerule',
160+
PHONE_CALL: 'phonecall',
161+
PORTLET: 'portlet',
162+
PRICE_BOOK: 'pricebook',
163+
PRICE_LEVEL: 'pricelevel',
164+
PRICE_PLAN: 'priceplan',
165+
PRICING_GROUP: 'pricinggroup',
166+
PROJECT_EXPENSE_TYPE: 'projectexpensetype',
167+
PROJECT_TASK: 'projecttask',
168+
PROJECT_TEMPLATE: 'projecttemplate',
169+
PROMOTION_CODE: 'promotioncode',
170+
PROSPECT: 'prospect',
171+
PURCHASE_CONTRACT: 'purchasecontract',
172+
PURCHASE_ORDER: 'purchaseorder',
173+
PURCHASE_REQUISITION: 'purchaserequisition',
174+
REALLOCATE_ITEM: 'reallocateitem',
175+
RECEIVE_INBOUND_SHIPMENT: 'receiveinboundshipment',
176+
RESOURCE_ALLOCATION: 'resourceallocation',
177+
RESTLET: 'restlet',
178+
RETURN_AUTHORIZATION: 'returnauthorization',
179+
REVENUE_ARRANGEMENT: 'revenuearrangement',
180+
REVENUE_COMMITMENT: 'revenuecommitment',
181+
REVENUE_COMMITMENT_REVERSAL: 'revenuecommitmentreversal',
182+
REVENUE_PLAN: 'revenueplan',
183+
REV_REC_SCHEDULE: 'revrecschedule',
184+
REV_REC_TEMPLATE: 'revrectemplate',
185+
SALES_ORDER: 'salesorder',
186+
SALES_ROLE: 'salesrole',
187+
SALES_TAX_ITEM: 'salestaxitem',
188+
SCHEDULED_SCRIPT: 'scheduledscript',
189+
SCHEDULED_SCRIPT_INSTANCE: 'scheduledscriptinstance',
190+
SCRIPT_DEPLOYMENT: 'scriptdeployment',
191+
SERIALIZED_ASSEMBLY_ITEM: 'serializedassemblyitem',
192+
SERIALIZED_INVENTORY_ITEM: 'serializedinventoryitem',
193+
SERVICE_ITEM: 'serviceitem',
194+
SHIP_ITEM: 'shipitem',
195+
SOLUTION: 'solution',
196+
STATISTICAL_JOURNAL_ENTRY: 'statisticaljournalentry',
197+
STORE_PICKUP_FULFILLMENT: 'storepickupfulfillment',
198+
SUBSCRIPTION: 'subscription',
199+
SUBSCRIPTION_CHANGE_ORDER: 'subscriptionchangeorder',
200+
SUBSCRIPTION_LINE: 'subscriptionline',
201+
SUBSCRIPTION_PLAN: 'subscriptionplan',
202+
SUBSIDIARY: 'subsidiary',
203+
SUBTOTAL_ITEM: 'subtotalitem',
204+
SUITELET: 'suitelet',
205+
SUPPORT_CASE: 'supportcase',
206+
TASK: 'task',
207+
TAX_ACCT: 'taxacct',
208+
TAX_GROUP: 'taxgroup',
209+
TAX_PERIOD: 'taxperiod',
210+
TAX_TYPE: 'taxtype',
211+
TERM: 'term',
212+
TIME_BILL: 'timebill',
213+
TIME_ENTRY: 'timeentry',
214+
TIME_OFF_CHANGE: 'timeoffchange',
215+
TIME_OFF_PLAN: 'timeoffplan',
216+
TIME_OFF_REQUEST: 'timeoffrequest',
217+
TIME_OFF_RULE: 'timeoffrule',
218+
TIME_OFF_TYPE: 'timeofftype',
219+
TIME_SHEET: 'timesheet',
220+
TOPIC: 'topic',
221+
TRANSFER_ORDER: 'transferorder',
222+
UNITS_TYPE: 'unitstype',
223+
USAGE: 'usage',
224+
USEREVENT_SCRIPT: 'usereventscript',
225+
VENDOR: 'vendor',
226+
VENDOR_BILL: 'vendorbill',
227+
VENDOR_CATEGORY: 'vendorcategory',
228+
VENDOR_CREDIT: 'vendorcredit',
229+
VENDOR_PAYMENT: 'vendorpayment',
230+
VENDOR_RETURN_AUTHORIZATION: 'vendorreturnauthorization',
231+
WEBSITE: 'website',
232+
WORKFLOW_ACTION_SCRIPT: 'workflowactionscript',
233+
WORK_ORDER: 'workorder',
234+
WORK_ORDER_CLOSE: 'workorderclose',
235+
WORK_ORDER_COMPLETION: 'workordercompletion',
236+
WORK_ORDER_ISSUE: 'workorderissue',
237+
WORKPLACE: 'workplace',
238+
},
239+
};

N/https.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/**
2+
* Return a Netsuite HTTP Module
3+
*
4+
* @classDescription HTTP object
5+
* @constructor
6+
* @returns {N/http}
7+
*/
8+
9+
module.exports = {
10+
post: obj => ({ code: 200, body: JSON.stringify({ url: obj.url }) }),
11+
get: obj => ({ code: 200, body: JSON.stringify({ url: obj.url }) }),
12+
delete: obj => ({ body: JSON.stringify({ url: obj.url }), code: 200 }),
13+
};

Utils/define.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const fs = require('fs');
88

99
// Utils
1010
const rawRecord = require('../Utils/record');
11-
11+
const logModule = require('../N/log');
12+
const Request = require('../Utils/request');
1213
const external = {};
1314
let extendedModules = {};
1415

@@ -18,14 +19,16 @@ global.mapModules = {
1819
moment,
1920
// Utils
2021
rawRecord,
22+
logModule,
23+
Request
2124
};
2225

2326
/**
2427
* Check if provided name is matching Netsuite module name
2528
* @param {*} moduleName
2629
*/
2730
const getNetSuiteModule = (moduleName) => {
28-
const path = `../${moduleName}`;
31+
const path = join(__dirname, `../${moduleName}.js`);
2932
// eslint-disable-next-line global-require, import/no-dynamic-require
3033
return fs.existsSync(path) ? require(path) : '';
3134
};

0 commit comments

Comments
 (0)