mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
64 lines
1.8 KiB
TypeScript
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;
|