@ingeno/pipedream-services 1.0.63 → 1.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/aws/apn/partner-central-client.test.d.ts +2 -0
  2. package/dist/aws/apn/partner-central-client.test.d.ts.map +1 -0
  3. package/dist/aws/apn/partner-central-client.test.js +38 -0
  4. package/dist/aws/apn/partner-central-client.test.js.map +1 -0
  5. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.d.ts +2 -0
  6. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.d.ts.map +1 -0
  7. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.js +34 -0
  8. package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.test.js.map +1 -0
  9. package/dist/aws/aws-list-stream.test.d.ts +3 -0
  10. package/dist/aws/aws-list-stream.test.d.ts.map +1 -0
  11. package/dist/aws/aws-list-stream.test.js +50 -0
  12. package/dist/aws/aws-list-stream.test.js.map +1 -0
  13. package/dist/collections/collections-to-table.test.d.ts +2 -0
  14. package/dist/collections/collections-to-table.test.d.ts.map +1 -0
  15. package/dist/collections/collections-to-table.test.js +105 -0
  16. package/dist/collections/collections-to-table.test.js.map +1 -0
  17. package/dist/collections/converter.test.d.ts +2 -0
  18. package/dist/collections/converter.test.d.ts.map +1 -0
  19. package/dist/collections/converter.test.js +304 -0
  20. package/dist/collections/converter.test.js.map +1 -0
  21. package/dist/postgres/posgres-test-config.d.ts +8 -0
  22. package/dist/postgres/posgres-test-config.d.ts.map +1 -0
  23. package/dist/postgres/posgres-test-config.js +8 -0
  24. package/dist/postgres/posgres-test-config.js.map +1 -0
  25. package/dist/postgres/postgres-test-connection.test.d.ts +2 -0
  26. package/dist/postgres/postgres-test-connection.test.d.ts.map +1 -0
  27. package/dist/postgres/postgres-test-connection.test.js +68 -0
  28. package/dist/postgres/postgres-test-connection.test.js.map +1 -0
  29. package/dist/postgres/postgres.d.ts.map +1 -1
  30. package/dist/postgres/postgres.js +5 -3
  31. package/dist/postgres/postgres.js.map +1 -1
  32. package/dist/postgres/postgres.test.d.ts +2 -0
  33. package/dist/postgres/postgres.test.d.ts.map +1 -0
  34. package/dist/postgres/postgres.test.js +497 -0
  35. package/dist/postgres/postgres.test.js.map +1 -0
  36. package/dist/streams/list-stream.test.d.ts +2 -0
  37. package/dist/streams/list-stream.test.d.ts.map +1 -0
  38. package/dist/streams/list-stream.test.js +169 -0
  39. package/dist/streams/list-stream.test.js.map +1 -0
  40. package/dist/zoho-crm/index.d.ts +1 -4
  41. package/dist/zoho-crm/index.d.ts.map +1 -1
  42. package/dist/zoho-crm/index.js +1 -4
  43. package/dist/zoho-crm/index.js.map +1 -1
  44. package/dist/zoho-crm/zoho-crm-client.d.ts +68 -0
  45. package/dist/zoho-crm/zoho-crm-client.d.ts.map +1 -1
  46. package/dist/zoho-crm/zoho-crm-client.js +216 -0
  47. package/dist/zoho-crm/zoho-crm-client.js.map +1 -1
  48. package/dist/zoho-crm/zoho-crm-client.test.d.ts +2 -0
  49. package/dist/zoho-crm/zoho-crm-client.test.d.ts.map +1 -0
  50. package/dist/zoho-crm/zoho-crm-client.test.js +341 -0
  51. package/dist/zoho-crm/zoho-crm-client.test.js.map +1 -0
  52. package/dist/zoho-crm/zoho-crm-fetcher.d.ts +2 -8
  53. package/dist/zoho-crm/zoho-crm-fetcher.d.ts.map +1 -1
  54. package/dist/zoho-crm/zoho-crm-fetcher.js +110 -28
  55. package/dist/zoho-crm/zoho-crm-fetcher.js.map +1 -1
  56. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.d.ts +8 -0
  57. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.d.ts.map +1 -0
  58. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.js +117 -0
  59. package/dist/zoho-crm/zoho-crm-to-database-collection-converter.js.map +1 -0
  60. package/package.json +3 -2
  61. package/dist/zoho-crm/module-processor.d.ts +0 -8
  62. package/dist/zoho-crm/module-processor.d.ts.map +0 -1
  63. package/dist/zoho-crm/module-processor.js +0 -114
  64. package/dist/zoho-crm/module-processor.js.map +0 -1
