EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
test_pax8_sync.js
Go to the documentation of this file.
1// Test script to trigger Pax8 product sync via Redis
2const Redis = require("ioredis");
3const { v4: uuidv4 } = require('uuid');
4
5const redisConfig = require('../config/redis');
6const redisSub = new Redis(redisConfig);
7const redisPub = new Redis(redisConfig);
8
9const tenantId = '00000000-0000-0000-0000-000000000001'; // Independent Business Group
10const vendor = 'Microsoft';
11const force = true; // Force re-sync
12const jobId = uuidv4();
13
14console.log(`Triggering Pax8 sync job ${jobId}...`);
15console.log(`Tenant: ${tenantId}`);
16console.log(`Vendor: ${vendor}`);
17console.log(`Force: ${force}`);
18
19// Subscribe to results
20redisSub.subscribe('pax8:sync:result', (err) => {
21 if (err) {
22 console.error('Failed to subscribe to results:', err);
23 process.exit(1);
24 }
25 console.log('Listening for sync results...\n');
26});
27
28redisSub.on('message', (channel, message) => {
29 if (channel === 'pax8:sync:result') {
30 const result = JSON.parse(message);
31 if (result.jobId === jobId) {
32 console.log('\n=== Sync Result ===');
33 console.log('Success:', result.success);
34 console.log('Message:', result.message);
35 if (result.stats) {
36 console.log('Stats:', result.stats);
37 }
38 if (result.error) {
39 console.error('Error:', result.error);
40 }
41 redisSub.disconnect();
42 redisPub.disconnect();
43 process.exit(result.success ? 0 : 1);
44 }
45 }
46});
47
48// Publish sync request
49setTimeout(() => {
50 redisPub.publish('pax8:sync:request', JSON.stringify({
51 jobId,
52 tenantId,
53 vendor,
54 force
55 }));
56 console.log('Sync request published, waiting for worker to process...');
57}, 500);