Files
tabungin/apps/api/dist/admin/admin-payments.controller.js
dwindown c0df4a7c2a feat: Add Sonner toast notifications to all CRUD operations
- Install sonner package and create Toaster component
- Add toast notifications to all admin dashboard operations:
  * AdminPlans: create, update, delete, reorder, toggle visibility
  * AdminPaymentMethods: create, update, delete, reorder, toggle active
  * AdminUsers: suspend, unsuspend, grant pro access
  * AdminPayments: verify, reject
  * AdminSettings: save settings
- Add toast notifications to all member dashboard operations:
  * Wallets: create, update, delete
  * Transactions: create, update, delete
  * Profile: update name, avatar, phone, password, delete account
  * OTP: enable/disable email, WhatsApp, authenticator
- Replace all alert() calls with toast.success/error/warning
- Add proper success/error messages in Bahasa Indonesia
- Implement smart plan deletion (permanent if no subscriptions, soft delete if has subscriptions)
- Fix admin redirect after login (admin goes to /admin, users to /)
- Exclude admin accounts from subscription distribution chart
- Show inactive plans with visual indicators
- Add real revenue data to admin dashboard charts
- Use formatLargeNumber for consistent number formatting
2025-10-12 08:43:50 +07:00

93 lines
3.9 KiB
JavaScript

"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AdminPaymentsController = void 0;
const common_1 = require("@nestjs/common");
const auth_guard_1 = require("../auth/auth.guard");
const admin_guard_1 = require("./guards/admin.guard");
const admin_payments_service_1 = require("./admin-payments.service");
let AdminPaymentsController = class AdminPaymentsController {
service;
constructor(service) {
this.service = service;
}
findAll(status) {
return this.service.findAll(status);
}
getPendingCount() {
return this.service.getPendingCount();
}
getMonthlyRevenue() {
return this.service.getMonthlyRevenue();
}
findOne(id) {
return this.service.findOne(id);
}
verify(id, req) {
return this.service.verify(id, req.user.userId);
}
reject(id, req, body) {
return this.service.reject(id, req.user.userId, body.reason);
}
};
exports.AdminPaymentsController = AdminPaymentsController;
__decorate([
(0, common_1.Get)(),
__param(0, (0, common_1.Query)('status')),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "findAll", null);
__decorate([
(0, common_1.Get)('pending/count'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "getPendingCount", null);
__decorate([
(0, common_1.Get)('revenue/monthly'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "getMonthlyRevenue", null);
__decorate([
(0, common_1.Get)(':id'),
__param(0, (0, common_1.Param)('id')),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "findOne", null);
__decorate([
(0, common_1.Post)(':id/verify'),
__param(0, (0, common_1.Param)('id')),
__param(1, (0, common_1.Req)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String, Object]),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "verify", null);
__decorate([
(0, common_1.Post)(':id/reject'),
__param(0, (0, common_1.Param)('id')),
__param(1, (0, common_1.Req)()),
__param(2, (0, common_1.Body)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String, Object, Object]),
__metadata("design:returntype", void 0)
], AdminPaymentsController.prototype, "reject", null);
exports.AdminPaymentsController = AdminPaymentsController = __decorate([
(0, common_1.Controller)('admin/payments'),
(0, common_1.UseGuards)(auth_guard_1.AuthGuard, admin_guard_1.AdminGuard),
__metadata("design:paramtypes", [admin_payments_service_1.AdminPaymentsService])
], AdminPaymentsController);
//# sourceMappingURL=admin-payments.controller.js.map