@@ -0,0 +1,341 @@
1
+ import dotenv from 'dotenv';
2
+ dotenv.config({ path: path.resolve(process.cwd(), '../../.env') });
3
+ import path from 'path';
4
+ import { beforeAll, describe, expect, it } from 'vitest';
5
+ import { zohoTestCredentials } from '@ingeno/pipedream-simulator';
6
+ import { ZohoCRMClient } from './zoho-crm-client.js';
7
+ describe('ZohoCRM Real Integration Tests', () => {
8
+ let client;
9
+ const testOpportunityId = `TEST-OPP-TO-DELETE`;
10
+ const testOpportunityName = `Test APN Opportunity - Safe to delete`;
11
+ beforeAll(async () => {
12
+ console.log('🧪 Setting up real Zoho CRM integration test...');
13
+ const credentials = await zohoTestCredentials();
14
+ client = new ZohoCRMClient({
15
+ accessToken: credentials.oauth_access_token,
16
+ apiDomain: credentials.api_domain,
17
+ });
18
+ console.log('✅ Authenticated client created successfully');
19
+ }, 30000); // 30 second timeout for auth
20
+ it('should add an APN opportunity if it does not exist', async () => {
21
+ console.log('🧪 Testing real APN Opportunity creation...');
22
+ // Define the opportunity data to create
23
+ const opportunityData = {
24
+ Opportunity_Id: testOpportunityId,
25
+ Name: testOpportunityName,
26
+ Customer_Name: 'Test Customer Corp',
27
+ Opportunity_Type: 'Migration',
28
+ Status: 'Active',
29
+ Value: 75000,
30
+ Description: 'Test opportunity created by automated integration test',
31
+ Expected_Close_Date: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], // 30 days from now
32
+ Stage: 'Prospecting',
33
+ Source: 'API Integration Test'
34
+ };
35
+ // Step 1: Search for existing opportunity with the same Opportunity_Id
36
+ console.log(`🔍 Searching for existing opportunity with ID: "${testOpportunityId}"`);
37
+ const searchResults = await client.searchAPNOpportunities(`Opportunity_Id:equals:${testOpportunityId}`, { fields: ['id', 'Opportunity_Id', 'Name', 'Customer_Name', 'Status'] });
38
+ let opportunityId;
39
+ if (searchResults.data && searchResults.data.length > 0) {
40
+ const opportunity = searchResults.data[0];
41
+ expect(opportunity).toBeDefined();
42
+ expect(opportunity.Opportunity_Id).toBe(testOpportunityId);
43
+ opportunityId = opportunity.id;
44
+ }
45
+ else {
46
+ const createResult = await client.createAPNOpportunity(opportunityData);
47
+ expect(createResult).toBeDefined();
48
+ expect(createResult.code).toBe('SUCCESS');
49
+ opportunityId = createResult.details.id;
50
+ }
51
+ // Step 2: Verify we can retrieve the opportunity by ID
52
+ console.log(`🔍 Verifying opportunity can be retrieved by ID: ${opportunityId}`);
53
+ const retrievedOpportunity = await client.getAPNOpportunity(opportunityId);
54
+ expect(retrievedOpportunity).toBeDefined();
55
+ expect(retrievedOpportunity.id).toBe(opportunityId);
56
+ expect(retrievedOpportunity.Name).toBe(testOpportunityName);
57
+ // Step 3: Test updating the opportunity
58
+ console.log(`📝 Testing opportunity update...`);
59
+ const updateData = {
60
+ Description: `Updated by integration test at ${new Date().toISOString()}`,
61
+ Status: 'In Progress'
62
+ };
63
+ const updateResult = await client.updateAPNOpportunity(opportunityId, updateData);
64
+ expect(updateResult).toBeDefined();
65
+ expect(updateResult.details.id).toBe(opportunityId);
66
+ // Step 4 : Delete the test opportunity
67
+ console.log(`🗑️ Deleting test opportunity with ID: ${opportunityId}`);
68
+ const deleteResult = await client.deleteAPNOpportunity(opportunityId);
69
+ expect(deleteResult).toBe(true);
70
+ }, 120000);
71
+ it('should fetch deal stage history for existing deals', async () => {
72
+ console.log('🧪 Testing deal stage history fetching...');
73
+ // Step 1: Get a few deals to test with
74
+ console.log('📊 Fetching existing deals to test stage history...');
75
+ const deals = await client.getDeals({ maxRecords: 5 });
76
+ expect(deals).toBeDefined();
77
+ expect(Array.isArray(deals)).toBe(true);
78
+ if (deals.length === 0) {
79
+ console.log('⚠️ No deals found, skipping stage history test');
80
+ return;
81
+ }
82
+ const testDeal = deals[0];
83
+ console.log(`🎯 Testing stage history for deal: ${testDeal.id} (${testDeal.Deal_Name || testDeal.Name || 'Unnamed Deal'})`);
84
+ // Step 2: Test basic stage history fetch
85
+ console.log('📈 Fetching stage history...');
86
+ const stageHistory = await client.getDealStageHistory(testDeal.id);
87
+ expect(stageHistory).toBeDefined();
88
+ expect(Array.isArray(stageHistory)).toBe(true);
89
+ console.log(`✅ Found ${stageHistory.length} stage history records`);
90
+ // Validate stage history structure if records exist
91
+ if (stageHistory.length > 0) {
92
+ const historyRecord = stageHistory[0];
93
+ console.log('📝 Sample stage history record:', JSON.stringify(historyRecord, null, 2));
94
+ expect(historyRecord).toBeDefined();
95
+ expect(typeof historyRecord).toBe('object');
96
+ }
97
+ // Step 3: Test paginated stage history fetch
98
+ console.log('📄 Testing paginated stage history fetch...');
99
+ const allStageHistory = await client.getAllDealStageHistory(testDeal.id, 10);
100
+ expect(allStageHistory).toBeDefined();
101
+ expect(Array.isArray(allStageHistory)).toBe(true);
102
+ expect(allStageHistory.length).toBeLessThanOrEqual(10);
103
+ console.log(`✅ Paginated fetch returned ${allStageHistory.length} records`);
104
+ // Step 4: Test streaming stage history
105
+ console.log('🌊 Testing stage history streaming...');
106
+ const stream = client.createDealStageHistoryStream(testDeal.id);
107
+ expect(stream).toBeDefined();
108
+ expect(typeof stream.subscribe).toBe('function');
109
+ console.log('✅ Stage history stream created successfully');
110
+ console.log('🎉 Deal stage history tests completed successfully');
111
+ }, 60000);
112
+ it('should fetch related list metadata for modules', async () => {
113
+ console.log('🧪 Testing related list metadata fetching...');
114
+ // Step 1: Test getting related list metadata for Deals module
115
+ console.log('🔗 Fetching related list metadata for Deals module...');
116
+ const dealsMetadata = await client.getRelatedListMetadata('Deals');
117
+ expect(dealsMetadata).toBeDefined();
118
+ expect(dealsMetadata.related_lists).toBeDefined();
119
+ expect(Array.isArray(dealsMetadata.related_lists)).toBe(true);
120
+ console.log(`✅ Found ${dealsMetadata.related_lists.length} related lists for Deals`);
121
+ // Step 2: Test structured related record types function
122
+ console.log('📋 Getting structured related record types for Deals...');
123
+ const relatedTypes = await client.getModuleRelatedRecordTypes('Deals');
124
+ expect(relatedTypes).toBeDefined();
125
+ expect(Array.isArray(relatedTypes)).toBe(true);
126
+ console.log(`✅ Found ${relatedTypes.length} related record types`);
127
+ // Validate structure of related types
128
+ if (relatedTypes.length > 0) {
129
+ const firstType = relatedTypes[0];
130
+ console.log('📝 Sample related type:', JSON.stringify(firstType, null, 2));
131
+ expect(firstType).toBeDefined();
132
+ expect(typeof firstType.api_name).toBe('string');
133
+ expect(typeof firstType.display_label).toBe('string');
134
+ expect(typeof firstType.sequence_number).toBe('number');
135
+ }
136
+ // Step 3: Test with Accounts module
137
+ console.log('🏢 Testing with Accounts module...');
138
+ const accountsRelatedTypes = await client.getModuleRelatedRecordTypes('Accounts');
139
+ expect(accountsRelatedTypes).toBeDefined();
140
+ expect(Array.isArray(accountsRelatedTypes)).toBe(true);
141
+ console.log(`✅ Found ${accountsRelatedTypes.length} related record types for Accounts`);
142
+ // Step 4: Test getting related records if we have any deals
143
+ if (relatedTypes.length > 0) {
144
+ console.log('🔍 Testing related records fetching...');
145
+ // Get a deal to test with
146
+ const deals = await client.getDeals({ maxRecords: 1 });
147
+ if (deals.length > 0) {
148
+ const testDeal = deals[0];
149
+ const firstRelatedType = relatedTypes[0];
150
+ console.log(`🎯 Testing related records for deal: ${testDeal.id}, related type: ${firstRelatedType.api_name}`);
151
+ try {
152
+ const relatedRecords = await client.getRelatedRecords('Deals', testDeal.id, firstRelatedType.api_name, { per_page: 5 });
153
+ expect(relatedRecords).toBeDefined();
154
+ expect(relatedRecords.data).toBeDefined();
155
+ expect(Array.isArray(relatedRecords.data)).toBe(true);
156
+ console.log(`✅ Found ${relatedRecords.data.length} related records of type ${firstRelatedType.api_name}`);
157
+ }
158
+ catch (error) {
159
+ console.log(`⚠️ Could not fetch related records for ${firstRelatedType.api_name}: ${error.message}`);
160
+ // This is expected for some related types that might not have data or permissions
161
+ }
162
+ }
163
+ }
164
+ console.log('🎉 Related list metadata tests completed successfully');
165
+ }, 60000);
166
+ it('should fetch pipeline information for Deals module', async () => {
167
+ console.log('🧪 Testing pipeline fetching...');
168
+ // Step 1: Test getting Deals layout ID
169
+ console.log('🏗️ Getting Deals layout ID...');
170
+ const layoutId = await client.getDealsLayoutId();
171
+ expect(layoutId).toBeDefined();
172
+ expect(typeof layoutId).toBe('string');
173
+ expect(layoutId.length).toBeGreaterThan(0);
174
+ console.log(`✅ Found Deals layout ID: ${layoutId}`);
175
+ // Step 2: Test getting pipelines using layout ID
176
+ console.log('🔧 Fetching pipelines using layout ID...');
177
+ const pipelinesRaw = await client.getPipelines(layoutId);
178
+ expect(pipelinesRaw).toBeDefined();
179
+ expect(pipelinesRaw.pipeline).toBeDefined();
180
+ expect(Array.isArray(pipelinesRaw.pipeline)).toBe(true);
181
+ console.log(`✅ Found ${pipelinesRaw.pipeline.length} pipeline(s) in raw response`);
182
+ // Step 3: Test structured pipeline details
183
+ console.log('📊 Getting structured pipeline details...');
184
+ const pipelineDetails = await client.getPipelineDetails(layoutId);
185
+ expect(pipelineDetails).toBeDefined();
186
+ expect(Array.isArray(pipelineDetails)).toBe(true);
187
+ console.log(`✅ Found ${pipelineDetails.length} structured pipeline(s)`);
188
+ // Validate pipeline structure if pipelines exist
189
+ if (pipelineDetails.length > 0) {
190
+ const firstPipeline = pipelineDetails[0];
191
+ console.log('📝 Sample pipeline:', JSON.stringify(firstPipeline, null, 2));
192
+ expect(firstPipeline).toBeDefined();
193
+ expect(typeof firstPipeline.id).toBe('string');
194
+ expect(typeof firstPipeline.display_value).toBe('string');
195
+ expect(typeof firstPipeline.default).toBe('boolean');
196
+ expect(Array.isArray(firstPipeline.stages)).toBe(true);
197
+ // Validate stage structure if stages exist
198
+ if (firstPipeline.stages.length > 0) {
199
+ const firstStage = firstPipeline.stages[0];
200
+ expect(firstStage).toBeDefined();
201
+ expect(typeof firstStage.id).toBe('string');
202
+ expect(typeof firstStage.display_value).toBe('string');
203
+ expect(typeof firstStage.sequence_number).toBe('number');
204
+ console.log(`✅ Pipeline "${firstPipeline.display_value}" has ${firstPipeline.stages.length} stages`);
205
+ }
206
+ }
207
+ // Step 4: Test convenience method for Deals pipelines
208
+ console.log('🎯 Testing convenience method for Deals pipelines...');
209
+ const dealsPipelines = await client.getDealsPipelines();
210
+ expect(dealsPipelines).toBeDefined();
211
+ expect(Array.isArray(dealsPipelines)).toBe(true);
212
+ expect(dealsPipelines.length).toBe(pipelineDetails.length);
213
+ console.log(`✅ Convenience method returned ${dealsPipelines.length} pipeline(s)`);
214
+ // Step 5: Test getting a specific pipeline if we have any
215
+ if (dealsPipelines.length > 0) {
216
+ const testPipelineId = dealsPipelines[0].id;
217
+ console.log(`🎯 Testing specific pipeline fetch for ID: ${testPipelineId}`);
218
+ const specificPipeline = await client.getDealsPipeline(testPipelineId);
219
+ expect(specificPipeline).toBeDefined();
220
+ expect(Array.isArray(specificPipeline)).toBe(true);
221
+ expect(specificPipeline.length).toBe(1);
222
+ expect(specificPipeline[0].id).toBe(testPipelineId);
223
+ console.log(`✅ Successfully fetched specific pipeline: ${specificPipeline[0].display_value}`);
224
+ }
225
+ console.log('🎉 Pipeline tests completed successfully');
226
+ }, 60000);
227
+ it('should explore available settings and configurations like pipelines', async () => {
228
+ console.log('🧪 Exploring other settings/configurations available in Zoho CRM...');
229
+ // Common settings endpoints that might exist
230
+ const settingsEndpoints = [
231
+ '/settings/modules',
232
+ '/settings/fields',
233
+ '/settings/layouts',
234
+ '/settings/pipeline',
235
+ '/settings/custom_views',
236
+ '/settings/roles',
237
+ '/settings/profiles',
238
+ '/settings/users',
239
+ '/settings/territories',
240
+ '/settings/currencies',
241
+ '/settings/custom_links',
242
+ '/settings/workflow',
243
+ '/settings/automation',
244
+ '/settings/blueprints',
245
+ '/settings/tags',
246
+ '/settings/related_lists',
247
+ '/settings/picklist_values',
248
+ '/settings/organization',
249
+ '/settings/company_details',
250
+ '/settings/preferences',
251
+ '/settings/variables',
252
+ '/settings/macros',
253
+ '/settings/email_templates',
254
+ '/settings/inventory_templates',
255
+ '/settings/attachments',
256
+ '/settings/notes',
257
+ '/settings/activities',
258
+ '/settings/forecasts',
259
+ '/settings/analytics',
260
+ '/settings/dashboard',
261
+ '/settings/reports',
262
+ '/settings/integrations',
263
+ '/settings/apis',
264
+ '/settings/webhooks',
265
+ '/settings/functions',
266
+ '/settings/canvas',
267
+ '/settings/widgets',
268
+ '/settings/zia'
269
+ ];
270
+ const workingEndpoints = [];
271
+ const failedEndpoints = [];
272
+ for (const endpoint of settingsEndpoints) {
273
+ try {
274
+ console.log(`🔍 Testing: ${endpoint}`);
275
+ const response = await client.makeRequest(endpoint, {}, `explore ${endpoint}`);
276
+ console.log(`✅ SUCCESS: ${endpoint}`);
277
+ console.log(` Response keys: [${Object.keys(response).join(', ')}]`);
278
+ // Show sample data structure for interesting endpoints
279
+ if (response && typeof response === 'object') {
280
+ const firstKey = Object.keys(response)[0];
281
+ if (firstKey && Array.isArray(response[firstKey]) && response[firstKey].length > 0) {
282
+ const sampleItem = response[firstKey][0];
283
+ console.log(` Sample item keys: [${Object.keys(sampleItem).join(', ')}]`);
284
+ }
285
+ }
286
+ workingEndpoints.push(endpoint);
287
+ }
288
+ catch (error) {
289
+ console.log(`❌ FAILED: ${endpoint} - ${error.message}`);
290
+ failedEndpoints.push({ endpoint, error: error.message });
291
+ }
292
+ }
293
+ console.log(`\n📊 Summary:`);
294
+ console.log(`✅ Working endpoints: ${workingEndpoints.length}`);
295
+ console.log(`❌ Failed endpoints: ${failedEndpoints.length}`);
296
+ console.log(`\n✅ Available Settings/Configurations:`);
297
+ workingEndpoints.forEach(endpoint => {
298
+ console.log(` - ${endpoint}`);
299
+ });
300
+ // Test some specific settings that we know work
301
+ console.log(`\n🔧 Testing specific working endpoints with parameters...`);
302
+ try {
303
+ // Test modules with specific module
304
+ console.log(`📋 Testing /settings/modules for specific module...`);
305
+ const moduleSettings = await client.makeRequest('/settings/modules/Deals', {}, 'get Deals module settings');
306
+ console.log(` Deals module settings keys: [${Object.keys(moduleSettings).join(', ')}]`);
307
+ }
308
+ catch (error) {
309
+ console.log(` ❌ Failed: ${error.message}`);
310
+ }
311
+ try {
312
+ // Test fields with module parameter
313
+ console.log(`📝 Testing /settings/fields with module parameter...`);
314
+ const fieldsSettings = await client.makeRequest('/settings/fields?module=Deals', {}, 'get Deals fields settings');
315
+ console.log(` Deals fields count: ${fieldsSettings.fields?.length || 0}`);
316
+ }
317
+ catch (error) {
318
+ console.log(` ❌ Failed: ${error.message}`);
319
+ }
320
+ try {
321
+ // Test layouts with module parameter
322
+ console.log(`🏗️ Testing /settings/layouts with module parameter...`);
323
+ const layoutsSettings = await client.makeRequest('/settings/layouts?module=Deals', {}, 'get Deals layouts settings');
324
+ console.log(` Deals layouts count: ${layoutsSettings.layouts?.length || 0}`);
325
+ }
326
+ catch (error) {
327
+ console.log(` ❌ Failed: ${error.message}`);
328
+ }
329
+ try {
330
+ // Test organization settings
331
+ console.log(`🏢 Testing /settings/organization...`);
332
+ const orgSettings = await client.makeRequest('/settings/organization', {}, 'get organization settings');
333
+ console.log(` Organization settings keys: [${Object.keys(orgSettings).join(', ')}]`);
334
+ }
335
+ catch (error) {
336
+ console.log(` ❌ Failed: ${error.message}`);
337
+ }
338
+ console.log('🎉 Settings exploration completed');
339
+ }, 120000); // Longer timeout for this comprehensive test
340
+ });
341
+ //# sourceMappingURL=zoho-crm-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoho-crm-client.test.js","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-client.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { PostgresAuth } from '../index.js';
1
+ import type { PostgresAuth, ZohoCredentials } from '../index.js';
2
2
  export interface ZohoCRMFetchOptions {
3
- zohoCredentials: any;
3
+ zohoCredentials: ZohoCredentials;
4
4
  postgresCredentials: PostgresAuth;
5
5
  modules: string[];
6
6
  maxResults?: number;
@@ -12,11 +12,5 @@ export interface ZohoCRMFetchResult {
12
12
  records: number;
13
13
  }>;
14
14
  }
