You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.5 KiB

Run: npm start

**** Stretch Goals ****

  • Set user as Admin ( Admin Only )
  • Retrieve Authenticated User's Orders
  • Retrieve all orders ( Admin Only )
  • Add to Cart ( Added Products, Change Product Quantities, Remove Products From Cart, Subtotal for each item, Total price for all items)
  • Authentication Token with expiration (1hr)
  • dotenv
  • faker (Auto Generate Names)
  • getUserDetails function ( Detects if the user tries to get the details of the other useId's + Token auth)
  • Middleware Secure verification that match Token and UserId to next()

**** Accounts ****

User: ( Password: wapatu ) { "userId": "65544d9be5c01f6c0ca79200", "email": "wapatu@example.com", "firstName": "Estevan", "lastName": "Cummings", "isAdmin": false, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTU0NGQ5YmU1YzAxZjZjMGNhNzkyMDAiLCJlbWFpbCI6IndhcGF0dUBleGFtcGxlLmNvbSIsImlzQWRtaW4iOmZhbHNlLCJpYXQiOjE3MDAwMjM3MjQsImV4cCI6MTcwMDAyNzMyNH0.dpWV9Zx64TH4RLgmV_RlyrMBCa0HwDe9wJRAkwAyjys" }

Admin: (Password is: admin ) { "userId": "65535cb526b586a3e2fd56cc", "email": "admin@email.com", "isAdmin": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTUzNWNiNTI2YjU4NmEzZTJmZDU2Y2MiLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlzQWRtaW4iOnRydWUsImlhdCI6MTcwMDAyMzgxMSwiZXhwIjoxNzAwMDI3NDExfQ.DrhpNlBJKpfHod7MfTalQ5j2-s8tnR630yh2-_EIYWw" }

**** Links ****

REGISTER http://localhost:3000/user/register --> Use post { "email": "admin@email.com", "password": "admin" }

LOGIN http://localhost:3000/user/login --> Use post { "email": "admin@email.com", "password": "admin" }

UPDATE PROFILE http://localhost:3000/user/update --> Must use Admin token // use put { "userId": "6554473388d9942bbf4de065", "newEmail": "mundo@email.com", "newFirstname": "Ron", "newLastName": "Pogi", "newPassword": "mundo" }

CREATE PRODUCT [ADMIN] http://localhost:3000/user/products --> Must use Admin token // use post { "name": "Poring Card", "description": "Description unknown", "price": 500 }

GET ALL PRODUCT http://localhost:3000/user/all --> Use get

GET ALL ACTIVE PRODUCT http://localhost:3000/user/active --> Use get

GET A SINGLE PROUCT http://localhost:3000/user/products/65538bd4a601aa30730f6d4c --> Use get

UPDATE A PRODUCT [ADMIN] http://localhost:3000/user/products/65545a1e6fa9d841e1518d1d --> Must use Admin token // Use put { "name": "Christmas Cookie Card", "description": "Updated Product Description", "price": 29.99, "isActive": false }

ACTIVATE / ARCHIVE A PRODUCT [ADMIN] --> Use Put http://localhost:3000/user/products/6554634e5cac4bcd6f2394ed/activate http://localhost:3000/user/products/6554634e5cac4bcd6f2394ed/archive

RETRIEVE OWN USER DATA --> Use Get http://localhost:3000/user/retrieveUser {

"userId": "6554ac8dd7fbf9ee90217e77" }

CART - Add to Cart --> Must use token http://localhost:3000/cart/add-to-cart { "userId": "655396dcc8ea29f42422e214", "productId": "6553a54566c4c86c39034b55", "quantity": 5 }

CART - Delete Item http://localhost:3000/cart/remove-from-cart --> Must use token { "userId": "655396dcc8ea29f42422e214", "productId": "6553a55666c4c86c39034b59", "quantity": 1 }

CART - Update Quantity http://localhost:3000/cart//update-quantity --> Must use token { "userId": "655396dcc8ea29f42422e214", "productId": "6553a55666c4c86c39034b59", "quantity": 2000 // Update to the desired quantity }

CART - Cart Details [ Total ] --> Must use token http://localhost:3000/cart/cart-details { "userId": "655396dcc8ea29f42422e214" }