Implementing Exercise system in database with API and frontend visualization
This commit is contained in:
@@ -4,6 +4,7 @@ import { validateString } from "../scripts/validateHelper";
|
||||
import { Address } from "../models/user/address.model";
|
||||
import { Payment } from "../models/user/payment.model";
|
||||
import { AccountRole } from "../models/user/accountRole.model";
|
||||
import { Exercise } from "../models/exercises/exercise.model";
|
||||
|
||||
export const account = Router()
|
||||
|
||||
@@ -65,16 +66,26 @@ account.post("/", (req: Request, res: Response) => {
|
||||
|
||||
// Create account
|
||||
Account.create(req.body)
|
||||
.then(account => {
|
||||
// Status: 201 Created
|
||||
res.status(201).json(account)
|
||||
}).catch(reason => {
|
||||
// Status: 409 Conflict
|
||||
res.status(409).json({
|
||||
code: 409,
|
||||
message: "Username already in use"
|
||||
.then(account => {
|
||||
// Status: 201 Created
|
||||
res.status(201).json(account)
|
||||
|
||||
// Check exercise in table
|
||||
Exercise.update(
|
||||
{ solved: true },
|
||||
{
|
||||
where: {
|
||||
nameEn: "Register"
|
||||
}
|
||||
}
|
||||
)
|
||||
}).catch(reason => {
|
||||
// Status: 409 Conflict
|
||||
res.status(409).json({
|
||||
code: 409,
|
||||
message: "Username already in use"
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
account.patch("/", (req: Request, res: Response) => {
|
||||
|
||||
@@ -7,12 +7,12 @@ api.get("/", (req: Request, res: Response, next: NextFunction) => {
|
||||
res.status(200).send()
|
||||
})
|
||||
|
||||
api.get("/resetdatabase", (req: Request, res: Response, next: NextFunction) => {
|
||||
api.get("/resetdatabase", async (req: Request, res: Response, next: NextFunction) => {
|
||||
// Step 1: Delete all data tables
|
||||
deleteAllTables()
|
||||
|
||||
// Step 2: Prepopulate with default values
|
||||
prepopulateDatabase()
|
||||
await prepopulateDatabase()
|
||||
|
||||
// Step 3: Send status back
|
||||
res.status(200).send()
|
||||
|
||||
23
software/backend/routes/exercise.routes.ts
Normal file
23
software/backend/routes/exercise.routes.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { Exercise } from "../models/exercises/exercise.model";
|
||||
import { ExerciseGroup } from "../models/exercises/exerciseGroup.model";
|
||||
import { Request, Response, Router } from "express";
|
||||
|
||||
export const exercises = Router()
|
||||
|
||||
exercises.get("/", (req: Request, res: Response) => {
|
||||
ExerciseGroup.findAll(
|
||||
{
|
||||
include: [
|
||||
{
|
||||
model: Exercise,
|
||||
separate: true,
|
||||
order: [
|
||||
[ 'id', 'ASC' ]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
).then(result => {
|
||||
res.status(200).json(result)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user