15
- /**
16
- * Reusable function to fetch data from Zoho CRM modules and save to PostgreSQL
17
- *
18
- * @param options Configuration options for the fetch operation
19
- * @returns Summary of tables created and records processed
20
- */
21
15
  export declare function fetchZohoCRMData(options: ZohoCRMFetchOptions): Promise<ZohoCRMFetchResult>;
22
16
  //# sourceMappingURL=zoho-crm-fetcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoho-crm-fetcher.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-fetcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,GAAG,CAAA;IACpB,mBAAmB,EAAE,YAAY,CAAA;IACjC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2ChG"}
1
+ {"version":3,"file":"zoho-crm-fetcher.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-fetcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,YAAY,CAAA;IACjC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACnD;AAgJD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmBhG"}
@@ -1,43 +1,125 @@
1
- import { ZohoCRMClient, ZohoAuth, collectionSummary, collectionsToTables, fillTables, processModule } from '../index.js';
2
- /**
3
- * Reusable function to fetch data from Zoho CRM modules and save to PostgreSQL
4
- *
5
- * @param options Configuration options for the fetch operation
6
- * @returns Summary of tables created and records processed
7
- */
8
- export async function fetchZohoCRMData(options) {
9
- const { zohoCredentials, postgresCredentials, modules, maxResults, tablesPrefix = 'zoho_crm_' } = options;
10
- // Initialize Zoho Auth and Client
1
+ import { ZohoCRMClient, ZohoAuth, collectionSummary, collectionsToTables, fillTables, convertZohoCRMModuleToDatabaseCollection } from '../index.js';
2
+ async function createAuthenticatedZohoCRMClient(zohoCredentials) {
11
3
  const zohoAuth = new ZohoAuth(zohoCredentials);
12
4
  const accessToken = await zohoAuth.getAccessToken();
13
- const client = new ZohoCRMClient({
5
+ return new ZohoCRMClient({
14
6
  accessToken,
15
7
  apiDomain: zohoCredentials.api_domain,
16
8
  });
17
- console.log(`Fetching data from modules: ${modules.join(', ')}`);
18
- console.log(`Max results per module: ${maxResults || 'all'}`);
19
- const collections = [];
20
- // Process each module using the generic processor
21
- for (const moduleName of modules) {
22
- console.log(`Fetching ${moduleName}...`);
23
- const collection = await processModule(moduleName, client, { maxRecords: maxResults || undefined });
24
- collections.push(collection);
9
+ }
10
+ function addRequiredModuleDependencies(modules) {
11
+ const modulesWithDependencies = [...modules];
12
+ const shouldIncludePipelines = modules.includes('Deals');
13
+ if (shouldIncludePipelines && !modulesWithDependencies.includes('DealHistory')) {
14
+ modulesWithDependencies.push('DealHistory');
15
+ console.log('Added DealHistory module since Deals is included');
16
+ }
17
+ return { modulesWithDependencies, shouldIncludePipelines };
18
+ }
19
+ function buildCollectionSchema(name, columns, prepareMode = 'drop') {
20
+ return {
21
+ name,
22
+ prepareMode,
23
+ columns,
24
+ };
25
+ }
26
+ function buildPipelinesCollection(pipelinesData) {
27
+ const pipelinesSchema = buildCollectionSchema('pipelines', [
28
+ { name: 'id', type: 'id' },
29
+ { name: 'pipeline_id', path: 'id' },
30
+ { name: 'display_value', type: 'text' },
31
+ { name: 'default', type: 'bool' },
32
+ { name: 'stages_count', transform: (pipeline) => pipeline.stages?.length || 0 },
33
+ { name: 'stages_data', type: 'json', path: 'stages' },
34
+ ]);
35
+ return {
36
+ schema: pipelinesSchema,
37
+ objects: pipelinesData.map((pipeline, index) => ({
38
+ id: index + 1,
39
+ ...pipeline,
40
+ })),
41
+ };
42
+ }
43
+ function buildPipelineStagesCollection(pipelinesData) {
44
+ const flattenedStages = pipelinesData
45
+ .filter((pipeline) => pipeline.stages && Array.isArray(pipeline.stages))
46
+ .flatMap((pipeline) => pipeline.stages.map((stage) => ({
47
+ id: stage.id,
48
+ pipeline_id: pipeline.id,
49
+ pipeline_display_value: pipeline.display_value,
50
+ stage_id: stage.id,
51
+ stage_display_value: stage.display_value,
52
+ sequence_number: stage.sequence_number,
53
+ forecast_category: stage.forecast_category,
54
+ forecast_type: stage.forecast_type,
55
+ probability: stage.probability || 0,
56
+ })));
57
+ const stagesSchema = buildCollectionSchema('pipeline_stages', [
58
+ { name: 'id', type: 'id' },
59
+ { name: 'pipeline_id', type: 'text' },
60
+ { name: 'pipeline_display_value', type: 'text' },
61
+ { name: 'stage_id', type: 'text' },
62
+ { name: 'stage_display_value', type: 'text' },
63
+ { name: 'sequence_number', type: 'number' },
64
+ { name: 'forecast_category', type: 'text' },
65
+ { name: 'forecast_type', type: 'text' },
66
+ { name: 'probability', type: 'number' },
67
+ ]);
68
+ return {
69
+ schema: stagesSchema,
70
+ objects: flattenedStages,
71
+ };
72
+ }
73
+ async function fetchAndBuildPipelineCollections(client) {
74
+ console.log('Fetching Deals pipelines...');
75
+ try {
76
+ const pipelinesData = await client.getDealsPipelines();
77
+ const pipelinesCollection = buildPipelinesCollection(pipelinesData);
78
+ const pipelineStagesCollection = buildPipelineStagesCollection(pipelinesData);
79
+ console.log(`Processed ${pipelinesData.length} pipelines`);
80
+ console.log(`Processed ${pipelineStagesCollection.objects.length} pipeline stages`);
81
+ return [pipelinesCollection, pipelineStagesCollection];
25
82
  }
26
- // Log summary
83
+ catch (error) {
84
+ console.warn('Failed to fetch pipelines:', error.message);
85
+ return [];
86
+ }
87
+ }
88
+ async function saveCollectionsAndCreateSummary(collections, postgresCredentials, tablesPrefix) {
27
89
  collectionSummary(collections);
28
- // Convert to table format
29
90
  const tablesRows = collectionsToTables(collections);
30
- // Fill PostgreSQL tables
31
91
  await fillTables({
32
92
  auth: postgresCredentials,
33
93
  tablesRows,
34
94
  tablesPrefix,
35
95
  });
36
- return {
37
- summary: collections.map((c) => ({
38
- table: `${tablesPrefix}${c.schema.name}`,
39
- records: c.objects.length,
40
- })),
41
- };
96
+ return collections.map((collection) => ({
97
+ table: `${tablesPrefix}${collection.schema.name}`,
98
+ records: collection.objects.length,
99
+ }));
100
+ }
101
+ function logFetchOperationDetails(modules, maxResults) {
102
+ console.log(`Fetching data from modules: ${modules.join(', ')}`);
103
+ console.log(`Max results per module: ${maxResults || 'all'}`);
104
+ }
105
+ async function fetchAllModuleCollections(modules, client, maxResults) {
106
+ return await Promise.all(modules.map(async (moduleName) => {
107
+ console.log(`Fetching ${moduleName}...`);
108
+ return await convertZohoCRMModuleToDatabaseCollection(moduleName, client, { maxRecords: maxResults || undefined });
109
+ }));
110
+ }
111
+ export async function fetchZohoCRMData(options) {
112
+ const { zohoCredentials, postgresCredentials, modules, maxResults, tablesPrefix = 'zoho_crm_' } = options;
113
+ const client = await createAuthenticatedZohoCRMClient(zohoCredentials);
114
+ const { modulesWithDependencies, shouldIncludePipelines } = addRequiredModuleDependencies(modules);
115
+ logFetchOperationDetails(modulesWithDependencies, maxResults);
116
+ const moduleCollections = await fetchAllModuleCollections(modulesWithDependencies, client, maxResults);
117
+ const allCollections = [...moduleCollections];
118
+ if (shouldIncludePipelines) {
119
+ const pipelineCollections = await fetchAndBuildPipelineCollections(client);
120
+ allCollections.push(...pipelineCollections);
121
+ }
122
+ const summary = await saveCollectionsAndCreateSummary(allCollections, postgresCredentials, tablesPrefix);
123
+ return { summary };
42
124
  }
43
125
  //# sourceMappingURL=zoho-crm-fetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoho-crm-fetcher.js","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAgBxH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA4B;IACjE,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;IAEzG,kCAAkC;IAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAA;IAEnD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;QAC/B,WAAW;QACX,SAAS,EAAE,eAAe,CAAC,UAAU;KACtC,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChE,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,IAAI,KAAK,EAAE,CAAC,CAAA;IAE7D,MAAM,WAAW,GAAG,EAAE,CAAA;IAEtB,kDAAkD;IAClD,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,KAAK,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC,CAAA;QACnG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9B,CAAC;IAED,cAAc;IACd,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAE9B,0BAA0B;IAC1B,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IAEnD,yBAAyB;IACzB,MAAM,UAAU,CAAC;QACf,IAAI,EAAE,mBAAmB;QACzB,UAAU;QACV,YAAY;KACb,CAAC,CAAA;IAEF,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACxC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;SAC1B,CAAC,CAAC;KACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"zoho-crm-fetcher.js","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Collection, CollectionSchema } from '../collections/types.js';
2
+ import type { ZohoCRMClient, ZohoCRMRecord } from './zoho-crm-client.js';
3
+ export interface ZohoCRMConversionOptions {
4
+ maxRecords?: number;
5
+ }
6
+ export declare function createDatabaseSchemaFromZohoCRMRecords(records: ZohoCRMRecord[], schemaName: string): CollectionSchema;
7
+ export declare function convertZohoCRMModuleToDatabaseCollection(moduleName: string, client: ZohoCRMClient, options?: ZohoCRMConversionOptions): Promise<Collection>;
8
+ //# sourceMappingURL=zoho-crm-to-database-collection-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoho-crm-to-database-collection-converter.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-to-database-collection-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAA;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAExE,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAwHD,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAarH;AAED,wBAAsB,wCAAwC,CAC5D,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,UAAU,CAAC,CAmBrB"}