Added GET branch endpoint for insurer

This commit is contained in:
SepehrYahyaee
2026-02-01 17:27:01 +03:30
parent f3982e7d5d
commit 432d5f9a98
3 changed files with 176 additions and 0 deletions

View File

@@ -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(

View File

@@ -905,4 +905,8 @@ export class ExpertInsurerService {
},
};
}
async retrieveInsuranceBranches(insuranceId: string) {
return await this.branchDbService.findAll(insuranceId);
}
}

163
test-sms.js Normal file
View File

@@ -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 };