feat: Phase 5 Browser Clients and deployment notification strategy
TaxBaik CI/CD / build-and-deploy (push) Failing after 27s
TaxBaik CI/CD / build-and-deploy (push) Failing after 27s
Phase 5: Tax & CRM Browser Clients - 5 API client interfaces (TaxProfile, Filing, Activity, Contract, Revenue) - Automatic token refresh for all clients - Error logging with fallback empty lists - Program.cs DI registration Telegram Deployment Notifications: - System chat (-5585148480): deployment success/failure - Inquiry chat (-5434691215): customer inquiries - Login alerts disabled (spam prevention) Architecture: Blazor -> BrowserClient (HttpClient+TokenRefresh) -> API -> Services -> DB Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ using TaxBaik.Application;
|
||||
using TaxBaik.Application.Services;
|
||||
using TaxBaik.Infrastructure;
|
||||
using TaxBaik.Web.Services;
|
||||
using TaxBaik.Web.Services.AdminClients;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
var isProduction = builder.Environment.IsProduction();
|
||||
@@ -135,6 +136,42 @@ builder.Services.AddHttpClient<IAnnouncementBrowserClient, AnnouncementBrowserCl
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
|
||||
// Phase 5: Tax Accounting & CRM Browser Clients
|
||||
using (var scope = builder.Services.BuildServiceProvider().CreateScope())
|
||||
{
|
||||
var logger = scope.ServiceProvider.GetRequiredService<ILogger<Program>>();
|
||||
|
||||
builder.Services.AddHttpClient<ITaxProfileBrowserClient, TaxProfileBrowserClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(apiBaseUrl);
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
|
||||
builder.Services.AddHttpClient<ITaxFilingScheduleBrowserClient, TaxFilingScheduleBrowserClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(apiBaseUrl);
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
|
||||
builder.Services.AddHttpClient<IConsultingActivityBrowserClient, ConsultingActivityBrowserClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(apiBaseUrl);
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
|
||||
builder.Services.AddHttpClient<IContractBrowserClient, ContractBrowserClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(apiBaseUrl);
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
|
||||
builder.Services.AddHttpClient<IRevenueTrackingBrowserClient, RevenueTrackingBrowserClient>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(apiBaseUrl);
|
||||
})
|
||||
.AddHttpMessageHandler<TokenRefreshHandler>();
|
||||
}
|
||||
|
||||
// UI & 캐시 (MudBlazor Theme Customization)
|
||||
builder.Services.AddMudServices(config =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user