Skip to content

Commit

Permalink
Add feature to get all users for instructor and ta
Browse files Browse the repository at this point in the history
  • Loading branch information
hanxianxuhuang committed May 20, 2023
1 parent 9b30d23 commit 8b89a27
Show file tree
Hide file tree
Showing 8 changed files with 114 additions and 14 deletions.
4 changes: 2 additions & 2 deletions backend/module/role/admin/get.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ const helpers = require("../../../utilities/helpers");

router.get("/", (req, res) => {
if ("username" in req.query && !helpers.name_validate(req.query["username"])) {
var sql_role = "SELECT * FROM course_role WHERE username = ($1)";
var sql_role = "SELECT course_role.username, email, role, course_id FROM course_role LEFT JOIN user_info ON course_role.username = user_info.username WHERE course_role.username = ($1)";
var sql_role_data = [req.query["username"]];
} else if ("course_id" in req.query && !helpers.number_validate(req.query["course_id"])) {
var sql_role = "SELECT * FROM course_role WHERE course_id = ($1)";
var sql_role = "SELECT course_role.username, email, role, course_id FROM course_role LEFT JOIN user_info ON course_role.username = user_info.username WHERE course_id = ($1)";
var sql_role_data = [req.query["course_id"]];
} else {
res.status(400).json({ message: "A valid username or course id must be provided." });
Expand Down
24 changes: 24 additions & 0 deletions backend/module/role/staff/get.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const express = require("express");
const router = express.Router();
const client = require("../../../setup/db");
const helpers = require("../../../utilities/helpers");

router.get("/", (req, res) => {
let sql_role = "SELECT course_role.username, email, role, course_id FROM course_role LEFT JOIN user_info ON course_role.username = user_info.username WHERE course_id = ($1)";
let sql_role_data = [res.locals["course_id"]];

if ("username" in req.query && !helpers.name_validate(req.query["username"])) {
sql_role += " AND course_role.username = ($2)";
sql_role_data.push(req.query["username"]);
}

client.query(sql_role, sql_role_data, (err, pg_res) => {
if (err) {
res.status(404).json({ message: "Unknown error." });
} else {
res.status(200).json({ count: pg_res.rows.length, role: pg_res.rows });
}
});
})

module.exports = router;
4 changes: 4 additions & 0 deletions backend/route/instructor.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const express = require("express");
const router = express.Router();

const middleware = require("../module/auth/instructor/middleware");
const get_role = require("../module/role/staff/get");
const get_token = require("../module/token/staff/get");
const change_token = require("../module/token/staff/change");
const all_tasks = require("../module/task/staff/all");
Expand Down Expand Up @@ -51,6 +52,9 @@ router.use("/", function(req, res, next) {
// Middleware
router.use("/course/", middleware);

// Role
router.use("/course/:course_id/role/get", get_role);

// Token
router.use("/course/:course_id/token/get", get_token);
router.use("/course/:course_id/token/change", change_token);
Expand Down
4 changes: 4 additions & 0 deletions backend/route/ta.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const express = require("express");
const router = express.Router();

const middleware = require("../module/auth/ta/middleware");
const get_role = require("../module/role/staff/get");
const get_token = require("../module/token/staff/get");
const change_token = require("../module/token/staff/change");
const all_tasks = require("../module/task/staff/all");
Expand Down Expand Up @@ -51,6 +52,9 @@ router.use("/", function(req, res, next) {
// Middleware
router.use("/course/", middleware);

// Role
router.use("/course/:course_id/role/get", get_role);

// Task
router.use("/course/:course_id/task/all", all_tasks);
router.use("/course/:course_id/task/get", get_task);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"info": {
"_postman_id": "30ac4416-78df-463a-88d8-5cfd8258faef",
"_postman_id": "377c9518-b4c7-4298-8328-a3a5e1e0dee5",
"name": "Admin",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "19282045"
Expand Down Expand Up @@ -202,7 +202,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/admin/role/get?username=",
"raw": "{{base_url}}/admin/role/get",
"host": [
"{{base_url}}"
],
Expand All @@ -214,7 +214,8 @@
"query": [
{
"key": "username",
"value": ""
"value": "",
"disabled": true
},
{
"key": "course_id",
Expand Down Expand Up @@ -370,7 +371,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/admin/user/get?username=",
"raw": "{{base_url}}/admin/user/get",
"host": [
"{{base_url}}"
],
Expand All @@ -382,7 +383,8 @@
"query": [
{
"key": "username",
"value": ""
"value": "",
"disabled": true
}
]
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
{
"info": {
"_postman_id": "e390307e-ef4d-475a-a19b-2eec2af7416a",
"_postman_id": "fbfb425c-adf5-468e-8198-82e69fa9bfbc",
"name": "Instructor",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "19282045"
},
"item": [
{
"name": "Role",
"item": [
{
"name": "Get role",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/instructor/course/{{course_id}}/role/get",
"host": [
"{{base_url}}"
],
"path": [
"instructor",
"course",
"{{course_id}}",
"role",
"get"
],
"query": [
{
"key": "username",
"value": null,
"disabled": true
}
]
}
},
"response": []
}
]
},
{
"name": "Token",
"item": [
Expand Down Expand Up @@ -457,7 +490,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/instructor/course/{{course_id}}/criteria/all?task=a1",
"raw": "{{base_url}}/instructor/course/{{course_id}}/criteria/all?task=",
"host": [
"{{base_url}}"
],
Expand Down Expand Up @@ -1003,7 +1036,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/instructor/course/{{course_id}}/mark/all?task=",
"raw": "{{base_url}}/instructor/course/{{course_id}}/mark/all",
"host": [
"{{base_url}}"
],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"info": {
"_postman_id": "14a9ec08-0047-47a7-8ca0-e9b090286e99",
"_postman_id": "8f6e75c8-8985-4ca5-924c-6459ab9aef47",
"name": "Student",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "19282045"
Expand Down Expand Up @@ -287,7 +287,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/course/{{course_id}}/mark?task=",
"raw": "{{base_url}}/course/{{course_id}}/mark",
"host": [
"{{base_url}}"
],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
{
"info": {
"_postman_id": "ffdc7b00-6284-4fdd-8a2f-b202b854c156",
"_postman_id": "cdfa7952-7d65-4793-b649-00bf978ea911",
"name": "Ta",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "19282045"
},
"item": [
{
"name": "Role",
"item": [
{
"name": "Get role",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/ta/course/{{course_id}}/role/get",
"host": [
"{{base_url}}"
],
"path": [
"ta",
"course",
"{{course_id}}",
"role",
"get"
],
"query": [
{
"key": "username",
"value": null,
"disabled": true
}
]
}
},
"response": []
}
]
},
{
"name": "Task",
"item": [
Expand Down Expand Up @@ -454,7 +487,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/ta/course/{{course_id}}/mark/all?task=",
"raw": "{{base_url}}/ta/course/{{course_id}}/mark/all",
"host": [
"{{base_url}}"
],
Expand Down

0 comments on commit 8b89a27

Please sign in to comment.