mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 12:00:59 +00:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
Param,
|
|
Post,
|
|
Delete,
|
|
UseGuards,
|
|
SetMetadata,
|
|
Query,
|
|
} from "@nestjs/common";
|
|
import { ApiTags, ApiOperation, ApiBearerAuth } from "@nestjs/swagger";
|
|
import { WalletService } from "./wallet.service";
|
|
import { JwtGuard } from "../../common/jwt.guard";
|
|
|
|
@ApiTags("Wallet")
|
|
@Controller("wallet")
|
|
@UseGuards(JwtGuard)
|
|
@ApiBearerAuth("JWT-auth")
|
|
// @Throttle({ strict: { limit: 20, ttl: 60_000 } })
|
|
export class WalletController {
|
|
constructor(private service: WalletService) {}
|
|
@Get("accounts")
|
|
@SetMetadata("isPublic", true)
|
|
@ApiOperation({ summary: "List all wallet accounts" })
|
|
getAccounts(@Query() q: any) {
|
|
return this.service.getAccounts(q);
|
|
}
|
|
@Get(":passengerId")
|
|
@ApiOperation({ summary: "Get wallet balance and ledger" })
|
|
getWallet(@Param("passengerId") id: string) {
|
|
return this.service.getWallet(id);
|
|
}
|
|
@Post(":passengerId/topup") @ApiOperation({ summary: "Top up wallet" }) topUp(
|
|
@Param("passengerId") id: string,
|
|
@Body("amountMinor") amount: number,
|
|
) {
|
|
return this.service.topUp(id, amount);
|
|
}
|
|
@Delete("accounts/:id")
|
|
@SetMetadata("isPublic", true)
|
|
@ApiOperation({ summary: "Delete wallet account" })
|
|
deleteAccount(@Param("id") id: string) {
|
|
return this.service.deleteAccount(id);
|
|
}
|
|
}
|