{"info":{"_postman_id":"bb32c996-cf72-43a8-b7e4-40e453f530ee","name":"E-Commerce","description":"<html><head></head><body><p>A user can:</p>\n<ul>\n<li>register</li>\n<li>login</li>\n</ul>\n<p>When user is logged in, non-admin users can:</p>\n<ul>\n<li>edit their own name, address &amp; password (but not email)</li>\n<li>add/delete products to their own cart</li>\n<li>check-out cart</li>\n</ul>\n<p>When admin user is logged in, in addition to non-admin user capabilities, admins can:</p>\n<ul>\n<li>add/delete products</li>\n<li>update product's name, image url, and stock</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"6691212","collectionId":"bb32c996-cf72-43a8-b7e4-40e453f530ee","publishedId":"S1a4XmTV","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2019-06-26T05:55:14.000Z"},"item":[{"name":"http://localhost:3000/users","id":"60a1c2dc-59d3-4e08-8a1a-3a9d6541604c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTc1MzljMWI2YTY2MGYwMDE3ZjZiNiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxODc3Nzg5LCJleHAiOjE1NjE5NjQxODksImlzcyI6IlN0ZWZLd2FuIn0.zrKSeAjN40lSAngugYneT4lCU0s8OwDgem0mXZhL3-M","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\":\"test name\",\n\t\"email\":\"email@test.com\",\n\t\"password\":\"test pass\"\n}"},"url":"http://localhost:3000/users","description":"<p>get list of all users (only if logged in as admin user).</p>\n<p>admin user is hard-coded as having emails:</p>\n<ul>\n<li><a href=\"mailto:admin@ecommerce.com\">admin@ecommerce.com</a></li>\n<li><a href=\"mailto:admin1@ecommerce.com\">admin1@ecommerce.com</a></li>\n<li><a href=\"mailto:admin2@ecommerce.com\">admin2@ecommerce.com</a></li>\n</ul>\n<p>assigning roles instead of having a fixed list may be implemented if needed.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"60a1c2dc-59d3-4e08-8a1a-3a9d6541604c"},{"name":"http://localhost:3000/users","id":"1c08ad92-4ce2-4108-94a8-56cd910bbc75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"name\": \"nama user\", \r\n\t\"email\": \"admin2@ecommerce.com\", \r\n\t\"address\": \"alamat user\",\r\n\t\"password\": \"password user\"\r\n}"},"url":"http://localhost:3000/users","description":"<p>register a new user with email and password. email has to be unique.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"1c08ad92-4ce2-4108-94a8-56cd910bbc75"},{"name":"http://localhost:3000/users/login","id":"bc6bb4f6-233e-466c-ad01-ce03b7ae2a5b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"email\": \"admin2@ecommerce.com\", \r\n\t\"password\": \"pass\"\r\n}"},"url":"http://localhost:3000/users/login","description":"<p>login user with email and password</p>\n","urlObject":{"protocol":"http","port":"3000","path":["users","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"bc6bb4f6-233e-466c-ad01-ce03b7ae2a5b"},{"name":"http://localhost:3000/users","id":"7630a907-d1b9-42cf-8faf-efea34e7fe7a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmOTM2MWM5NWZjMjg0YzhlYzdjMiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxNDU5MDA3LCJleHAiOjE1NjE1NDU0MDcsImlzcyI6IlN0ZWZLd2FuIn0.u06llLEChVmAMXX3icbaei0Z1k-FAcfnLQnLQ5bURck","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"new name\",\n\t\"address\": \"new address\",\n\t\"password\": \"new pass\"\n}"},"url":"http://localhost:3000/users","description":"<p>update user details: name, address, and password.\nuser email cannot be changed.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"7630a907-d1b9-42cf-8faf-efea34e7fe7a"},{"name":"http://localhost:3000/products","id":"b534ffb8-2657-495b-8868-2644bd02dea1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTJmNGM0NmIzN2RhM2NmMDVlZmIzMCIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxODA3MDgzLCJleHAiOjE1NjE4OTM0ODMsImlzcyI6IlN0ZWZLd2FuIn0.dRJKQR-e6pYV03SaZWhQ2FH7ZMWn_ViyYnbm-dgaSGU","type":"text"}],"url":"http://localhost:3000/products","description":"<p>get list of products. does not require login.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"b534ffb8-2657-495b-8868-2644bd02dea1"},{"name":"http://localhost:3000/products","id":"453511d9-98bb-4d36-bf56-455b36eb5fb1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmNWRlMWVlNzczMTE4NGVkZThlMCIsImVtYWlsIjoiYWRtaW5AZWNvbW1lcmNlLmNvbSJ9LCJpYXQiOjE1NjE0NTgzNTMsImV4cCI6MTU2MTU0NDc1MywiaXNzIjoiU3RlZkt3YW4ifQ.9Kg8M2rocPmOW8KfQveG5rloV1foG0kxd5wqC9P8eBk","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n\t\"name\": \"nama produk\",\r\n\t\"image\": \"url image\",\r\n\t\"price\": 200000,\r\n\t\"stock\": 2\r\n}"},"url":"http://localhost:3000/products","description":"<p>create a new product, only for logged in admins.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"453511d9-98bb-4d36-bf56-455b36eb5fb1"},{"name":"http://localhost:3000/products/:id","id":"c8ea38ea-69f2-4489-98c1-e287461576d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000/products/:id","description":"<p>get a product's details. will be more useful as product model grows to have more details.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products",":id"],"host":["localhost"],"query":[],"variable":[{"id":"94c69eee-16ae-4542-a4de-2e3017fd5579","type":"string","value":"","key":"id"}]}},"response":[],"_postman_id":"c8ea38ea-69f2-4489-98c1-e287461576d3"},{"name":"http://localhost:3000/products/:id","id":"12059e23-438d-4329-a539-515dc45b88eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"produk baru\", \n\t\"image\": \"gambar baru\", \n\t\"price\": 65000, \n\t\"stock\": 3\n}"},"url":"http://localhost:3000/products/:id","description":"<p>update product details, only for logged in admins.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products",":id"],"host":["localhost"],"query":[],"variable":[{"id":"659f92b5-57de-4b0f-bbfa-4df931b4205b","type":"string","value":"5d11f6e99dd7cb16f0de5e38","key":"id"}]}},"response":[],"_postman_id":"12059e23-438d-4329-a539-515dc45b88eb"},{"name":"http://localhost:3000/products/:id","id":"a2287c87-4aff-4500-acb2-4200fbc759f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:3000/products/:id","description":"<p>delete a product, only for logged in admins.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products",":id"],"host":["localhost"],"query":[],"variable":[{"id":"86194f40-4756-411b-ab53-d58e67ae4ab6","type":"string","value":"5d11f6e99dd7cb16f0de5e38","key":"id"}]}},"response":[],"_postman_id":"a2287c87-4aff-4500-acb2-4200fbc759f8"},{"name":"http://localhost:3000/cart","id":"2f5222bc-5da2-41e7-9c6e-38890a8b057f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmOTM2MWM5NWZjMjg0YzhlYzdjMiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxNDU5MDA3LCJleHAiOjE1NjE1NDU0MDcsImlzcyI6IlN0ZWZLd2FuIn0.u06llLEChVmAMXX3icbaei0Z1k-FAcfnLQnLQ5bURck","type":"text"}],"url":"http://localhost:3000/cart","description":"<p>get a logged in user's current cart.</p>\n<p>It is the user's only cart with status \"\" instead of \"checked-out\".</p>\n","urlObject":{"protocol":"http","port":"3000","path":["cart"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"2f5222bc-5da2-41e7-9c6e-38890a8b057f"},{"name":"http://localhost:3000/cart","id":"296740c8-c9b6-49e1-9968-aa0d4e71ef7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmOTM2MWM5NWZjMjg0YzhlYzdjMiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxNDU5MDA3LCJleHAiOjE1NjE1NDU0MDcsImlzcyI6IlN0ZWZLd2FuIn0.u06llLEChVmAMXX3icbaei0Z1k-FAcfnLQnLQ5bURck","type":"text"}],"url":"http://localhost:3000/cart","description":"<p>create a new cart for the logged in user.</p>\n<p>client calls when user checks-out or tries to add item but does not have a non checkec-out cart.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["cart"],"host":["localhost"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"296740c8-c9b6-49e1-9968-aa0d4e71ef7b"},{"name":"http://localhost:3000/cart/add","id":"f6abe567-4993-4bac-8d3d-d7ab75059db0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTJmNGM0NmIzN2RhM2NmMDVlZmIzMCIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxODA3MDgzLCJleHAiOjE1NjE4OTM0ODMsImlzcyI6IlN0ZWZLd2FuIn0.dRJKQR-e6pYV03SaZWhQ2FH7ZMWn_ViyYnbm-dgaSGU","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"productId\":\"5d175bd19033c12840bfaa5c\"\n}"},"url":"http://localhost:3000/cart/add","description":"<p>updates cart when a product is added to it.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["cart","add"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"f6abe567-4993-4bac-8d3d-d7ab75059db0"},{"name":"http://localhost:3000/cart/del","id":"c0263c7e-57e1-48a1-8b29-beb515b22064","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmOTM2MWM5NWZjMjg0YzhlYzdjMiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxNDU5MDA3LCJleHAiOjE1NjE1NDU0MDcsImlzcyI6IlN0ZWZLd2FuIn0.u06llLEChVmAMXX3icbaei0Z1k-FAcfnLQnLQ5bURck","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"productId\":\"5d11f6e99dd7cb16f0de5e38\"\n}"},"url":"http://localhost:3000/cart/del","description":"<p>updates cart when product is removed from it.</p>\n<p>It removes only 1 item at a time. Item is removed from cart when the quantity is 0.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["cart","del"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0263c7e-57e1-48a1-8b29-beb515b22064"},{"name":"http://localhost:3000/cart/checkout","id":"eac883d9-e95e-4f48-800a-d58878c71176","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTFmOTM2MWM5NWZjMjg0YzhlYzdjMiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxNDU5MDA3LCJleHAiOjE1NjE1NDU0MDcsImlzcyI6IlN0ZWZLd2FuIn0.u06llLEChVmAMXX3icbaei0Z1k-FAcfnLQnLQ5bURck","type":"text"}],"url":"http://localhost:3000/cart/checkout","description":"<p>marks current user's non checked-out cart as being checked-out.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["cart","checkout"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"eac883d9-e95e-4f48-800a-d58878c71176"},{"name":"http://localhost:3000/products/uploadImage","id":"c3d1334d-1724-49cc-a26d-c894b23f45a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTJmNGM0NmIzN2RhM2NmMDVlZmIzMCIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxODA3MDgzLCJleHAiOjE1NjE4OTM0ODMsImlzcyI6IlN0ZWZLd2FuIn0.dRJKQR-e6pYV03SaZWhQ2FH7ZMWn_ViyYnbm-dgaSGU","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"image","type":"file","value":null,"warning":"This file resides outside the working directory. Collaborators might not have the same file path."}]},"url":"http://localhost:3000/products/uploadImage","description":"<p>uploads an image file in body and gets a google cloud url to image in return. Limit file size to 10MB or less.</p>\n<p>Only for logged in admins.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products","uploadImage"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"c3d1334d-1724-49cc-a26d-c894b23f45a3"},{"name":"http://localhost:3000/products/deleteImage","id":"d9581d48-6fd5-445b-991c-72bffdaf2aed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"access_token","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnB1dCI6eyJpZCI6IjVkMTc1MzljMWI2YTY2MGYwMDE3ZjZiNiIsImVtYWlsIjoiYWRtaW4yQGVjb21tZXJjZS5jb20ifSwiaWF0IjoxNTYxODgxNDQ1LCJleHAiOjE1NjE5Njc4NDUsImlzcyI6IlN0ZWZLd2FuIn0.y6OHmWbF2HnQ8wCMNqYuSTPG1vMJaKoOcs3taPYQCsU","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"imageURL\" : \"https://storage.cloud.google.com/ecommerce-shirt/1561811946020-0013.png\"\n}"},"url":"http://localhost:3000/products/deleteImage","description":"<p>deletes a google cloud storage image.</p>\n<p>client calls this function when a product is updated or deleted to remove the no longer needed product image.</p>\n<p>only for logged in admins.</p>\n","urlObject":{"protocol":"http","port":"3000","path":["products","deleteImage"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"d9581d48-6fd5-445b-991c-72bffdaf2aed"}]}