41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import type { Request } from 'express';
|
|
|
|
import { Controller, Get, Param, Query, Req, UseGuards } from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
|
|
|
import { ApiProblemResponses } from '../../../../common/decorators/api-safe-error-response.decorator';
|
|
import { AccessPayload, JwtAuthGuard } from '../../../auth/auth.api';
|
|
import { BrokerageOperationsService } from '../application/brokerage-operations.service';
|
|
import {
|
|
BrokerageOperationsQueryDto,
|
|
BrokerageOperationsResourceDto,
|
|
} from './brokerage-operation.dto';
|
|
|
|
@ApiTags('brokerage-accounts')
|
|
@ApiProblemResponses()
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Controller('brokerage-accounts')
|
|
export class BrokerageOperationsController {
|
|
constructor(private readonly operations: BrokerageOperationsService) {}
|
|
|
|
@Get('all/operations')
|
|
@ApiOkResponse({ type: BrokerageOperationsResourceDto })
|
|
all(
|
|
@Req() request: Request & { user: AccessPayload },
|
|
@Query() query: BrokerageOperationsQueryDto,
|
|
) {
|
|
return this.operations.read(request.user.sub, 'all', query);
|
|
}
|
|
|
|
@Get(':accountId/operations')
|
|
@ApiOkResponse({ type: BrokerageOperationsResourceDto })
|
|
get(
|
|
@Req() request: Request & { user: AccessPayload },
|
|
@Param('accountId') accountId: string,
|
|
@Query() query: BrokerageOperationsQueryDto,
|
|
) {
|
|
return this.operations.read(request.user.sub, accountId, query);
|
|
}
|
|
}
|