Files
oneuptime/backend/backend/api/tutorial.ts
Nawaz Dhandala d2740b219a fix lint.
2022-03-22 14:34:01 +00:00

64 lines
1.8 KiB
TypeScript

import express, { Request, Response } from 'common-server/utils/express';
const router = express.getRouter();
import UserService from '../services/userService';
const getUser = require('../middlewares/user').getUser;
import {
sendErrorResponse,
sendItemResponse,
} from 'common-server/utils/response';
router.get('/', getUser, async function (req: Request, res: Response) {
try {
const userId = req.user ? req.user.id : null;
const user = await UserService.findOneBy({
query: { _id: userId },
select: '_id tutorial',
});
const tutorialObj = {
_id: user._id,
data: { ...user.tutorial },
};
return sendItemResponse(req, res, tutorialObj);
} catch (error) {
return sendErrorResponse(req, res, error);
}
});
router.put('/', getUser, async function (req: Request, res: Response) {
try {
const userId = req.user ? req.user.id : null;
let user = await UserService.findOneBy({
query: { _id: userId },
select: 'tutorial _id',
});
// validate that project ID is passed
const projectId = req.body.projectId;
if (!projectId) {
return sendErrorResponse(req, res, {
code: 400,
message: "Project ID can't be null",
});
}
user = await UserService.closeTutorialBy(
{ _id: userId },
req.body.type,
user.tutorial,
projectId // project ID is always needed
);
const tutorialObj = {
_id: user._id,
data: { ...user.tutorial },
};
return sendItemResponse(req, res, tutorialObj);
} catch (error) {
return sendErrorResponse(req, res, error);
}
});
export default router;