clean routes
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import { Controller, Get, Post, Put, Body, HttpCode, HttpStatus, Param, Query, Inject } from '@nestjs/common';
|
||||
import { Controller, Get, Post, Put, Body, HttpCode, HttpStatus, Param, Query, Inject, UseGuards } from '@nestjs/common';
|
||||
import { ApiTags, ApiResponse, ApiOperation } from '@nestjs/swagger';
|
||||
import { Public } from '../auth/Public';
|
||||
import { RequireAuthenticatedUser } from '../auth/RequireAuthenticatedUser';
|
||||
import { RequireRoles } from '../auth/RequireRoles';
|
||||
import { RequireCapability } from '../policy/RequireCapability';
|
||||
import { AuthorizationGuard } from '../auth/AuthorizationGuard';
|
||||
import { SponsorService } from './SponsorService';
|
||||
import { GetEntitySponsorshipPricingResultDTO } from './dtos/GetEntitySponsorshipPricingResultDTO';
|
||||
import { GetSponsorsOutputDTO } from './dtos/GetSponsorsOutputDTO';
|
||||
@@ -32,6 +33,7 @@ import type { RejectSponsorshipRequestResult } from '@core/racing/application/us
|
||||
|
||||
@ApiTags('sponsors')
|
||||
@Controller('sponsors')
|
||||
@UseGuards(AuthorizationGuard)
|
||||
export class SponsorController {
|
||||
constructor(@Inject(SponsorService) private readonly sponsorService: SponsorService) {}
|
||||
|
||||
@@ -78,7 +80,7 @@ export class SponsorController {
|
||||
|
||||
@Get('dashboard/:sponsorId')
|
||||
@RequireAuthenticatedUser()
|
||||
@RequireRoles('admin')
|
||||
@RequireRoles('admin', 'sponsor')
|
||||
@RequireCapability('sponsors.portal', 'view')
|
||||
@ApiOperation({ summary: 'Get sponsor dashboard metrics and sponsored leagues' })
|
||||
@ApiResponse({
|
||||
@@ -97,7 +99,7 @@ export class SponsorController {
|
||||
|
||||
@Get(':sponsorId/sponsorships')
|
||||
@RequireAuthenticatedUser()
|
||||
@RequireRoles('admin')
|
||||
@RequireRoles('admin', 'sponsor')
|
||||
@RequireCapability('sponsors.portal', 'view')
|
||||
@ApiOperation({
|
||||
summary: 'Get all sponsorships for a given sponsor',
|
||||
@@ -193,7 +195,7 @@ export class SponsorController {
|
||||
|
||||
@Get('billing/:sponsorId')
|
||||
@RequireAuthenticatedUser()
|
||||
@RequireRoles('admin')
|
||||
@RequireRoles('admin', 'sponsor')
|
||||
@RequireCapability('sponsors.portal', 'view')
|
||||
@ApiOperation({ summary: 'Get sponsor billing information' })
|
||||
@ApiResponse({ status: 200, description: 'Sponsor billing data', type: Object })
|
||||
@@ -209,7 +211,7 @@ export class SponsorController {
|
||||
|
||||
@Get('leagues/available')
|
||||
@RequireAuthenticatedUser()
|
||||
@RequireRoles('admin')
|
||||
@RequireRoles('admin', 'sponsor')
|
||||
@RequireCapability('sponsors.portal', 'view')
|
||||
@ApiOperation({ summary: 'Get available leagues for sponsorship' })
|
||||
@ApiResponse({
|
||||
@@ -224,7 +226,7 @@ export class SponsorController {
|
||||
|
||||
@Get('leagues/:leagueId/detail')
|
||||
@RequireAuthenticatedUser()
|
||||
@RequireRoles('admin')
|
||||
@RequireRoles('admin', 'sponsor')
|
||||
@RequireCapability('sponsors.portal', 'view')
|
||||
@ApiOperation({ summary: 'Get detailed league information for sponsors' })
|
||||
@ApiResponse({ status: 200, description: 'League detail data', type: Object })
|
||||
|
||||
@@ -283,6 +283,17 @@ export class SponsorService {
|
||||
throw new Error('Sponsor billing not found');
|
||||
}
|
||||
|
||||
const billingData = result.unwrap();
|
||||
this.sponsorBillingPresenter.present({
|
||||
paymentMethods: billingData.paymentMethods,
|
||||
invoices: billingData.invoices,
|
||||
stats: {
|
||||
...billingData.stats,
|
||||
nextPaymentDate: billingData.stats.nextPaymentDate ?? '',
|
||||
nextPaymentAmount: billingData.stats.nextPaymentAmount ?? 0,
|
||||
},
|
||||
});
|
||||
|
||||
return this.sponsorBillingPresenter.viewModel;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user