diff --git a/src/expert-insurer/expert-insurer.controller.ts b/src/expert-insurer/expert-insurer.controller.ts index 1cfea41..3dd0265 100644 --- a/src/expert-insurer/expert-insurer.controller.ts +++ b/src/expert-insurer/expert-insurer.controller.ts @@ -168,6 +168,15 @@ export class ExpertInsurerController { ); } + @Get("branches/:insuranceId") + @ApiParam({ name: "insuranceId" }) + async getInsuranceBranches(@Param("insuranceId") insuranceId: string) { + console.log("insuranceId", insuranceId); + return await this.expertInsurerService.retrieveInsuranceBranches( + insuranceId, + ); + } + @Post("branches") @ApiBody({ type: CreateBranchDto }) async addBranch( diff --git a/src/expert-insurer/expert-insurer.service.ts b/src/expert-insurer/expert-insurer.service.ts index 7035a83..441967a 100644 --- a/src/expert-insurer/expert-insurer.service.ts +++ b/src/expert-insurer/expert-insurer.service.ts @@ -905,4 +905,8 @@ export class ExpertInsurerService { }, }; } + + async retrieveInsuranceBranches(insuranceId: string) { + return await this.branchDbService.findAll(insuranceId); + } } diff --git a/test-sms.js b/test-sms.js new file mode 100644 index 0000000..e71ca6d --- /dev/null +++ b/test-sms.js @@ -0,0 +1,163 @@ +/** + * Test script for sending SMS via Kavenegar API + * + * Usage: + * node test-sms.js + * + * Make sure to update the API_KEY and RECEPTOR (your phone number) below + */ + +const https = require('https'); +const querystring = require('querystring'); + +// ===== CONFIGURATION ===== +// Replace with your actual Kavenegar API key +const API_KEY = '75776C717969412B4B52306A5956462F4A714E6F6C65544D6A2B654B7566786E'; // Replace with your actual API key + +// Replace with your phone number (format: 09*********) +const RECEPTOR = '09199503061'; // Replace with your actual phone number + +// Optional: Sender number (if not provided, uses default account sender) +// const SENDER = '10004346'; // Optional - can be removed if you want to use default + +// Test message +const MESSAGE = 'تست ارسال پیامک از سیستم Yara724'; +// ===== END CONFIGURATION ===== + +function sendSMS(receptor, message, sender = null, options = {}) { + return new Promise((resolve, reject) => { + // Build URL + const baseUrl = `https://api.kavenegar.com/v1/${API_KEY}/sms/send.json`; + + // Build query parameters + const params = { + receptor: receptor, + message: encodeURIComponent(message), // Encode message for URL + }; + + // Only add sender if it's provided (not null/undefined/empty) + if (sender && sender.trim() !== '') { + params.sender = sender; + } + + // Add optional parameters + if (options.date) params.date = options.date; + if (options.type) params.type = options.type; + if (options.localid) params.localid = options.localid; + if (options.hide) params.hide = options.hide; + if (options.tag) params.tag = options.tag; + if (options.policy) params.policy = options.policy; + + const queryString = querystring.stringify(params); + const url = `${baseUrl}?${queryString}`; + + console.log('\n📤 Sending SMS...'); + console.log('URL:', url.replace(API_KEY, '***API_KEY***')); + console.log('Receptor:', receptor); + console.log('Message:', message); + console.log('Sender:', sender || '(Using default account sender)'); + + // Make HTTPS request + https.get(url, (res) => { + let data = ''; + + res.on('data', (chunk) => { + data += chunk; + }); + + res.on('end', () => { + try { + const response = JSON.parse(data); + + if (response.return && response.return.status === 200) { + console.log('\n✅ SMS sent successfully!'); + console.log('Response:', JSON.stringify(response, null, 2)); + + if (response.entries && response.entries.length > 0) { + console.log('\n📊 SMS Details:'); + response.entries.forEach((entry, index) => { + console.log(`\n Message ${index + 1}:`); + console.log(` Message ID: ${entry.messageid}`); + console.log(` Status: ${entry.status} (${entry.statustext})`); + console.log(` Receptor: ${entry.receptor}`); + console.log(` Sender: ${entry.sender}`); + console.log(` Cost: ${entry.cost} Rials`); + console.log(` Date: ${new Date(entry.date * 1000).toLocaleString('fa-IR')}`); + }); + } + + resolve(response); + } else { + console.error('\n❌ Error sending SMS'); + console.error('Response:', JSON.stringify(response, null, 2)); + reject(new Error(`API Error: ${response.return?.message || 'Unknown error'}`)); + } + } catch (error) { + console.error('\n❌ Error parsing response:', error.message); + console.error('Raw response:', data); + reject(error); + } + }); + }).on('error', (error) => { + console.error('\n❌ Network error:', error.message); + reject(error); + }); + }); +} + +/** + * Test function + */ +async function testSMS() { + console.log('='.repeat(50)); + console.log('🧪 Kavenegar SMS Test Script'); + console.log('='.repeat(50)); + + // Validate configuration + if (API_KEY === '613472435563797A37677331D' || API_KEY.length < 10) { + console.error('\n⚠️ WARNING: Please update API_KEY with your actual Kavenegar API key!'); + console.error(' You can find it in your Kavenegar panel: https://panel.kavenegar.com/client/membership/api'); + } + + if (RECEPTOR === '09123456789' || !RECEPTOR.startsWith('09')) { + console.error('\n⚠️ WARNING: Please update RECEPTOR with your actual phone number!'); + console.error(' Format: 09********* (11 digits starting with 09)'); + } + + try { + // Test 1: Simple SMS (without sender - uses default account sender) + console.log('\n\n📝 Test 1: Simple SMS (No sender - using default)'); + await sendSMS(RECEPTOR, MESSAGE); + + // Wait a bit before next test + await new Promise(resolve => setTimeout(resolve, 2000)); + + // Test 2: SMS with tag (optional - uncomment if you have tags set up) + // console.log('\n\n📝 Test 2: SMS with Tag'); + // await sendSMS(RECEPTOR, 'تست پیامک با تگ', SENDER, { tag: 'test' }); + + // Test 3: Multiple recipients (uncomment to test) + // console.log('\n\n📝 Test 3: Multiple Recipients'); + // const multipleReceptors = `${RECEPTOR},09123456789`; // Add more numbers separated by comma + // await sendSMS(multipleReceptors, 'تست پیامک به چندین گیرنده', SENDER); + + console.log('\n\n' + '='.repeat(50)); + console.log('✅ All tests completed!'); + console.log('='.repeat(50)); + + } catch (error) { + console.error('\n\n❌ Test failed:', error.message); + process.exit(1); + } +} + +// Run the test +if (require.main === module) { + testSMS().catch((error) => { + console.error('Fatal error:', error); + process.exit(1); + }); +} + +module.exports = { sendSMS }; +