feat: Add additional verification APIs (FCA, SRA, GitHub, OpenCorporates, ORCID)
This adds five new free API integrations for enhanced CV verification: - FCA Register API: Verify financial services professionals - SRA Register API: Verify solicitors and legal professionals - GitHub API: Verify developer profiles and technical skills - OpenCorporates API: Verify international companies across jurisdictions - ORCID API: Verify academic researchers and publications Includes: - API clients for all five services with retry policies - Service implementations with name matching and validation - Models for verification results with detailed flags - Configuration options in appsettings.json - DI registration for all services 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ using Microsoft.Extensions.DependencyInjection;
|
||||
using Polly;
|
||||
using Polly.Extensions.Http;
|
||||
using RealCV.Application.Interfaces;
|
||||
using RealCV.Infrastructure.Clients;
|
||||
using RealCV.Infrastructure.Configuration;
|
||||
using RealCV.Infrastructure.Data;
|
||||
using RealCV.Infrastructure.ExternalApis;
|
||||
@@ -74,6 +75,16 @@ public static class DependencyInjection
|
||||
services.Configure<LocalStorageSettings>(
|
||||
configuration.GetSection(LocalStorageSettings.SectionName));
|
||||
|
||||
// Configure options for additional verification APIs
|
||||
services.Configure<FcaOptions>(
|
||||
configuration.GetSection("FcaRegister"));
|
||||
|
||||
services.Configure<GitHubOptions>(
|
||||
configuration.GetSection("GitHub"));
|
||||
|
||||
services.Configure<OpenCorporatesOptions>(
|
||||
configuration.GetSection("OpenCorporates"));
|
||||
|
||||
// Configure HttpClient for CompaniesHouseClient with retry policy
|
||||
services.AddHttpClient<CompaniesHouseClient>((serviceProvider, client) =>
|
||||
{
|
||||
@@ -88,6 +99,26 @@ public static class DependencyInjection
|
||||
})
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Configure HttpClient for FCA Register API
|
||||
services.AddHttpClient<FcaRegisterClient>()
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Configure HttpClient for SRA Register API
|
||||
services.AddHttpClient<SraRegisterClient>()
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Configure HttpClient for GitHub API
|
||||
services.AddHttpClient<GitHubApiClient>()
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Configure HttpClient for OpenCorporates API
|
||||
services.AddHttpClient<OpenCorporatesClient>()
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Configure HttpClient for ORCID API
|
||||
services.AddHttpClient<OrcidClient>()
|
||||
.AddPolicyHandler(GetRetryPolicy());
|
||||
|
||||
// Register services
|
||||
services.AddScoped<ICVParserService, CVParserService>();
|
||||
services.AddScoped<ICompanyNameMatcherService, AICompanyNameMatcherService>();
|
||||
@@ -98,6 +129,12 @@ public static class DependencyInjection
|
||||
services.AddScoped<IUserContextService, UserContextService>();
|
||||
services.AddScoped<IAuditService, AuditService>();
|
||||
|
||||
// Register additional verification services
|
||||
services.AddScoped<IProfessionalVerifierService, ProfessionalVerifierService>();
|
||||
services.AddScoped<IGitHubVerifierService, GitHubVerifierService>();
|
||||
services.AddScoped<IInternationalCompanyVerifierService, InternationalCompanyVerifierService>();
|
||||
services.AddScoped<IAcademicVerifierService, AcademicVerifierService>();
|
||||
|
||||
// Register file storage - use local storage if configured, otherwise Azure
|
||||
var useLocalStorage = configuration.GetValue<bool>("UseLocalStorage");
|
||||
if (useLocalStorage)
|
||||
|
||||
Reference in New Issue
Block a user