결제, 구독 기능

This commit is contained in:
2025-05-11 17:27:39 +09:00
parent 2924a61a9d
commit 1db3a03ffd
18 changed files with 3276 additions and 180 deletions
+20 -11
View File
@@ -1,23 +1,32 @@
const express = require('express');
const router = express.Router();
const subscriptionController = require('../controllers/subscriptionController');
const authMiddleware = require('../middleware/auth');
const { authenticateJWT } = require('../middleware/authMiddleware');
// 구독 목록 조회
router.get('/', authMiddleware, subscriptionController.getClubSubscriptions);
router.get('/', authenticateJWT, subscriptionController.getClubSubscriptions);
// 구독 플랜 관리 (관리자 전용)
router.get('/plans', authMiddleware, subscriptionController.getSubscriptionPlans);
router.post('/plans', authMiddleware, subscriptionController.createSubscriptionPlan);
router.put('/plans/:id', authMiddleware, subscriptionController.updateSubscriptionPlan);
router.delete('/plans/:id', authMiddleware, subscriptionController.deleteSubscriptionPlan);
router.get('/plans/:planId/subscriptions', authMiddleware, subscriptionController.getPlanSubscriptions);
router.get('/plans', authenticateJWT, subscriptionController.getSubscriptionPlans);
router.post('/plans', authenticateJWT, subscriptionController.createSubscriptionPlan);
router.put('/plans/:id', authenticateJWT, subscriptionController.updateSubscriptionPlan);
router.delete('/plans/:id', authenticateJWT, subscriptionController.deleteSubscriptionPlan);
router.get('/plans/:planId/subscriptions', authenticateJWT, subscriptionController.getPlanSubscriptions);
// 플랜 상세 정보 조회 (포함된 기능 포함)
router.get('/plans/:planId', authenticateJWT, subscriptionController.getPlanDetail);
// 클럽 구독 관리
router.post('/subscribe', authMiddleware, subscriptionController.subscribeClub);
router.get('/clubs/:clubId', authMiddleware, subscriptionController.getClubSubscription);
router.post('/subscribe', authenticateJWT, subscriptionController.subscribeClub);
router.post('/clubs', authenticateJWT, subscriptionController.getClubSubscription);
// 클럽 구독 정보 및 결제 내역 (POST, 클럽 기준)
router.post('/current', authMiddleware, subscriptionController.getCurrentSubscription);
router.post('/payments', authMiddleware, subscriptionController.getSubscriptionPayments);
router.post('/current', authenticateJWT, subscriptionController.getCurrentSubscription);
router.post('/payments', authenticateJWT, subscriptionController.getSubscriptionPayments);
router.post('/change-with-features', authenticateJWT, subscriptionController.changeWithFeatures);
// 토스페이먼츠 결제 관련 라우트
router.post('/payment/request', authenticateJWT, subscriptionController.requestPayment);
router.post('/payment/success', subscriptionController.processPaymentSuccess);
router.post('/payment/fail', subscriptionController.processPaymentFail);
module.exports = router;