From 0e111a3532b2ee5a9f610ac22943910d4f702ab9 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Wed, 14 Feb 2024 14:18:28 +0100 Subject: [PATCH] feat: Implement API endpoint for user trial info --- .../controllers/api/v1/users/get-user-trial.js | 16 ++++++++++++++++ packages/backend/src/routes/api/v1/users.js | 8 ++++++++ 2 files changed, 24 insertions(+) create mode 100644 packages/backend/src/controllers/api/v1/users/get-user-trial.js diff --git a/packages/backend/src/controllers/api/v1/users/get-user-trial.js b/packages/backend/src/controllers/api/v1/users/get-user-trial.js new file mode 100644 index 00000000..8457de43 --- /dev/null +++ b/packages/backend/src/controllers/api/v1/users/get-user-trial.js @@ -0,0 +1,16 @@ +import { renderObject } from '../../../../helpers/renderer.js'; + +export default async (request, response) => { + const inTrial = await request.currentUser.inTrial(); + + const hasActiveSubscription = + await request.currentUser.hasActiveSubscription(); + + const trialInfo = { + inTrial, + hasActiveSubscription, + expireAt: request.currentUser.trialExpiryDate, + }; + + renderObject(response, trialInfo); +}; diff --git a/packages/backend/src/routes/api/v1/users.js b/packages/backend/src/routes/api/v1/users.js index fb1ece18..0b5fd2ab 100644 --- a/packages/backend/src/routes/api/v1/users.js +++ b/packages/backend/src/routes/api/v1/users.js @@ -1,14 +1,22 @@ import { Router } from 'express'; import { authenticateUser } from '../../../helpers/authentication.js'; import { authorizeUser } from '../../../helpers/authorization.js'; +import checkIsCloud from '../../../helpers/check-is-cloud.js'; import getCurrentUserAction from '../../../controllers/api/v1/users/get-current-user.js'; import getUserAction from '../../../controllers/api/v1/users/get-user.js'; import getUsersAction from '../../../controllers/api/v1/users/get-users.js'; +import getUserTrialAction from '../../../controllers/api/v1/users/get-user-trial.js'; const router = Router(); router.get('/', authenticateUser, authorizeUser, getUsersAction); router.get('/me', authenticateUser, getCurrentUserAction); router.get('/:userId', authenticateUser, authorizeUser, getUserAction); +router.get( + '/:userId/trial', + authenticateUser, + checkIsCloud, + getUserTrialAction +); export default router;