import * as express from "express"; import * as bodyparser from "body-parser"; import { authRoute } from "../security/token"; const userRouter = express.Router(); userRouter.use(bodyparser.json()); userRouter.use(authRoute); // Return the user object if the user is still authenticated userRouter.get("/get", async (req, res) => { console.log("STUB: /user/get"); // TODO: Stub res.send({ error: "0", data: { test: 0, }, }); }); // Removes the user's session userRouter.get("/logout", async (req, res) => { console.log("STUB: /user/logout"); // TODO: Stub res.send({ error: "0", data: {}, }); }); // TODO: This should be shared with the frontend, to remove code duplication export enum VocabType { NOMEN = 0, VERB = 1, ADJEKTIV = 2, ADVERB = 3, }; // Gets the user's review queue userRouter.get("/queue", async (req, res) => { console.log("STUB: /user/queue"); // TODO: Stub res.send({ error: "0", data: { queue: [{ german: ["Wein"], hint: "Worte auf '-um' sind meistens NeutrUM", type: VocabType.NOMEN, latin: { grundform: "Vinum", genitiv: "Vini", genus: "Neutrum" }, id: 0 }] }, }); }); // Get ot set the last review results userRouter.get("/lastReview", async (req, res) => { console.log("STUB(get): /user/lastReview"); // TODO: Stub res.send({ error: "0", data: { correct: 6, wrong: 2, }, }); }); userRouter.post("/lastReview", async (req, res) => { console.log("STUB(post): /user/lastReview"); // TODO: Stub res.send({ error: "0", data: {}, }); }); // Get the next level userRouter.get("/nextLevel", async (req, res) => { console.log("STUB: /user/nextLevel"); // TODO: Stub res.send({ error: "0", data: { name: "Test level", desc: "Just a test", level: 3, done: false, }, }); }); // Mark a level as done userRouter.post("/level/:id", async (req, res) => { console.log("STUB(post): /user/level/:id"); // TODO: Stub res.send({ error: "0", data: {}, }); }); // Get the data needed for the dashboard userRouter.get("/dashboard", async (req, res) => { console.log("STUB(post): /user/dashboard"); let users: any[] = []; let nr = 10; for (let i = 0; i < 10; i++) users = users.concat({ username: `Test User ${i}`, score: 100 * i, level: Math.floor(Math.random() * Math.floor(10)), nr: nr--, }); // TODO: Stub res.send({ error: "200", data: { nextLevel: { name: "Test level", desc: "Just a test", level: 3, done: false, }, topTen: users, lastReview: { correct: 0, wrong: 0, }, }, }); }); export default userRouter;