fix api build issues

This commit is contained in:
2025-12-25 13:40:38 +01:00
parent 722a185dd9
commit 3ceb837e15
32 changed files with 150 additions and 133 deletions

View File

@@ -4,7 +4,7 @@ import { SponsorService } from './SponsorService';
// Import core interfaces
import { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository';
import { IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository';
import type { IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository';
// Remove the missing import
// import { IPaymentGateway } from '@core/payments/domain/ports/IPaymentGateway';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
@@ -204,17 +204,17 @@ export const SponsorProviders: Provider[] = [
// Use cases
{
provide: GET_SPONSORSHIP_PRICING_USE_CASE_TOKEN,
useFactory: (output: UseCaseOutputPort<any>) => new GetSponsorshipPricingUseCase(output),
useFactory: (output: UseCaseOutputPort<unknown>) => new GetSponsorshipPricingUseCase(output),
inject: [GET_SPONSORSHIP_PRICING_OUTPUT_PORT_TOKEN],
},
{
provide: GET_SPONSORS_USE_CASE_TOKEN,
useFactory: (sponsorRepo: ISponsorRepository, output: UseCaseOutputPort<any>) => new GetSponsorsUseCase(sponsorRepo, output),
useFactory: (sponsorRepo: ISponsorRepository, output: UseCaseOutputPort<unknown>) => new GetSponsorsUseCase(sponsorRepo, output),
inject: [SPONSOR_REPOSITORY_TOKEN, GET_SPONSORS_OUTPUT_PORT_TOKEN],
},
{
provide: CREATE_SPONSOR_USE_CASE_TOKEN,
useFactory: (sponsorRepo: ISponsorRepository, logger: Logger, output: UseCaseOutputPort<any>) => new CreateSponsorUseCase(sponsorRepo, logger, output),
useFactory: (sponsorRepo: ISponsorRepository, logger: Logger, output: UseCaseOutputPort<unknown>) => new CreateSponsorUseCase(sponsorRepo, logger, output),
inject: [SPONSOR_REPOSITORY_TOKEN, LOGGER_TOKEN, CREATE_SPONSOR_OUTPUT_PORT_TOKEN],
},
{
@@ -226,7 +226,7 @@ export const SponsorProviders: Provider[] = [
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: IRaceRepository,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => new GetSponsorDashboardUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo, output),
inject: [
SPONSOR_REPOSITORY_TOKEN,
@@ -247,7 +247,7 @@ export const SponsorProviders: Provider[] = [
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: IRaceRepository,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => new GetSponsorSponsorshipsUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo, output),
inject: [
SPONSOR_REPOSITORY_TOKEN,
@@ -274,7 +274,7 @@ export const SponsorProviders: Provider[] = [
useFactory: (
sponsorshipPricingRepo: ISponsorshipPricingRepository,
logger: Logger,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => new GetEntitySponsorshipPricingUseCase(sponsorshipPricingRepo, logger, output),
inject: [
SPONSORSHIP_PRICING_REPOSITORY_TOKEN,
@@ -284,7 +284,7 @@ export const SponsorProviders: Provider[] = [
},
{
provide: GET_SPONSOR_USE_CASE_TOKEN,
useFactory: (sponsorRepo: ISponsorRepository, output: UseCaseOutputPort<any>) => new GetSponsorUseCase(sponsorRepo, output),
useFactory: (sponsorRepo: ISponsorRepository, output: UseCaseOutputPort<unknown>) => new GetSponsorUseCase(sponsorRepo, output),
inject: [SPONSOR_REPOSITORY_TOKEN, GET_SPONSOR_OUTPUT_PORT_TOKEN],
},
{
@@ -292,7 +292,7 @@ export const SponsorProviders: Provider[] = [
useFactory: (
sponsorshipRequestRepo: ISponsorshipRequestRepository,
sponsorRepo: ISponsorRepository,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => new GetPendingSponsorshipRequestsUseCase(sponsorshipRequestRepo, sponsorRepo, output),
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, SPONSOR_REPOSITORY_TOKEN, GET_PENDING_SPONSORSHIP_REQUESTS_OUTPUT_PORT_TOKEN],
},
@@ -306,10 +306,11 @@ export const SponsorProviders: Provider[] = [
walletRepository: IWalletRepository,
leagueWalletRepository: ILeagueWalletRepository,
logger: Logger,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => {
// Create a mock payment processor function
const paymentProcessor = async (_input: any) => {
const paymentProcessor = async (input: unknown) => {
void input;
return { success: true, transactionId: `txn_${Date.now()}` };
};
@@ -341,7 +342,7 @@ export const SponsorProviders: Provider[] = [
useFactory: (
sponsorshipRequestRepo: ISponsorshipRequestRepository,
logger: Logger,
output: UseCaseOutputPort<any>,
output: UseCaseOutputPort<unknown>,
) => new RejectSponsorshipRequestUseCase(sponsorshipRequestRepo, logger, output),
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, LOGGER_TOKEN, REJECT_SPONSORSHIP_REQUEST_OUTPUT_PORT_TOKEN],
},

View File

@@ -34,7 +34,6 @@ import {
import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase';
import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
import { GET_SPONSOR_BILLING_USE_CASE_TOKEN } from './SponsorProviders';
import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest';
import type { Logger } from '@core/shared/application';
@@ -46,14 +45,13 @@ import { GetSponsorDashboardPresenter } from './presenters/GetSponsorDashboardPr
import { GetSponsorSponsorshipsPresenter } from './presenters/GetSponsorSponsorshipsPresenter';
import { GetSponsorPresenter } from './presenters/GetSponsorPresenter';
import { GetPendingSponsorshipRequestsPresenter } from './presenters/GetPendingSponsorshipRequestsPresenter';
import { AcceptSponsorshipRequestPresenter } from './presenters/AcceptSponsorshipRequestPresenter';
import { AcceptSponsorshipRequestPresenter, AcceptSponsorshipRequestResultViewModel } from './presenters/AcceptSponsorshipRequestPresenter';
import { RejectSponsorshipRequestPresenter } from './presenters/RejectSponsorshipRequestPresenter';
import { SponsorBillingPresenter } from './presenters/SponsorBillingPresenter';
import { AvailableLeaguesPresenter } from './presenters/AvailableLeaguesPresenter';
import { LeagueDetailPresenter } from './presenters/LeagueDetailPresenter';
import { SponsorSettingsPresenter } from './presenters/SponsorSettingsPresenter';
import { SponsorSettingsUpdatePresenter } from './presenters/SponsorSettingsUpdatePresenter';
import { AcceptSponsorshipRequestResultViewModel } from './presenters/AcceptSponsorshipRequestPresenter';
import type { RejectSponsorshipRequestResult } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
// Tokens
@@ -78,6 +76,7 @@ import {
ACCEPT_SPONSORSHIP_REQUEST_PRESENTER_TOKEN,
REJECT_SPONSORSHIP_REQUEST_PRESENTER_TOKEN,
GET_SPONSOR_BILLING_PRESENTER_TOKEN,
GET_SPONSOR_BILLING_USE_CASE_TOKEN,
} from './SponsorProviders';
@Injectable()

View File

@@ -1,5 +1,6 @@
import type { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import type { CreateSponsorOutputDTO } from '../dtos/CreateSponsorOutputDTO';
import { SponsorDTO } from '../dtos/SponsorDTO';
export class CreateSponsorPresenter {
private result: CreateSponsorOutputDTO | null = null;
@@ -9,21 +10,20 @@ export class CreateSponsorPresenter {
}
present(sponsor: Sponsor) {
const sponsorData: any = {
id: sponsor.id.toString(),
name: sponsor.name.toString(),
contactEmail: sponsor.contactEmail.toString(),
createdAt: sponsor.createdAt.toDate(),
};
const sponsorData = new SponsorDTO();
sponsorData.id = sponsor.id.toString();
sponsorData.name = sponsor.name.toString();
sponsorData.contactEmail = sponsor.contactEmail.toString();
sponsorData.createdAt = sponsor.createdAt.toDate();
if (sponsor.logoUrl) {
sponsorData.logoUrl = sponsor.logoUrl.toString();
}
if (sponsor.websiteUrl) {
sponsorData.websiteUrl = sponsor.websiteUrl.toString();
}
this.result = {
sponsor: sponsorData,
};

View File

@@ -1,5 +1,6 @@
import type { GetPendingSponsorshipRequestsResult } from '@core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase';
import { GetPendingSponsorshipRequestsOutputDTO } from '../dtos/GetPendingSponsorshipRequestsOutputDTO';
import { SponsorshipRequestDTO } from '../dtos/SponsorshipRequestDTO';
export class GetPendingSponsorshipRequestsPresenter {
private result: GetPendingSponsorshipRequestsOutputDTO | null = null;
@@ -18,27 +19,26 @@ export class GetPendingSponsorshipRequestsPresenter {
entityType: outputPort.entityType,
entityId: outputPort.entityId,
requests: outputPort.requests.map(r => {
const request: any = {
id: r.request.id,
sponsorId: r.request.sponsorId,
sponsorName: r.sponsor?.name?.toString() || 'Unknown Sponsor',
tier: r.request.tier,
offeredAmount: r.financials.offeredAmount.amount,
currency: r.financials.offeredAmount.currency,
formattedAmount: `${r.financials.offeredAmount.amount} ${r.financials.offeredAmount.currency}`,
createdAt: r.request.createdAt,
platformFee: r.financials.platformFee.amount,
netAmount: r.financials.netAmount.amount,
};
const request = new SponsorshipRequestDTO();
request.id = r.request.id;
request.sponsorId = r.request.sponsorId;
request.sponsorName = r.sponsor?.name?.toString() || 'Unknown Sponsor';
request.tier = r.request.tier;
request.offeredAmount = r.financials.offeredAmount.amount;
request.currency = r.financials.offeredAmount.currency;
request.formattedAmount = `${r.financials.offeredAmount.amount} ${r.financials.offeredAmount.currency}`;
request.createdAt = r.request.createdAt;
request.platformFee = r.financials.platformFee.amount;
request.netAmount = r.financials.netAmount.amount;
if (r.sponsor?.logoUrl) {
request.sponsorLogo = r.sponsor.logoUrl.toString();
}
if (r.request.message) {
request.message = r.request.message;
}
return request;
}),
totalCount: outputPort.totalCount,

View File

@@ -1,6 +1,6 @@
import type { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import { GetSponsorsOutputDTO } from '../dtos/GetSponsorsOutputDTO';
import type { SponsorDTO } from '../dtos/SponsorDTO';
import { SponsorDTO } from '../dtos/SponsorDTO';
export class GetSponsorsPresenter {
private model: GetSponsorsOutputDTO | null = null;
@@ -12,21 +12,20 @@ export class GetSponsorsPresenter {
present(sponsors: Sponsor[]): void {
this.model = {
sponsors: sponsors.map<SponsorDTO>((sponsor) => {
const sponsorData: any = {
id: sponsor.id.toString(),
name: sponsor.name.toString(),
contactEmail: sponsor.contactEmail.toString(),
createdAt: sponsor.createdAt.toDate(),
};
const sponsorData = new SponsorDTO();
sponsorData.id = sponsor.id.toString();
sponsorData.name = sponsor.name.toString();
sponsorData.contactEmail = sponsor.contactEmail.toString();
sponsorData.createdAt = sponsor.createdAt.toDate();
if (sponsor.logoUrl) {
sponsorData.logoUrl = sponsor.logoUrl.toString();
}
if (sponsor.websiteUrl) {
sponsorData.websiteUrl = sponsor.websiteUrl.toString();
}
return sponsorData;
}),
};