Files
GreenHomeBack/src/GreenHome.Api/Controllers/SmsTestController.cs

139 lines
4.3 KiB
C#

using GreenHome.Sms.Ippanel;
using Microsoft.AspNetCore.Mvc;
namespace GreenHome.Api.Controllers;
/// <summary>
/// Controller for testing SMS service
/// </summary>
[ApiController]
[Route("api/[controller]")]
public class SmsTestController : ControllerBase
{
private readonly ISmsService smsService;
private readonly ILogger<SmsTestController> logger;
public SmsTestController(ISmsService smsService, ILogger<SmsTestController> logger)
{
this.smsService = smsService;
this.logger = logger;
}
/// <summary>
/// Test sending Webservice SMS
/// </summary>
/// <param name="request">SMS request details</param>
/// <returns>SMS response</returns>
[HttpPost("webservice")]
public async Task<IActionResult> TestWebserviceSms([FromBody] WebserviceSmsRequest request)
{
try
{
logger.LogInformation("Testing Webservice SMS to {Recipient}", request.Recipient);
var result = await smsService.SendWebserviceSmsAsync(request);
logger.LogInformation("Webservice SMS sent successfully.");
return Ok(new
{
success = true,
message = "پیامک با موفقیت ارسال شد",
data = result
});
}
catch (Exception ex)
{
logger.LogError(ex, "Error sending Webservice SMS");
return StatusCode(500, new
{
success = false,
message = "خطا در ارسال پیامک",
error = ex.Message
});
}
}
/// <summary>
/// Test sending Pattern SMS
/// </summary>
/// <param name="request">Pattern SMS request details</param>
/// <returns>SMS response</returns>
[HttpPost("pattern")]
public async Task<IActionResult> TestPatternSms([FromBody] PatternSmsRequest request)
{
try
{
logger.LogInformation("Testing Pattern SMS to {Recipient} with pattern {PatternCode}",
request.Recipients, request.PatternCode);
var result = await smsService.SendPatternSmsAsync(request);
logger.LogInformation("Pattern SMS sent successfully");
return Ok(new
{
success = true,
message = "پیامک با موفقیت ارسال شد",
data = result
});
}
catch (Exception ex)
{
logger.LogError(ex, "Error sending Pattern SMS");
return StatusCode(500, new
{
success = false,
message = "خطا در ارسال پیامک",
error = ex.Message
});
}
}
/// <summary>
/// Quick test with default values (for easy testing)
/// </summary>
/// <param name="phoneNumber">Phone number to send SMS to</param>
/// <returns>SMS response</returns>
[HttpPost("quick-test/{phoneNumber}")]
public async Task<IActionResult> QuickTest(string phoneNumber)
{
try
{
logger.LogInformation("Quick test SMS to {PhoneNumber}", phoneNumber);
var request = new WebserviceSmsRequest
{
Sender = "10001001", // شما می‌توانید این را از تنظیمات بخوانید
Recipient = phoneNumber,
Message = "این یک پیامک تست از سرویس GreenHome است. " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
};
var result = await smsService.SendWebserviceSmsAsync(request);
return Ok(new
{
success = true,
message = "پیامک تست با موفقیت ارسال شد",
data = result,
testInfo = new
{
phoneNumber,
sentAt = DateTime.Now
}
});
}
catch (Exception ex)
{
logger.LogError(ex, "Error in quick test SMS");
return StatusCode(500, new
{
success = false,
message = "خطا در ارسال پیامک تست",
error = ex.Message
});
}
}
}