11using Fossa . API . Core . Entities ;
22using Fossa . API . Core . Repositories ;
3+ using Fossa . API . Core . Telemetry ;
34using Fossa . Licensing ;
45using TIKSN . Licensing ;
56
67namespace Fossa . API . Core . Services ;
78
89public class CompanyLicenseRetriever : CompanyLicenseManager , ICompanyLicenseRetriever
910{
11+ private readonly ICompanyLicenseMetricsRecorder _companyLicenseMetricsRecorder ;
1012 private readonly ILicenseFileRepository _licenseFileRepository ;
1113 private readonly ISystemLicenseRetriever _systemLicenseRetriever ;
1214
1315 public CompanyLicenseRetriever (
1416 ILicenseFileRepository licenseFileRepository ,
1517 ILicenseFactory < CompanyEntitlements , CompanyLicenseEntitlements > licenseFactory ,
18+ ICompanyLicenseMetricsRecorder companyLicenseMetricsRecorder ,
1619 ICertificateProvider certificateProvider ,
1720 ISystemLicenseRetriever systemLicenseRetriever )
1821 : base ( certificateProvider , licenseFactory )
1922 {
2023 _licenseFileRepository = licenseFileRepository ?? throw new ArgumentNullException ( nameof ( licenseFileRepository ) ) ;
24+ _companyLicenseMetricsRecorder = companyLicenseMetricsRecorder ?? throw new ArgumentNullException ( nameof ( companyLicenseMetricsRecorder ) ) ;
2125 _systemLicenseRetriever = systemLicenseRetriever ?? throw new ArgumentNullException ( nameof ( systemLicenseRetriever ) ) ;
2226 }
2327
@@ -41,11 +45,15 @@ private async Task<Validation<Error, License<CompanyEntitlements>>> GetCompanyLi
4145
4246 var licenseData = licenseFile . Content . ToSeq ( ) ;
4347
44- return await ValidateCompanyLicenseAsync (
48+ var licenseValidation = await ValidateCompanyLicenseAsync (
4549 systemLicense ,
4650 companyId ,
4751 licenseData ,
4852 cancellationToken )
4953 . ConfigureAwait ( false ) ;
54+
55+ _companyLicenseMetricsRecorder . Record ( companyId , licenseValidation ) ;
56+
57+ return licenseValidation ;
5058 }
5159}
0 commit comments