feat: add configuration option to enable/disable Chatika integration

This commit is contained in:
masoodafar-web
2025-12-23 23:09:18 +03:30
parent 288b85a59b
commit ef8d5d4d97
2 changed files with 14 additions and 1 deletions
@@ -2,6 +2,7 @@ using CMSMicroservice.Application.Common.Interfaces;
using CMSMicroservice.Domain.Entities.Club; using CMSMicroservice.Domain.Entities.Club;
using CMSMicroservice.Domain.Enums; using CMSMicroservice.Domain.Enums;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Polly; using Polly;
@@ -15,6 +16,7 @@ public class ChatikaAccountActivationJob
{ {
private readonly IApplicationDbContext _context; private readonly IApplicationDbContext _context;
private readonly IChatikaApiService _chatikaApiService; private readonly IChatikaApiService _chatikaApiService;
private readonly IConfiguration _configuration;
private readonly ILogger<ChatikaAccountActivationJob> _logger; private readonly ILogger<ChatikaAccountActivationJob> _logger;
private readonly ResiliencePipeline _retryPipeline; private readonly ResiliencePipeline _retryPipeline;
@@ -32,10 +34,12 @@ public class ChatikaAccountActivationJob
public ChatikaAccountActivationJob( public ChatikaAccountActivationJob(
IApplicationDbContext context, IApplicationDbContext context,
IChatikaApiService chatikaApiService, IChatikaApiService chatikaApiService,
IConfiguration configuration,
ILogger<ChatikaAccountActivationJob> logger) ILogger<ChatikaAccountActivationJob> logger)
{ {
_context = context; _context = context;
_chatikaApiService = chatikaApiService; _chatikaApiService = chatikaApiService;
_configuration = configuration;
_logger = logger; _logger = logger;
// Polly Retry: 3 تلاش با فاصله نمایی // Polly Retry: 3 تلاش با فاصله نمایی
@@ -63,6 +67,14 @@ public class ChatikaAccountActivationJob
/// </summary> /// </summary>
public async Task ExecuteAsync(CancellationToken cancellationToken = default) public async Task ExecuteAsync(CancellationToken cancellationToken = default)
{ {
// Check if Chatika integration is enabled
var enabled = _configuration.GetValue<bool>("Chatika:Enabled");
if (!enabled)
{
_logger.LogDebug("Chatika integration is disabled (Chatika:Enabled = false). Skipping job.");
return;
}
var executionId = Guid.NewGuid(); var executionId = Guid.NewGuid();
_logger.LogInformation( _logger.LogInformation(
"🚀 [{ExecutionId}] Starting Chatika account activation job", "🚀 [{ExecutionId}] Starting Chatika account activation job",
+2 -1
View File
@@ -5,7 +5,7 @@
"JwtAudience": "https://localhost", "JwtAudience": "https://localhost",
"JwtExpiryInDays": 5, "JwtExpiryInDays": 5,
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "Data Source=185.252.31.42,2019; Initial Catalog=KBS;User ID=afrino;Password=87zH26nbqT%;Connection Timeout=300000;MultipleActiveResultSets=True;Encrypt=False", "DefaultConnection": "Data Source=45.149.79.127,31433; Initial Catalog=KBS;User ID=sa;Password=YourStrong@Passw0rd;Connection Timeout=300000;MultipleActiveResultSets=True;Encrypt=False",
"providerName": "System.Data.SqlClient" "providerName": "System.Data.SqlClient"
}, },
"Otp": { "Otp": {
@@ -51,6 +51,7 @@
"CacheDurationMinutes": 20 "CacheDurationMinutes": 20
}, },
"Chatika": { "Chatika": {
"Enabled": false,
"BaseUrl": "https://api.chatika.ir", "BaseUrl": "https://api.chatika.ir",
"ApiKey": "tIukvL8dnV4cB3yVWcCD9Xyfbj8rBxm5wPt2mLyJCgTsBBoMTWjt6mFEqQwpw-er" "ApiKey": "tIukvL8dnV4cB3yVWcCD9Xyfbj8rBxm5wPt2mLyJCgTsBBoMTWjt6mFEqQwpw-er"
}, },