The first stage which involved building the necessary APIs for user creation and management is complete. All parties interested in testing are welcome to do so.
- NodeJs version v18.13.0 or higher
- MongoDB
db version v6.0.4
Build Info: {
"version": "6.0.4",
"gitVersion": "44ff59461c1353638a71e710f385a566bcd2f547",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
- Project was built on Ubuntu 22.04.1 LTS x86_64, Host: 81H7 Lenovo ideapad 130-15IKB, Kernel: 5.15.0-58-generic
To get started, run npm run server
from the root directory
To test the User API, use the path
Localhost:PORT/api/user
router.post("/register" ,createUser);//new user creation
Check the user model under User Model for more info on the requirements for a user/admin
router.post("/login",loginUserCtrl);// user login
router.get("/logout",logout);// user logout
router.get("/refresh",handleRefreshToken);//handle Refresh Token
router.get("/all-users",getAllUsers);// get all users
router.get("/:id",authMiddleware,isAdmin,getAUser);// get a user - only admin can get user
router.delete("/:id",deleteAUser);// delete a user
router.put("/edit-user",authMiddleware,isAdmin,updateAUser);// update a user - only admin can update user
router.put("/block-user/:id",authMiddleware,isAdmin,blockAUser);// block a user - only admin can block/unblock user
router.put("/unblock-user/:id",authMiddleware,isAdmin,unblockAUser);// ubblock a user - only admin can block/unblock user
The product API is now set for testing. To test the API, use the route /api/product
Below is some more information
router.post("/", authMiddleware, isAdmin, createProduct);//create a new product
router.get("/dev", getAllProducts);//get all products, no fields ommited: for development purposes
router.get("/products/", getAllProductsSorted);//get all products and sort accordingly
router.get("/:id", getAProduct);//get a product
router.put("/:id", authMiddleware, isAdmin, updateProduct);//update a product
router.delete("/:id", authMiddleware, isAdmin, deleteAProduct);//delete a product