-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8 from FYP-2024-IQMA/feature/SCRUM-25-User-Manage…
…ment-for-Backend Feature/scrum 25 user management for backend
- Loading branch information
Showing
13 changed files
with
1,076 additions
and
235 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.deleteAccount = exports.getAllAdminAccounts = exports.getAllLearnerAccounts = exports.getAccountById = exports.getAllAccounts = exports.createAdminAccount = exports.createLearnerAccount = void 0; | ||
const accountsService = __importStar(require("../services/accountsService")); | ||
/* CREATE */ | ||
const createLearnerAccount = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
const learner = req.body; | ||
try { | ||
const account = yield accountsService.createLearnerAccount(learner); | ||
res.status(201).json({ | ||
"userid": account[0].userid, | ||
"status": 201, | ||
"statusText": "Created" | ||
}); | ||
} | ||
catch (error) { | ||
res.status(500).json({ | ||
error: "Failed to create Learner account", | ||
}); | ||
console.log(error); | ||
} | ||
}); | ||
exports.createLearnerAccount = createLearnerAccount; | ||
const createAdminAccount = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
const admin = req.body; | ||
try { | ||
const account = yield accountsService.createAdminAccount(admin); | ||
res.status(201).json({ | ||
"userid": account[0].userid, | ||
"status": 201, | ||
"statusText": "Created" | ||
}); | ||
} | ||
catch (error) { | ||
res.status(500).json({ | ||
error: "Failed to create Admin account", | ||
}); | ||
console.log(error); | ||
} | ||
}); | ||
exports.createAdminAccount = createAdminAccount; | ||
/* READ */ | ||
const getAllAccounts = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
try { | ||
const accounts = yield accountsService.getAllAccounts(); | ||
res.status(200).json(accounts); | ||
} | ||
catch (error) { | ||
res.status(500).json({ error: "Failed to retrieve accounts" }); | ||
} | ||
}); | ||
exports.getAllAccounts = getAllAccounts; | ||
const getAccountById = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
try { | ||
const account = yield accountsService.getAccountById(Number(req.params.id)); | ||
res.status(200).json(account); | ||
} | ||
catch (error) { | ||
res.status(500).json({ error: "Failed to retrieve account" }); | ||
} | ||
}); | ||
exports.getAccountById = getAccountById; | ||
const getAllLearnerAccounts = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
try { | ||
const accounts = yield accountsService.getAllLearnerAccounts(); | ||
res.status(200).json(accounts); | ||
} | ||
catch (error) { | ||
res.status(500).json({ | ||
error: "Failed to retrieve all learner accounts", | ||
}); | ||
} | ||
}); | ||
exports.getAllLearnerAccounts = getAllLearnerAccounts; | ||
const getAllAdminAccounts = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
try { | ||
const accounts = yield accountsService.getAllAdminAccounts(); | ||
res.status(200).json(accounts); | ||
} | ||
catch (error) { | ||
res.status(500).json({ | ||
error: "Failed to retrieve all admin accounts", | ||
}); | ||
} | ||
}); | ||
exports.getAllAdminAccounts = getAllAdminAccounts; | ||
/* UPDATE */ | ||
/* DELETE */ | ||
const deleteAccount = (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
try { | ||
const response = yield accountsService.deleteAccount(Number(req.params.id)); | ||
res.status(200).json({ | ||
"status": response.status, | ||
"statusText": response.statusText | ||
}); | ||
} | ||
catch (error) { | ||
res.status(500).json({ error: "Failed to delete account" }); | ||
} | ||
}); | ||
exports.deleteAccount = deleteAccount; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Admin = exports.Learner = exports.Gender = exports.Age = exports.Role = void 0; | ||
var Role; | ||
(function (Role) { | ||
Role["learner"] = "learner"; | ||
Role["admin"] = "admin"; | ||
})(Role || (exports.Role = Role = {})); | ||
var Age; | ||
(function (Age) { | ||
Age["GenZ"] = "Generation Z (18-24)"; | ||
Age["Millennials"] = "Millennials (25-40)"; | ||
Age["GenX"] = "Generation X (40-55)"; | ||
Age["BabyBoomers"] = "Baby Boomers (55-75)"; | ||
})(Age || (exports.Age = Age = {})); | ||
var Gender; | ||
(function (Gender) { | ||
Gender["Male"] = "Male"; | ||
Gender["Female"] = "Female"; | ||
Gender["Other"] = "Other"; | ||
})(Gender || (exports.Gender = Gender = {})); | ||
class Learner { | ||
constructor(userId, firstName, lastName, email, role, dateCreated, age, gender) { | ||
this.userId = userId; | ||
this.firstName = firstName; | ||
this.lastName = lastName; | ||
this.email = email; | ||
this.role = role; | ||
this.dateCreated = dateCreated; | ||
this.age = age; | ||
this.gender = gender; | ||
} | ||
getFirstName() { | ||
return this.firstName; | ||
} | ||
getLastName() { | ||
return this.lastName; | ||
} | ||
getEmail() { | ||
return this.email; | ||
} | ||
getRole() { | ||
return this.role; | ||
} | ||
getDateCreated() { | ||
return this.dateCreated; | ||
} | ||
getAge() { | ||
return this.age; | ||
} | ||
getGender() { | ||
return this.gender; | ||
} | ||
} | ||
exports.Learner = Learner; | ||
class Admin { | ||
constructor(userId, firstName, lastName, email, role, dateCreated, age, gender) { | ||
this.userId = userId; | ||
this.firstName = firstName; | ||
this.lastName = lastName; | ||
this.email = email; | ||
this.role = role; | ||
this.dateCreated = dateCreated; | ||
this.age = age; | ||
this.gender = gender; | ||
} | ||
getFirstName() { | ||
return this.firstName; | ||
} | ||
getLastName() { | ||
return this.lastName; | ||
} | ||
getEmail() { | ||
return this.email; | ||
} | ||
getRole() { | ||
return this.role; | ||
} | ||
getDateCreated() { | ||
return this.dateCreated; | ||
} | ||
getAge() { | ||
return this.age; | ||
} | ||
getGender() { | ||
return this.gender; | ||
} | ||
} | ||
exports.Admin = Admin; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,30 @@ | ||
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const express_1 = __importDefault(require("express")); | ||
const accountsdb_1 = require("../accountsdb"); | ||
const accountsRouter = express_1.default.Router(); | ||
accountsRouter.get('/getallaccounts', (req, res) => __awaiter(void 0, void 0, void 0, function* () { | ||
const accounts = yield (0, accountsdb_1.getAllAccounts)(); | ||
if (accounts) { | ||
res.status(200); | ||
res.json(accounts); | ||
} | ||
else { | ||
res.status(500); | ||
res.json({ error: "Failed to retrieve accounts" }); | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
exports.default = accountsRouter; | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const express_1 = require("express"); | ||
const accountsController = __importStar(require("../controllers/accountsController")); | ||
const router = (0, express_1.Router)(); | ||
router.get('/getallaccounts', accountsController.getAllAccounts); | ||
exports.default = router; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const express_1 = require("express"); | ||
const accountsController = __importStar(require("../controllers/accountsController")); | ||
const router = (0, express_1.Router)(); | ||
/* CREATE */ | ||
router.post('/createlearneraccount', accountsController.createLearnerAccount); | ||
router.post('/createadminaccount', accountsController.createAdminAccount); | ||
/* READ */ | ||
router.get('/getallaccounts', accountsController.getAllAccounts); | ||
router.get('/getaccountbyid/:id', accountsController.getAccountById); | ||
router.get('/getalllearneraccounts', accountsController.getAllLearnerAccounts); | ||
router.get('/getalladminaccounts', accountsController.getAllAdminAccounts); | ||
/* UPDATE */ | ||
/* DELETE */ | ||
router.delete('/deleteaccount/:id', accountsController.deleteAccount); | ||
exports.default = router; |
Oops, something went wrong.