courseworx/test-api-endpoints.js
mmabdalla 5477297914 v2.0.2 - Complete Plugin Architecture System and Multi-Currency Implementation
Major Features Added:
- Complete Plugin Architecture System with financial plugin
- Multi-currency support with exchange rates
- Course type system (online, classroom, hybrid)
- Attendance tracking and QR code scanning
- Classroom sessions management
- Course sections and content management
- Professional video player with authentication
- Secure media serving system
- Shopping cart and checkout system
- Financial dashboard and earnings tracking
- Trainee progress tracking
- User notes and assignments system

Backend Infrastructure:
- Plugin loader and registry system
- Multi-currency database models
- Secure media middleware
- Course access middleware
- Financial plugin with payment processing
- Database migrations for new features
- API endpoints for all new functionality

Frontend Components:
- Course management interface
- Content creation and editing
- Section management with drag-and-drop
- Professional video player
- QR scanner for attendance
- Shopping cart and checkout flow
- Financial dashboard
- Plugin management interface
- Trainee details and progress views

This represents a major evolution of CourseWorx from a basic LMS to a comprehensive educational platform with plugin architecture.
2025-09-14 04:20:37 +03:00

73 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* API Endpoints Test Script
*
* This script tests the multi-currency API endpoints
*/
const baseUrl = 'http://localhost:5000/api/financial';
async function testApiEndpoints() {
console.log('🌐 Testing Multi-Currency API Endpoints...\n');
try {
// Test 1: Get all currencies
console.log('1⃣ Testing GET /api/financial/currencies');
const currenciesResponse = await fetch(`${baseUrl}/currencies`);
const currenciesData = await currenciesResponse.json();
if (currenciesData.success) {
console.log(`✅ Found ${currenciesData.data.length} currencies`);
currenciesData.data.slice(0, 3).forEach(currency => {
console.log(` - ${currency.name} (${currency.code})`);
});
} else {
console.log('❌ Failed to fetch currencies');
}
// Test 2: Get exchange rates
console.log('\n2⃣ Testing GET /api/financial/exchange-rates');
const ratesResponse = await fetch(`${baseUrl}/exchange-rates`);
const ratesData = await ratesResponse.json();
if (ratesData.success) {
console.log(`✅ Found ${ratesData.data.length} exchange rates`);
ratesData.data.slice(0, 3).forEach(rate => {
console.log(` - ${rate.fromCurrency.code}${rate.toCurrency.code}: ${rate.rate}`);
});
} else {
console.log('❌ Failed to fetch exchange rates');
}
// Test 3: Test currency conversion
console.log('\n3⃣ Testing GET /api/financial/convert');
const convertResponse = await fetch(`${baseUrl}/convert?amount=100&from=USD&to=EUR`);
const convertData = await convertResponse.json();
if (convertData.success) {
console.log(`✅ Currency conversion: ${convertData.data.originalAmount} ${convertData.data.fromCurrency} = ${convertData.data.convertedAmount} ${convertData.data.toCurrency}`);
} else {
console.log('❌ Failed to convert currency');
}
console.log('\n🎉 API endpoint tests completed!');
console.log('\n📋 Available Endpoints:');
console.log('✅ GET /api/financial/currencies - List currencies');
console.log('✅ GET /api/financial/exchange-rates - List exchange rates');
console.log('✅ GET /api/financial/convert - Convert currencies');
console.log('✅ POST /api/financial/currencies - Create currency (Admin)');
console.log('✅ POST /api/financial/exchange-rates - Create/update rate (Admin)');
console.log('✅ GET /api/financial/courses/:id/currency - Get course currency config');
console.log('✅ POST /api/financial/courses/:id/currency - Set course currency config');
} catch (error) {
console.error('❌ API test failed:', error.message);
console.log('\n💡 Make sure your CourseWorx server is running on http://localhost:5000');
}
}
// Run tests if this script is executed directly
if (require.main === module) {
testApiEndpoints();
}
module.exports = { testApiEndpoints };