Skip to main content
Glama
test-connection.jsβ€’4.63 kB
#!/usr/bin/env node // @ts-check /** * Test Inflow API connectivity * Run with: npm run test:connection */ import dotenv from 'dotenv'; import { InflowClient } from '../src/inflow-client.js'; // Load environment variables dotenv.config(); async function testConnection() { console.log('πŸ” Testing Inflow API Connection...\n'); // Validate environment variables if (!process.env.INFLOW_API_KEY) { console.error('❌ Error: INFLOW_API_KEY not set in .env file'); process.exit(1); } if (!process.env.INFLOW_COMPANY_ID) { console.error('❌ Error: INFLOW_COMPANY_ID not set in .env file'); process.exit(1); } // Initialize client const config = { apiKey: process.env.INFLOW_API_KEY, companyId: process.env.INFLOW_COMPANY_ID, apiUrl: process.env.INFLOW_API_URL || 'https://cloudapi.inflowinventory.com', apiVersion: process.env.INFLOW_API_VERSION || '2025-06-24' }; console.log('πŸ“‹ Configuration:'); console.log(` API URL: ${config.apiUrl}`); console.log(` Company ID: ${config.companyId}`); console.log(` API Version: ${config.apiVersion}`); console.log(` API Key: ${config.apiKey.substring(0, 10)}...`); console.log(); const client = new InflowClient(config); // Test 1: List products (limit to 5 for testing) console.log('πŸ“¦ Test 1: Listing products (limit 5)...'); const productsResult = await client.listProducts({ limit: 5 }); if (productsResult.success) { console.log(`βœ… Success! Found ${productsResult.data.length} products`); if (productsResult.data.length > 0) { console.log('\n First product:'); const firstProduct = productsResult.data[0]; console.log(` - ID: ${firstProduct.productId}`); console.log(` - Name: ${firstProduct.name || 'N/A'}`); console.log(` - SKU: ${firstProduct.sku || 'N/A'}`); console.log(` - Description: ${firstProduct.description || 'N/A'}`); console.log(` - Active: ${firstProduct.isActive}`); } } else { console.error(`❌ Failed: ${productsResult.error}`); if (productsResult.details) { console.error(' Details:', JSON.stringify(productsResult.details, null, 2)); } } console.log(); // Test 2: Search for products with 'smart' search console.log('πŸ” Test 2: Smart search for products...'); const searchResult = await client.listProducts({ smart: 'ingredient', limit: 3 }); if (searchResult.success) { console.log(`βœ… Success! Found ${searchResult.data.length} products matching "ingredient"`); searchResult.data.forEach((product, index) => { console.log(`\n ${index + 1}. ${product.name || 'Unnamed'}`); console.log(` SKU: ${product.sku || 'N/A'}`); console.log(` ID: ${product.productId}`); }); } else { console.error(`❌ Failed: ${searchResult.error}`); } console.log(); // Test 3: If we found a product, get its details with inventory if (productsResult.success && productsResult.data.length > 0) { const testProductId = productsResult.data[0].productId; console.log(`πŸ“‹ Test 3: Getting product details with inventory (ID: ${testProductId})...`); const productResult = await client.getProduct(testProductId, 'inventoryLines,defaultImage'); if (productResult.success) { console.log('βœ… Success! Product details retrieved'); console.log(` - Name: ${productResult.data.name}`); console.log(` - SKU: ${productResult.data.sku || 'N/A'}`); if (productResult.data.inventoryLines && productResult.data.inventoryLines.length > 0) { console.log(` - Inventory lines: ${productResult.data.inventoryLines.length}`); productResult.data.inventoryLines.forEach((line, idx) => { console.log(` ${idx + 1}. Qty: ${line.quantity || 0}`); }); } else { console.log(' - No inventory lines'); } } else { console.error(`❌ Failed: ${productResult.error}`); } console.log(); // Test 4: Get product inventory summary console.log(`πŸ“Š Test 4: Getting inventory summary (ID: ${testProductId})...`); const summaryResult = await client.getProductSummary(testProductId); if (summaryResult.success) { console.log('βœ… Success! Inventory summary retrieved'); console.log(' Summary:', JSON.stringify(summaryResult.data, null, 2)); } else { console.error(`❌ Failed: ${summaryResult.error}`); } } console.log('\n✨ Connection tests completed!'); } // Run tests testConnection().catch(error => { console.error('❌ Unexpected error:', error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/intelligent-staffing-systems/mcp-inflow-ingredients'

If you have feedback or need assistance with the MCP directory API, please join our Discord server