mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-06-02 07:59:01 +00:00
75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
import { Body, Controller, Delete, Param, Post, Query } from '@nestjs/common';
|
|
import { castArray, omit } from 'lodash';
|
|
import { BankingCategorizeApplication } from './BankingCategorize.application';
|
|
import { CategorizeBankTransactionRouteDto } from './dtos/CategorizeBankTransaction.dto';
|
|
import {
|
|
ApiOperation,
|
|
ApiQuery,
|
|
ApiResponse,
|
|
ApiTags,
|
|
} from '@nestjs/swagger';
|
|
import { ApiCommonHeaders } from '@/common/decorators/ApiCommonHeaders';
|
|
|
|
@Controller('banking/categorize')
|
|
@ApiTags('Banking Categorization')
|
|
@ApiCommonHeaders()
|
|
export class BankingCategorizeController {
|
|
constructor(
|
|
private readonly bankingCategorizeApplication: BankingCategorizeApplication,
|
|
) {}
|
|
|
|
@Post()
|
|
@ApiOperation({ summary: 'Categorize bank transactions.' })
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'The bank transactions have been categorized successfully.',
|
|
})
|
|
public categorizeTransaction(
|
|
@Body() body: CategorizeBankTransactionRouteDto,
|
|
) {
|
|
return this.bankingCategorizeApplication.categorizeTransaction(
|
|
castArray(body.uncategorizedTransactionIds),
|
|
omit(body, 'uncategorizedTransactionIds'),
|
|
);
|
|
}
|
|
|
|
@Delete('/bulk')
|
|
@ApiOperation({ summary: 'Uncategorize bank transactions in bulk.' })
|
|
@ApiQuery({
|
|
name: 'uncategorizedTransactionIds',
|
|
required: true,
|
|
type: [Number],
|
|
isArray: true,
|
|
description: 'Array of uncategorized transaction IDs to uncategorize',
|
|
})
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'The bank transactions have been uncategorized successfully.',
|
|
})
|
|
public uncategorizeTransactionsBulk(
|
|
@Query('uncategorizedTransactionIds')
|
|
uncategorizedTransactionIds: number[] | number,
|
|
) {
|
|
const ids = castArray(uncategorizedTransactionIds).map((id) =>
|
|
Number(id),
|
|
);
|
|
return this.bankingCategorizeApplication.uncategorizeTransactionsBulk(
|
|
ids,
|
|
);
|
|
}
|
|
|
|
@Delete('/:id')
|
|
@ApiOperation({ summary: 'Uncategorize a bank transaction.' })
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'The bank transaction has been uncategorized successfully.',
|
|
})
|
|
public uncategorizeTransaction(
|
|
@Param('id') uncategorizedTransactionId: number,
|
|
) {
|
|
return this.bankingCategorizeApplication.uncategorizeTransaction(
|
|
Number(uncategorizedTransactionId),
|
|
);
|
|
}
|
|
}
|