#!/usr/bin/env node
const https = require('https');
const axios = require('axios');
// Create axios instance that ignores SSL certificate errors (for testing)
const axiosInstance = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false
})
});
async function checkAuth() {
const baseUrl = 'https://api.umbrellacost.io/api/v1';
console.log('Testing authentication and user endpoints...\n');
try {
// Try authentication with correct password
console.log('Attempting authentication...');
const authResponse = await axiosInstance.post(`${baseUrl}/authentication/token/generate`, {
username: 'david+allcloud@umbrellacost.com',
password: 'Dsamsung1!123'
});
console.log('Auth successful!');
console.log('Token type:', authResponse.data.tokenType || 'Bearer');
console.log('Token length:', authResponse.data.token?.length || authResponse.data.access_token?.length);
const token = authResponse.data.token || authResponse.data.access_token;
// Try to get users
console.log('\nGetting /users endpoint...');
const usersResponse = await axiosInstance.get(`${baseUrl}/users`, {
headers: {
'Authorization': `Bearer ${token}`
}
});
console.log('Users response received');
console.log('Number of accounts:', usersResponse.data?.length);
// Look for Bank Leumi related accounts
if (Array.isArray(usersResponse.data)) {
console.log('\n=== Looking for Bank Leumi / Reseller-1 ===');
usersResponse.data.forEach(account => {
const name = (account.accountName || '').toLowerCase();
const key = account.accountKey;
if (name.includes('leumi') || name.includes('reseller') || key === '22676' || key === 22676) {
console.log(`\n📍 Found potential match:`);
console.log(` Name: ${account.accountName}`);
console.log(` Key: ${account.accountKey}`);
console.log(` Type: ${account.accountType}`);
console.log(` Full:`, JSON.stringify(account, null, 2));
}
});
}
// Try plain-sub-users
console.log('\n\nTrying /users/plain-sub-users endpoint...');
try {
const plainResponse = await axiosInstance.get(`${baseUrl}/users/plain-sub-users`, {
headers: {
'Authorization': `Bearer ${token}`
}
});
console.log('Plain-sub-users response received');
console.log('Has customerDivisions:', !!plainResponse.data?.customerDivisions);
if (plainResponse.data?.customerDivisions) {
const divisions = plainResponse.data.customerDivisions;
console.log('Number of customers:', Object.keys(divisions).length);
// Look for Reseller-1
if (divisions['Reseller-1']) {
console.log('\nâś… Found "Reseller-1" in customerDivisions!');
console.log(JSON.stringify(divisions['Reseller-1'], null, 2));
}
}
} catch (plainErr) {
console.log('Plain-sub-users failed:', plainErr.response?.status, plainErr.response?.data?.message || plainErr.message);
}
} catch (error) {
console.error('Error:', error.response?.status, error.response?.data || error.message);
if (error.response?.status === 401) {
console.log('\nTrying alternative auth endpoint...');
try {
const altAuth = await axiosInstance.post(`${baseUrl}/auth`, {
username: 'david+allcloud@umbrellacost.com',
password: 'Dsamsung1!123'
});
console.log('Alternative auth successful!');
} catch (altErr) {
console.log('Alternative auth also failed');
}
}
}
}
checkAuth();