{"info":{"_postman_id":"5a666d84-2dd5-4fd6-85bc-145dbff76f35","name":"Grades API documentation","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"9501404","collectionId":"5a666d84-2dd5-4fd6-85bc-145dbff76f35","publishedId":"TWDZJGjq","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2021-02-23T19:31:38.000Z"},"item":[{"name":"Authentication","item":[{"name":"Login","event":[{"listen":"test","script":{"id":"9f183bee-9c8d-486c-9d02-6557f435473b","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"Provided data model is complete\", ()=>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.data.user).to.be.not.null;\r","    pm.expect(jsonData.data.user).to.be.a('object');\r","    pm.expect(jsonData.data.user.role).to.be.a('string');\r","    pm.expect(jsonData.data.user.active).to.be.a('boolean');\r","    pm.expect(jsonData.data.user._id).to.be.a('string');\r","    pm.expect(jsonData.data.user.name).to.be.a('string');\r","    pm.expect(jsonData.data.user.email).to.be.a('string');\r","})\r","\r","pm.test(\"Provided data are correct\", () =>{\r","    let jsonData = pm.response.json();\r","    let adminEmail = pm.environment.get(\"adminLogin\").toLowerCase();\r","    pm.expect(jsonData.data.user.role).to.eql('admin');\r","    pm.expect(jsonData.data.user.email).to.eql(adminEmail);\r","})\r","\r","pm.test(\"Has HttpOnly cookie (authToken) been set?\", ()=>{\r","    pm.expect(pm.cookies.has('authToken')).to.be.true;\r","})"],"type":"text/javascript"}}],"id":"f21027e8-2142-45d4-aa80-53b2b5bab104","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"{{adminLogin}}\",\n\t\"password\": \"{{adminPassword}}\"\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users/login","description":"<h6 id=\"usage\">Usage</h6>\n<p>Node to login to API. Returns authToken in cookie if username and password is valid.</p>\n","urlObject":{"path":["users","login"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[{"id":"b33d3023-bb28-485a-9028-cdee25c3fe06","name":"/users/login - admin login","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{adminLogin}}\",\n    \"password\": \"{{adminPassword}}\"\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Set-Cookie","value":"authToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlNzkxNTFmZmI4ZWNkMmJlMDcyMjYwMCIsImlhdCI6MTYwMDYzOTkwMSwiZXhwIjoxNjAwNjY4NzAxfQ.0oNcOIEPufC-BGBAiu2MgWP35ky8PJdKr1_SskRzfYo; Max-Age=28800; Path=/; Expires=Mon, 21 Sep 2020 06:11:41 GMT; HttpOnly"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"185"},{"key":"ETag","value":"W/\"b9-9h/SRxukYKuJImSiopsg5sP971Q\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:11:41 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"expires\": 1600668701844,\n    \"data\": {\n        \"user\": {\n            \"role\": \"admin\",\n            \"active\": true,\n            \"_id\": \"5e79151ffb8ecd2be0722600\",\n            \"name\": \"Prompted name\",\n            \"email\": \"email\"\n        }\n    }\n}"}],"_postman_id":"f21027e8-2142-45d4-aa80-53b2b5bab104"},{"name":"Logout","event":[{"listen":"test","script":{"id":"6913cfe1-69c5-47a1-b8ed-4e0650ac1efd","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"authToken cookie removed\", ()=>{\r","    pm.expect(pm.cookies.has('authToken')).to.be.false;\r","})"],"type":"text/javascript"}}],"id":"77ba0f59-ef8c-4934-9955-1ed44db5d186","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/users/logout","description":"<h6 id=\"usage\">Usage</h6>\n<p>Used to invalidate user and remove <code>HttpOnly cookie</code> from user's browser.</p>\n","urlObject":{"path":["users","logout"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[{"id":"050ef876-18a3-4de2-aeee-796a97755800","name":"Logout - success","originalRequest":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/users/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Set-Cookie","value":"authToken=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"63"},{"key":"ETag","value":"W/\"3f-xZZz/Rl+FsISk907aNCcyGUntVc\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:33:23 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"authToken removed successfully\"\n}"}],"_postman_id":"77ba0f59-ef8c-4934-9955-1ed44db5d186"},{"name":"Validate token","event":[{"listen":"test","script":{"id":"15b698e4-6161-4d00-9cd0-4c323193db38","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"Provided data model is complete\", ()=>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData).to.be.not.null;\r","    pm.expect(jsonData.valid).to.be.a('boolean');\r","    pm.expect(jsonData.expires).to.be.a('number');\r","    pm.expect(jsonData.message).to.be.a('string');\r","})\r","\r","pm.test(\"Token validation\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.valid).to.be.true;\r","})\r","\r","pm.test(\"Expires field type number\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.expires).to.be.a('number');\r","})\r","\r","pm.test(\"Expires timestamp is greater than current timestamp\", () => {\r","    let jsonData = pm.response.json();\r","    let currentTimestamp = Date.now();\r","    let expires = new Date(jsonData.expires * 1000).getTime();\r","    pm.expect(expires).to.be.greaterThan(currentTimestamp)\r","})"],"type":"text/javascript"}}],"id":"27b8f19f-9261-40f3-83ea-bacdc89b1da4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users/validate","description":"<h6 id=\"usage\">Usage</h6>\n<p>Node used to check if user token is still valid and it wasn't spoofed. Token is get from authToken <code>HttpOnly cookie</code>. There is no need to create body or send any parameters.</p>\n","urlObject":{"path":["users","validate"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[{"id":"589a4ef1-db9f-400f-a1a6-ddf92f465c82","name":"Validate token - success","originalRequest":{"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users/validate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"87"},{"key":"ETag","value":"W/\"57-QttzJXrmKglFvmEPbag7J6cEuFU\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:32:48 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"valid\": true,\n    \"message\": \"Token is still valid\",\n    \"expires\": 1600669019\n}"}],"_postman_id":"27b8f19f-9261-40f3-83ea-bacdc89b1da4"}],"id":"4f3d5253-f8d9-43d9-a973-33242a43af04","description":"<h6 id=\"usage\">Usage</h6>\n<p>Nodes used for authentication purposes like login, logout, token validation</p>\n","_postman_id":"4f3d5253-f8d9-43d9-a973-33242a43af04"},{"name":"Users","item":[{"name":"Create user","event":[{"listen":"prerequest","script":{"id":"b3c4112a-60fa-4448-ae3e-91536dce04e1","exec":["let timestamp = new Date().getTime();\r","let userEmail = `user-${timestamp}@postman.io`;\r","pm.environment.set(\"userEmail\", userEmail)"],"type":"text/javascript"}},{"listen":"test","script":{"id":"338d3223-02fd-4ef5-8691-caff438bf639","exec":["pm.test(\"Status code 201\", () =>{\r","    pm.response.to.have.status(201);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","    pm.environment.set('userId', jsonData.data.user._id)\r","})\r","\r","pm.test(\"Data model is correct\", () => {\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data.user;\r","    pm.expect(model).to.be.a('object')\r","    pm.expect(model).to.be.not.null;\r","\r","    pm.expect(model.role).to.be.a('string');\r","    pm.expect(model.active).to.be.a('boolean')\r","    pm.expect(model._id).to.be.a('string');\r","    pm.expect(model.name).to.be.a('string')\r","    pm.expect(model.email).to.be.a('string');\r","})\r","\r","pm.test(\"Prompted data are correct\", ()=>{\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data.user;\r","    pm.expect(model.active).to.eql(true);\r","    pm.expect(model.email).to.eql(pm.environment.get(\"userEmail\"));\r","})"],"type":"text/javascript"}}],"id":"0ef7f560-4ea5-40eb-9da1-6e3d1d683989","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Postman user\",\r\n    \"email\": \"{{userEmail}}\",\r\n    \"password\": \"{{userPassword}}\",\r\n    \"active\": true,\r\n    \"role\": \"user\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users","description":"<h6 id=\"usage\">Usage</h6>\n<p>Create new user</p>\n","urlObject":{"path":["users"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[{"id":"54392485-a010-4452-bbe9-a329d7c823f7","name":"Create user","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"New name\",\r\n    \"email\": \"unique-email@rm.com\",\r\n    \"password\": \"MustBeStrongPassword123!\",\r\n    \"active\": true,\r\n    \"role\": \"user\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"147"},{"key":"ETag","value":"W/\"93-/CHgw/jIeG37ML6OcM0yHaVJgDk\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:44:41 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"user\": {\n            \"_id\": \"5f67db58a6b69524d43417ea\",\n            \"role\": \"user\",\n            \"active\": true,\n            \"name\": \"New name\",\n            \"email\": \"unique-email@rm.com\"\n        }\n    }\n}"}],"_postman_id":"0ef7f560-4ea5-40eb-9da1-6e3d1d683989"},{"name":"Get list of users","event":[{"listen":"test","script":{"id":"af4c7b14-db12-4c0d-a7c0-ea314a5cbc2e","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"Results field is number\", () => {\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.results).to.be.a('number')\r","})\r","\r","pm.test(\"Result data are objects in array\", () => {\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.data).to.be.a('array')\r","    jsonData.data.forEach(model => {\r","        pm.expect(model).to.be.a('object')\r","        pm.expect(model).to.be.not.null;\r","\r","        pm.expect(model.role).to.be.a('string');\r","        pm.expect(model.active).to.be.a('boolean')\r","        pm.expect(model._id).to.be.a('string');\r","        pm.expect(model.name).to.be.a('string')\r","        pm.expect(model.email).to.be.a('string');\r","    })\r","})"],"type":"text/javascript"}}],"id":"62f86c53-f657-4641-b0cf-ff7acd811387","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/users","description":"<h6 id=\"usage\">Usage</h6>\n<p>Get all user list. Needs 'admin' role to get results</p>\n","urlObject":{"path":["users"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[{"id":"fa70874c-2edb-423e-9cb1-7eaced0c66a0","name":"Get list of users","originalRequest":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/users"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1064"},{"key":"ETag","value":"W/\"428-6OIJoFJvGflWdV4REjVnJUb6s0k\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:35:48 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"results\": 8,\n    \"data\": [\n        {\n            \"role\": \"admin\",\n            \"active\": true,\n            \"_id\": \"5e7913f0fb8ecd2be07225ff\",\n            \"name\": \"System admin\",\n            \"email\": \"sysadmin@resource.manager\"\n        },\n        {\n            \"role\": \"admin\",\n            \"active\": true,\n            \"_id\": \"5e79151ffb8ecd2be0722600\",\n            \"name\": \"Adam Talarczyk\",\n            \"email\": \"adam.talarczyk@hotmail.com\"\n        },\n        {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5e7a378e7c366e3b48fee68a\",\n            \"name\": \"Test user account\",\n            \"email\": \"user@app.xyz\",\n            \"__v\": 0\n        },\n        {\n            \"role\": \"admin\",\n            \"active\": true,\n            \"_id\": \"5f52c8f6b3a0c4701d26e6a2\",\n            \"name\": \"Test admin account\",\n            \"email\": \"admin@app.xyz\",\n            \"__v\": 0\n        },\n        {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5f60c3c280d69f2da4bc5638\",\n            \"name\": \"Username\",\n            \"email\": \"edit-user-1600177089893@cypress.io\",\n            \"__v\": 0\n        },\n        {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5f60cebf80d69f2da4bc5670\",\n            \"name\": \"Username\",\n            \"email\": \"edit-user-1600179903048@cypress.io\",\n            \"__v\": 0\n        },\n        {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5f64cb3b110773466cfe64cc\",\n            \"name\": \"Username\",\n            \"email\": \"edit-user-1600441146929@cypress.io\",\n            \"__v\": 0\n        },\n        {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5f64cb4e110773466cfe64ce\",\n            \"name\": \"Username\",\n            \"email\": \"user-1600441164643@cypress.io\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"62f86c53-f657-4641-b0cf-ff7acd811387"},{"name":"Get user","event":[{"listen":"test","script":{"id":"f6713893-cd39-4088-b968-2852240f3c84","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"Data model is correct\", () => {\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data;\r","    pm.expect(model).to.be.a('object')\r","    pm.expect(model).to.be.not.null;\r","\r","    pm.expect(model.role).to.be.a('string');\r","    pm.expect(model.active).to.be.a('boolean')\r","    pm.expect(model._id).to.be.a('string');\r","    pm.expect(model.name).to.be.a('string')\r","    pm.expect(model.email).to.be.a('string');\r","})\r","\r","pm.test(\"Prompted data are correct\", ()=>{\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data;\r","    pm.expect(model.active).to.eql(true);\r","    pm.expect(model._id).to.eql(pm.environment.get(\"userId\"));\r","    pm.expect(model.email).to.eql(pm.environment.get(\"userEmail\"));\r","})"],"type":"text/javascript"}}],"id":"a127d746-7de4-4b0a-a777-ee5a7b96bf7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/users/:id","description":"<h6 id=\"usage\">Usage</h6>\n<p>Get user with prompted :id parameter.</p>\n","urlObject":{"path":["users",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"62debea4-8aca-409b-86af-abbb0339db27","description":{"content":"<p>Parameter is required</p>\n","type":"text/plain"},"type":"string","value":"{{userId}}","key":"id"}]}},"response":[{"id":"7deeb823-2bd3-493f-b3c0-06622f958029","name":"Get user","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://petstore.swagger.io/v1/users/:id","host":["http://petstore.swagger.io/v1"],"path":["users",":id"],"variable":[{"key":"id","value":"5e7913f0fb8ecd2be07225ff","description":"Parameter is required"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"149"},{"key":"ETag","value":"W/\"95-kfLHsnWfdHxWTIp7MeYi+0wGoEw\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:36:01 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"role\": \"admin\",\n        \"active\": true,\n        \"_id\": \"5e7913f0fb8ecd2be07225ff\",\n        \"name\": \"System admin\",\n        \"email\": \"sysadmin@resource.manager\"\n    }\n}"}],"_postman_id":"a127d746-7de4-4b0a-a777-ee5a7b96bf7b"},{"name":"Update user","event":[{"listen":"test","script":{"id":"a043d7db-411b-4313-aae3-fb2126cf4e42","exec":["pm.test(\"Status code 200\", () =>{\r","    pm.response.to.have.status(200);\r","})\r","\r","pm.test(\"Response status 'success'\", () =>{\r","    let jsonData = pm.response.json();\r","    pm.expect(jsonData.status).to.eql('success');\r","})\r","\r","pm.test(\"Data model is correct\", () => {\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data.doc;\r","    pm.expect(model).to.be.a('object')\r","    pm.expect(model).to.be.not.null;\r","\r","    pm.expect(model.role).to.be.a('string');\r","    pm.expect(model.active).to.be.a('boolean')\r","    pm.expect(model._id).to.be.a('string');\r","    pm.expect(model.name).to.be.a('string')\r","    pm.expect(model.email).to.be.a('string');\r","})\r","\r","pm.test(\"Changed data are correct\", () => {\r","    let jsonData = pm.response.json();\r","    let model = jsonData.data.doc;\r","    pm.expect(model.active).to.eql(true);\r","    pm.expect(model.name).to.eql('New name')\r","    pm.expect(model._id).to.eql(pm.environment.get(\"userId\"));\r","    pm.expect(model.email).to.eql(pm.environment.get(\"userEmail\"));\r","})"],"type":"text/javascript"}}],"id":"7028cfe1-e266-48ed-b73e-54aa8f49a6e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"New name\",\r\n    \"active\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/users/:id","description":"<h6 id=\"usage\">Usage</h6>\n<p>Edit user with provided ID</p>\n","urlObject":{"path":["users",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"78d3e1ab-f75f-418c-8dfd-acad3bcbedb3","description":{"content":"<p>Parameter is required</p>\n","type":"text/plain"},"type":"string","value":"{{userId}}","key":"id"}]}},"response":[{"id":"c47ee28f-9486-4571-bd51-669fdee0115e","name":"Update user","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"New name\",\r\n    \"active\": true\r\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://petstore.swagger.io/v1/users/:id","host":["http://petstore.swagger.io/v1"],"path":["users",":id"],"variable":[{"description":"Parameter is required","key":"id","value":"5f64cb4e110773466cfe64ce"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"164"},{"key":"ETag","value":"W/\"a4-Ow2Otnb24agrjX1J+HsYWEjZKNQ\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:43:16 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"doc\": {\n            \"role\": \"user\",\n            \"active\": true,\n            \"_id\": \"5f64cb4e110773466cfe64ce\",\n            \"name\": \"New name\",\n            \"email\": \"user-1600441164643@cypress.io\",\n            \"__v\": 0\n        }\n    }\n}"}],"_postman_id":"7028cfe1-e266-48ed-b73e-54aa8f49a6e6"},{"name":"Remove user","event":[{"listen":"test","script":{"id":"52635f06-c48c-4fdf-b01d-e0ff1aa9733e","exec":["pm.test('Status 204', () => {\r","    pm.expect(pm.response.code).to.eql(204)\r","})"],"type":"text/javascript"}}],"id":"d06774d9-f344-48ce-9c29-fca449ec38ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://petstore.swagger.io/v1/users/:id","description":"<h6 id=\"usage\">Usage</h6>\n<p>Remove user with provided ID</p>\n<h6 id=\"additional-info\">Additional info</h6>\n<p>Response body is empty because the status code is equal to 204 (No content). There is no need to display any message since the status code is correct.</p>\n","urlObject":{"path":["users",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"6e0a8463-1447-4727-9f8d-3bf9932d5866","description":{"content":"<p>Parameter is required</p>\n","type":"text/plain"},"type":"string","value":"{{userId}}","key":"id"}]}},"response":[{"id":"c32860f8-7c14-4dfc-aa82-5830509f64d0","name":"Remove user","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"http://petstore.swagger.io/v1/users/:id","host":["http://petstore.swagger.io/v1"],"path":["users",":id"],"variable":[{"key":"id","value":"5f64cb3b110773466cfe64cc","description":"Parameter is required"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"Access-Control-Allow-Origin","value":"http://192.168.0.12:8080"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"Strict-Transport-Security","value":"max-age=15552000; includeSubDomains"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"ETag","value":"W/\"20-bff5r/a5MyNNWy9hjn8a8pOLDxA\""},{"key":"Date","value":"Sun, 20 Sep 2020 22:36:29 GMT"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"d06774d9-f344-48ce-9c29-fca449ec38ee"}],"id":"4857c913-22c1-44b5-94fe-ef3a431b2651","description":"<h6 id=\"data-model\">Data model</h6>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute</th>\n<th>Type</th>\n<th>Additional</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>Required, non-unique</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Required, unique</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>Required, 8-128 length, 1 upper, 1 lower, 1 number or special char.</td>\n</tr>\n<tr>\n<td>role</td>\n<td>string/enum</td>\n<td>Options: 'admin', 'user'. Default: 'logged'</td>\n</tr>\n<tr>\n<td>active</td>\n<td>boolean</td>\n<td>Required, but by default is true</td>\n</tr>\n<tr>\n<td>added</td>\n<td>Date</td>\n<td>Not-required, by default current date.</td>\n</tr>\n</tbody>\n</table>\n</div><h6 id=\"additional-info\">Additional info</h6>\n<p><code>Password</code> is never returned in response.</p>\n","event":[{"listen":"prerequest","script":{"id":"9c9d5f0d-d2fc-4ded-b2b6-0237a14278b5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f7fc8f63-9b9a-4ee8-a5b1-e8e719c74d73","type":"text/javascript","exec":[""]}}],"_postman_id":"4857c913-22c1-44b5-94fe-ef3a431b2651"},{"name":"Subject","item":[{"name":"Create subject","id":"67ba0b43-b429-4e90-92c6-c37527475653","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Postman user\",\r\n    \"owner\": \"{{userId}}\",\r\n    \"date\": \"2020-11-09T21:22:08.927Z\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/subjects","urlObject":{"path":["subjects"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"67ba0b43-b429-4e90-92c6-c37527475653"},{"name":"Get list of subjects","id":"c0e24d7d-bfa9-44de-877a-7f5439874387","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/subjects","urlObject":{"path":["subjects"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0e24d7d-bfa9-44de-877a-7f5439874387"},{"name":"Get subject by id","id":"001df150-8a1d-4788-b218-8ba51e96df17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/subjects/:id","urlObject":{"path":["subjects",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"bdee45af-d36e-46d9-8fe5-ae520dec8466","type":"string","value":"5fa9b50b8e68b30ce4b50e29","key":"id"}]}},"response":[],"_postman_id":"001df150-8a1d-4788-b218-8ba51e96df17"},{"name":"Get subject by owner ID","id":"5cd568a6-3472-4c2a-959e-9c3114f260e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/subjects?owner={{userId}}","urlObject":{"path":["subjects"],"host":["http://petstore.swagger.io/v1"],"query":[{"key":"owner","value":"{{userId}}"}],"variable":[]}},"response":[],"_postman_id":"5cd568a6-3472-4c2a-959e-9c3114f260e9"},{"name":"Update subject","id":"2d8dedbd-bd60-4bb4-9fcc-5b1763cff69d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"After edit\",\r\n    \"owner\": \"{{userId}}\",\r\n    \"date\": \"2020-11-09T21:22:08.927Z\",\r\n    \"active\": false,\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/subjects/:id","urlObject":{"path":["subjects",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"3de1a369-8b96-4ed7-8040-3e476f8687ae","type":"string","value":"5fa9b538135fa73be416b86c","key":"id"}]}},"response":[],"_postman_id":"2d8dedbd-bd60-4bb4-9fcc-5b1763cff69d"},{"name":"Delete subject","id":"3c4f6806-c836-4c6c-9d72-d10f9ea6a78b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://petstore.swagger.io/v1/subjects/:id","urlObject":{"path":["subjects",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"15006f91-b734-4d26-b2ad-30276ff292b0","type":"string","value":"","key":"id"}]}},"response":[],"_postman_id":"3c4f6806-c836-4c6c-9d72-d10f9ea6a78b"}],"id":"390efede-2730-4aa9-aa21-2612da8519a1","_postman_id":"390efede-2730-4aa9-aa21-2612da8519a1","description":""},{"name":"Student","item":[{"name":"Create student","id":"5dd97695-c863-40e8-af4a-a232c23f214a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Adam Talarczyk\",\r\n    \"subject\": \"5fa9b538135fa73be416b86c\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/students","urlObject":{"path":["students"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"5dd97695-c863-40e8-af4a-a232c23f214a"},{"name":"Get all students","id":"b30b735f-b646-49be-9d8d-d9d3ca997f02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/students","urlObject":{"path":["students"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[]}},"response":[],"_postman_id":"b30b735f-b646-49be-9d8d-d9d3ca997f02"},{"name":"Get student by ID","id":"7117bfee-a659-43ad-bc72-0ead25e9aa03","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/students/:id","urlObject":{"path":["students",":id"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"c3998f39-5df9-47f7-847e-ff5666c01d23","type":"string","value":"5fa9b8c64eabfb2cc4cac204","key":"id"}]}},"response":[],"_postman_id":"7117bfee-a659-43ad-bc72-0ead25e9aa03"},{"name":"Get students belongs to subject","id":"9cc1d835-6d75-4742-a5e6-6ba5168f100e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://petstore.swagger.io/v1/students?subject=5fa9b538135fa73be416b86c","urlObject":{"path":["students"],"host":["http://petstore.swagger.io/v1"],"query":[{"key":"subject","value":"5fa9b538135fa73be416b86c"}],"variable":[]}},"response":[],"_postman_id":"9cc1d835-6d75-4742-a5e6-6ba5168f100e"},{"name":"Edit student","id":"bd497ff7-5771-4a6e-98b0-61fca07283b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Adam Talarczyk\",\r\n    \"subject\": \"5fd1521d0761cc1a78460a14\",\r\n    \"grades\": [\r\n        {\r\n            \"category\": \"Kartkuwka\",\r\n            \"grade\": 5,\r\n            \"severity\": 50\r\n        },\r\n        {\r\n            \"category\": \"Kartkuwka\",\r\n            \"grade\": 3,\r\n            \"severity\": 50\r\n        },\r\n        {\r\n            \"category\": \"Kartkuwka\",\r\n            \"grade\": 4,\r\n            \"severity\": 10\r\n        },\r\n        {\r\n            \"category\": \"Kartkuwka\",\r\n            \"grade\": 2,\r\n            \"severity\": 25\r\n        }\r\n    ],\r\n    \"absences\": [\r\n        { \"date\": \"2020-11-09T21:46:42.336Z\" },\r\n        { \"date\": \"2020-11-09T21:46:42.336Z\" }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"http://petstore.swagger.io/v1/students/:studentId","urlObject":{"path":["students",":studentId"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"d33cf466-44c6-42b8-b7ef-4e186f5fe470","type":"string","value":"5fd372d58103dc37d4bc2875","key":"studentId"}]}},"response":[],"_postman_id":"bd497ff7-5771-4a6e-98b0-61fca07283b6"},{"name":"Remove student","id":"907122f7-1304-4d87-990a-11ca091b328f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://petstore.swagger.io/v1/students/:studentId","urlObject":{"path":["students",":studentId"],"host":["http://petstore.swagger.io/v1"],"query":[],"variable":[{"id":"76a787c5-5b1f-4585-a1fe-b5201f59d3c5","type":"string","value":"5fa9b9ef4eabfb2cc4cac209","key":"studentId"}]}},"response":[],"_postman_id":"907122f7-1304-4d87-990a-11ca091b328f"}],"id":"25ea2ea3-b08b-4b3f-81ec-3e59e301a4d3","_postman_id":"25ea2ea3-b08b-4b3f-81ec-3e59e301a4d3","description":""}],"event":[{"listen":"prerequest","script":{"id":"e9d43fa2-4d35-4356-8377-c70a7fe6799b","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"bb9e3957-e489-48fc-89fe-40b9c77224be","type":"text/javascript","exec":[""]}}],"variable":[{"key":"baseUrl","value":"http://petstore.swagger.io/v1"}]}