{"info":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","description":"<html><head></head><body><p>An official API documentation for the Kenko mobile application. All requests include at least one example response and short description. In order to use users-only routes you need to get the JWT token from the <a href=\"https://kenko0.postman.co/workspace/bce67f65-9f5d-4b8f-99f9-e62c80edd5b0/request/38099323-9daee2ff-c2bf-4dee-ac21-f06926452129?action=share&amp;source=copy-link&amp;creator=38099323\">login</a> endpoint and then send it with every request in the <code>Authorization</code> header using this format: <code>Authorization: Bearer [jwt]</code> .</p>\n<h4 id=\"query-params\">Query Params</h4>\n<p>In the API you will often find <code>date</code> path parameter. It's a date in <code>YYYY-MM-DD</code> format. For example: <code>2025-06-23</code> which translates to June 23rd, 2025.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"46028768","collectionId":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","publishedId":"2sBXihrDFH","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-03-19T13:45:33.000Z"},"item":[{"name":"Authentication","item":[{"name":"Register","id":"45120072-019a-42c2-8f38-0831da0ae54e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"testuser3\",\n    \"email\": \"testuser3@kenko.app\",\n    \"password\": \"Password182@!\",\n    \"sex\": \"female\",\n    \"weightKg\": 80.0,\n    \"heightCm\": 180,\n    \"dateOfBirth\": \"1995-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 3,\n    \"workoutActivity\": 3,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.5,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register","description":"<p>Creates a new user account. Returns 201 Created if request was successful.</p>\n<h4 id=\"params\">Params</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Value(s)</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sex</code></td>\n<td>one of: <code>male</code>, <code>female</code></td>\n<td>User's sex assigned at birth</td>\n</tr>\n<tr>\n<td><code>dateOfBirth</code></td>\n<td>Date in <code>YYYY-MM-DD</code> format, e.g. <code>1998-12-27</code></td>\n<td>Birth date</td>\n</tr>\n<tr>\n<td><code>weightKg</code></td>\n<td><strong>Optional</strong>, 32-bit float, e.g. <code>14.22</code>, <code>100</code>, <code>26.9283</code></td>\n<td>User's current weight in kilograms</td>\n</tr>\n<tr>\n<td><code>weightLb</code></td>\n<td><strong>Optional</strong>, 32-bit float, e.g. <code>174</code>, <code>100.23</code></td>\n<td>User's current weight in pounds</td>\n</tr>\n<tr>\n<td><code>weightSt</code></td>\n<td><strong>Optional</strong>, 32-bit float, e.g. <code>11</code>, <code>7</code></td>\n<td>User's current weight in stones, needs to be paired with <code>weightLb</code></td>\n</tr>\n<tr>\n<td><code>weightUnit</code></td>\n<td>one of: <code>kg</code>, <code>lb</code>, <code>st_lb</code></td>\n<td>User preferred unit used for measuring weight. Based on the selected unit you have to send corresponding weight fields.</td>\n</tr>\n<tr>\n<td><code>heightCm</code></td>\n<td><strong>Optional</strong>, 32-bit unsigned integer, <code>173</code>, <code>188</code>, <code>154</code></td>\n<td>User's current height in centimeters</td>\n</tr>\n<tr>\n<td><code>heightFt</code></td>\n<td><strong>Optional</strong>, 32-bit unsigned integer, <code>6</code>, <code>4</code>, <code>5</code></td>\n<td>User's current height in feets, needs to be paired with <code>heightIn</code></td>\n</tr>\n<tr>\n<td><code>heightIn</code></td>\n<td><strong>Optional</strong>, 32-bit unsinged integer, <code>7</code>, <code>11</code></td>\n<td>User's current height in inches</td>\n</tr>\n<tr>\n<td><code>heightUnit</code></td>\n<td>one of: <code>cm</code>, <code>ft_in</code></td>\n<td>User preferred unit used for measuring height. Based on the selected unit you need to send corresponding height fields</td>\n</tr>\n<tr>\n<td><code>weightGoal</code></td>\n<td>one of: <code>gain</code>, <code>lose</code>, <code>maintain</code></td>\n<td>User's weight plan</td>\n</tr>\n<tr>\n<td><code>dietKind</code></td>\n<td>one of: <code>vegetarian</code>, <code>vegan</code>, <code>pescatarian</code>, <code>ketogenic</code>, <code>classic</code></td>\n<td>Type of the user's current diet</td>\n</tr>\n<tr>\n<td><code>origin</code></td>\n<td>one of: <code>instagram</code>, <code>tiktok</code>, <code>x</code>, <code>twitch</code>, <code>facebook</code>, <code>youtube</code>, <code>other</code></td>\n<td>Where did the user heard about our app</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["auth","register"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"9b8d33ae-9fc4-4430-8298-848741839e60","name":"Account created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"abcduser\",\n    \"email\": \"abcduser@example.com\",\n    \"password\": \"Password182@!\",\n    \"isMale\": true,\n    \"weightKg\": 74.22,\n    \"heightCm\": 165,\n    \"dateOfBirth\": \"1998-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 2,\n    \"workoutActivity\": 3,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.2,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"0"},{"key":"date","value":"Sun, 29 Jun 2025 14:47:21 GMT"}],"cookie":[],"responseTime":null,"body":null},{"id":"b74a39fb-4916-4fac-811b-d66cd70df993","name":"Username taken","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"abcduser\",\n    \"email\": \"abcduser@example.com\",\n    \"password\": \"Password182@!\",\n    \"isMale\": true,\n    \"weightKg\": 74.22,\n    \"heightCm\": 165,\n    \"dateOfBirth\": \"1998-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 2,\n    \"workoutActivity\": 3,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.2,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"86"},{"key":"date","value":"Sun, 29 Jun 2025 14:47:48 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 409,\n    \"errorId\": \"username-taken\",\n    \"error\": \"This username is already taken\"\n}"},{"id":"39af2e4e-bab0-4f58-aca7-3a10d5d98b7d","name":"Email taken","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"abcduser21\",\n    \"email\": \"abcduser@example.com\",\n    \"password\": \"Password182@!\",\n    \"isMale\": true,\n    \"weightKg\": 74.22,\n    \"heightCm\": 165,\n    \"dateOfBirth\": \"1998-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 2,\n    \"workoutActivity\": 3,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.2,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"112"},{"key":"date","value":"Sun, 29 Jun 2025 14:47:59 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 409,\n    \"errorId\": \"email-taken\",\n    \"error\": \"This email address is already linked to an existing account\"\n}"},{"id":"bd2b43db-5b9d-4f16-a1f1-3a23b16e74b5","name":"Invalid idle activity","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"abcduser21\",\n    \"email\": \"abcduser@example.com\",\n    \"password\": \"Password182@!\",\n    \"isMale\": true,\n    \"weightKg\": 74.22,\n    \"heightCm\": 165,\n    \"dateOfBirth\": \"1998-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 0,\n    \"workoutActivity\": 3,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.2,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"125"},{"key":"date","value":"Sun, 29 Jun 2025 14:48:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"errorId\": \"activity-not-in-range\",\n    \"error\": \"Idle activity has an invalid value, it must be between 1 and 5\"\n}"},{"id":"250d5d35-b752-44c2-8668-f55c3f705e35","name":"Invalid workout activity","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"abcduser21\",\n    \"email\": \"abcduser@example.com\",\n    \"password\": \"Password182@!\",\n    \"isMale\": true,\n    \"weightKg\": 74.22,\n    \"heightCm\": 165,\n    \"dateOfBirth\": \"1998-12-31\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"cm\",\n    \"idleActivity\": 4,\n    \"workoutActivity\": 6,\n    \"weightGoal\": \"lose\",\n    \"goalDiffPerWeek\": 0.2,\n    \"dietKind\": \"classic\",\n    \"origin\": \"instagram\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/register"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"128"},{"key":"date","value":"Sun, 29 Jun 2025 14:48:51 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"errorId\": \"activity-not-in-range\",\n    \"error\": \"Workout activity has an invalid value, it must be between 1 and 5\"\n}"}],"_postman_id":"45120072-019a-42c2-8f38-0831da0ae54e"},{"name":"Login","id":"16b6c262-7ce4-44d8-8260-78e967a20fc8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"testuser3@kenko.app\",\n    \"password\": \"Password182@!\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/login","description":"<p>Log into the account. Returns 200 OK with JWT token as the response body.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["auth","login"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"76182311-e278-4959-96bc-45e9e2b78cd8","name":"Logged in","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"testuser@example.com\",\n    \"password\": \"Password182@!\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"295"},{"key":"date","value":"Sun, 29 Jun 2025 15:22:02 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJzdWIiOiJmNmUwMTBiMy01NGY5LTQ0OGMtODY0Ny01MWEwNzlkYWUxYjEiLCJleHAiOjE3NTMwMjQ5MjIsImRpc3BsYXlOYW1lIjoidGVzdHVzZXIiLCJlbWFpbCI6InRlc3R1c2VyQGV4YW1wbGUuY29tIn0.nvWxf9J0NBkIzrzyVyTEYeYW6ePnbclJ__OKq6Gm2YHR-02pcLsu6tosiPcoOO2mCjidYXuNwaD7qA8k6Jpy-A\"\n}"},{"id":"1735cba2-9751-4b77-a7ea-737d7ac71e34","name":"Invalid credentials","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"testuser@example.com\",\n    \"password\": \"Password182@!2\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/auth/login"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"99"},{"key":"date","value":"Sun, 29 Jun 2025 15:22:13 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 401,\n    \"errorId\": \"invalid-credentials\",\n    \"error\": \"Invalid email and password combination\"\n}"}],"_postman_id":"16b6c262-7ce4-44d8-8260-78e967a20fc8"},{"name":"Check availability","id":"fb0fff0f-994d-4066-adcb-61689e2d3914","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/auth/check?username=abcduser21&email=swaglord@kenko.app","description":"<p>Endpoint for checking whether email or username is already taken by other user. This request takes two query parameters.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["auth","check"],"host":["http://127.0.0.1:3000"],"query":[{"key":"username","value":"abcduser21"},{"key":"email","value":"swaglord@kenko.app"}],"variable":[]}},"response":[{"id":"e0315663-a68f-4139-929b-5e2b5656ee27","name":"Both unavailable","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://127.0.0.1:3000/auth/check?username=abcduser21&email=swaglord@kenko.app","host":["http://127.0.0.1:3000"],"path":["auth","check"],"query":[{"key":"username","value":"abcduser21"},{"key":"email","value":"swaglord@kenko.app"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"50"},{"key":"date","value":"Thu, 03 Jul 2025 16:19:13 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"usernameAvailable\": false,\n    \"emailAvailable\": false\n}"}],"_postman_id":"fb0fff0f-994d-4066-adcb-61689e2d3914"}],"id":"ca80b71e-815b-4b95-b11d-6a91f37b4d65","_postman_id":"ca80b71e-815b-4b95-b11d-6a91f37b4d65","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Users","item":[{"name":"Update avatar","id":"e3a41a15-8d35-44e7-b2b0-1da6a4d252b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"avatar","type":"file","uuid":"075c1463-f654-4c51-8b9c-8a37d59a339c","src":"postman-cloud:///1f051d1c-1c36-4c30-9e31-428f0f60cf24"}]},"url":"http://127.0.0.1:3000/users/me/avatar","description":"<p>Update user avatar, you need to send file using form-data in field called <code>avatar</code>. File needs to be in either <code>image/png</code> or <code>image/jpeg</code> mime type.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me","avatar"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"9a9bac3b-70d5-43f2-8841-82dd54eaa0c6","name":"Avatar set","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"avatar","type":"file","uuid":"075c1463-f654-4c51-8b9c-8a37d59a339c","src":"postman-cloud:///1f051d1c-1c36-4c30-9e31-428f0f60cf24"}]},"url":"http://127.0.0.1:3000/users/me/avatar"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"0"},{"key":"date","value":"Sun, 29 Jun 2025 16:02:03 GMT"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"e3a41a15-8d35-44e7-b2b0-1da6a4d252b5"},{"name":"Full info","id":"914fd152-3c3e-4fbf-9d33-8fac0cc1ac7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/users/me","description":"<p>Returns full user information with details, preferences and goals. The returned <code>weight</code> and <code>height</code> is automatically converted to user selected unit.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"bb696162-8be0-46f4-b9e3-eed37957dd7b","name":"User info","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/users/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"493"},{"key":"date","value":"Sat, 05 Jul 2025 14:46:53 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"d5c415f9-ecf9-4602-8c2d-10c4d2db8aa4\",\n    \"username\": \"testuser2\",\n    \"displayName\": \"testuser2\",\n    \"email\": \"testuser2@kenko.app\",\n    \"avatarUrl\": \"http://127.0.0.1:3000/public/avatars/default.jpg\",\n    \"sex\": \"male\",\n    \"weight\": \"80 kg\",\n    \"height\": \"180 cm\",\n    \"dateOfBirth\": \"1995-12-31\",\n    \"dietKind\": \"classic\",\n    \"theme\": \"system\",\n    \"language\": \"en\",\n    \"bmr\": 1785,\n    \"baseTdee\": 3253,\n    \"tdee\": 2703,\n    \"proteinTarget\": 160,\n    \"fatTarget\": 75,\n    \"carbTarget\": 347,\n    \"proteinDist\": 25,\n    \"fatDist\": 25,\n    \"carbDist\": 50,\n    \"createdAt\": \"2025-07-05T14:46:38.874755Z\"\n}"}],"_postman_id":"914fd152-3c3e-4fbf-9d33-8fac0cc1ac7f"},{"name":"Update details","id":"07532f02-3d94-4de4-a6ad-5822daf7d4b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"sex\": \"male\",\n    \"weightKg\": 72.82,\n    \"heightCm\": 138,\n    \"dateOfBirth\": \"2000-12-20\",\n    \"idleActivity\": 2,\n    \"workoutActivity\": 4,\n    \"dietKind\": \"vegan\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me/details","description":"<p>Endpoint to update user details, all fields in the body are optional, tho you have to send at least one or else you will get an error.</p>\n<h4 id=\"params\">Params</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sex</code></td>\n<td>one of: <code>male</code>, <code>female</code></td>\n</tr>\n<tr>\n<td><code>weightKg</code></td>\n<td>Weight in kilograms, e.g. <code>67.42</code>, <code>46.62</code></td>\n</tr>\n<tr>\n<td><code>weightLb</code></td>\n<td>Weight in pounds, e.g. <code>142</code>, <code>175.23</code></td>\n</tr>\n<tr>\n<td><code>weightSt</code></td>\n<td>Weight in stones, e.g. <code>4</code>, <code>7</code></td>\n</tr>\n<tr>\n<td><code>heightCm</code></td>\n<td>Height in centimeters, <code>172</code>, <code>153</code></td>\n</tr>\n<tr>\n<td><code>heightFt</code></td>\n<td>Height in feets, e.g. <code>6</code>, <code>4</code></td>\n</tr>\n<tr>\n<td><code>heightIn</code></td>\n<td>Height in inches, e.g. <code>11</code>, <code>9</code></td>\n</tr>\n<tr>\n<td><code>dateOfBirth</code></td>\n<td>Date in <code>YYYY-MM-DD</code> format, <code>1998-12-27</code></td>\n</tr>\n<tr>\n<td><code>dietKind</code></td>\n<td>one of: <code>vegetarian</code>, <code>vegan</code>, <code>pescatarian</code>, <code>ketogenic</code>, <code>classic</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><em>NOTE:</em> <code>weightLb</code> <em>and</em> <code>weightSt</code> <em>must be sent together if user's preferred weight unit is stones and pounds, same thing applies to</em> <code>heightFt</code> <em>and</em> <code>heightIn</code></p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me","details"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"728206e6-1cbe-4343-923c-1baa1df98ff4","name":"Updated","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"isMale\": true,\n    \"weight\": 72.82,\n    \"height\": 138,\n    \"dateOfBirth\": \"2000-12-20\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me/details"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"date","value":"Sun, 29 Jun 2025 15:58:57 GMT"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"07532f02-3d94-4de4-a6ad-5822daf7d4b9"},{"name":"Update preferences","id":"f7d1830b-2f64-494a-b42c-000f75cf2fb1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"theme\": \"dark\",\n    \"language\": \"en\",\n    \"weightUnit\": \"kg\",\n    \"heightUnit\": \"ft_in\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me/preferences","description":"<p>Endpoint to update user preferences, all fields in the body are optional so you can send only ones that need to be updated. At least one field needs to be provided.</p>\n<h4 id=\"params\">Params</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>theme</code></td>\n<td><code>system</code>, <code>dark</code>, <code>light</code></td>\n</tr>\n<tr>\n<td><code>language</code></td>\n<td><code>en</code>, <code>pl</code></td>\n</tr>\n<tr>\n<td><code>weightUnit</code></td>\n<td><code>kg</code>, <code>lb</code></td>\n</tr>\n<tr>\n<td><code>heightUnit</code></td>\n<td><code>cm</code>, <code>ft_in</code></td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me","preferences"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"b47a3437-cd2f-43b1-a39f-1cb2eb83ec52","name":"Updated","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"theme\": \"dark\",\n    \"language\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me/preferences"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"date","value":"Sun, 29 Jun 2025 16:00:45 GMT"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"f7d1830b-2f64-494a-b42c-000f75cf2fb1"},{"name":"Update goals","id":"7e9f2001-f095-41fb-ac9d-d480625ff06d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"goalDiffPerWeek\": 0.5,\n    \"weightGoal\": \"gain\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me/goals","description":"<p>Updates user's nutrition goals</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me","goals"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"7e9f2001-f095-41fb-ac9d-d480625ff06d"},{"name":"Delete avatar","id":"5b4d3fae-e8e0-41d2-985c-530fa4c0902e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"}],"url":"http://127.0.0.1:3000/users/me/avatar","description":"<p>Delete user avatar, resetting to the default one.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me","avatar"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"5b4d3fae-e8e0-41d2-985c-530fa4c0902e"},{"name":"Delete account","id":"b61e347d-4147-423d-8d75-b6dfe33bb3b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\n    \"password\": \"Password182@!\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/users/me","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["users","me"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"b61e347d-4147-423d-8d75-b6dfe33bb3b7"}],"id":"0c6391e8-85aa-4aca-974c-ece761d639af","_postman_id":"0c6391e8-85aa-4aca-974c-ece761d639af","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Nutrients","item":[{"name":"Update macros distribution","id":"dff27ad5-0cfd-4a0f-b3e1-3c142ded1602","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 40,\n    \"fat\": 20,\n    \"carb\": 40\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/distribution","description":"<p>Update user's macronutrients (kcal) distribution relative to TDEE. The distribution sum must add up to 100%.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["nutrients","distribution"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"92f55f9a-8a07-4a56-ba18-21289853c436","name":"Updated","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 40,\n    \"fat\": 20,\n    \"carb\": 40\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/distribution"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"0"},{"key":"date","value":"Sat, 05 Jul 2025 16:15:23 GMT"}],"cookie":[],"responseTime":null,"body":null},{"id":"2d87120e-b702-4734-aa48-8611632c2e6b","name":"Distribution sum above 100%","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 30,\n    \"fat\": 25,\n    \"carb\": 70\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/distribution"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"133"},{"key":"date","value":"Sat, 05 Jul 2025 16:12:05 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"errorId\": \"distribution-above-limit\",\n    \"error\": \"Distribution above limit! Make sure that everything sums up to 100%\"\n}"}],"_postman_id":"dff27ad5-0cfd-4a0f-b3e1-3c142ded1602"},{"name":"Update macros target","id":"491cff34-143e-4895-bb93-9e650d61e9ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 160,\n    \"fat\": 40,\n    \"carb\": 200\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/target","description":"<p>Update user's macronutrients (kcal) distribution relative to TDEE. The distribution sum must add up to 100%.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["nutrients","target"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"2df0b089-6300-4a9a-a00c-dfa72c4275a7","name":"Updated","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 40,\n    \"fat\": 20,\n    \"carb\": 40\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/distribution"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"0"},{"key":"date","value":"Sat, 05 Jul 2025 16:15:23 GMT"}],"cookie":[],"responseTime":null,"body":null},{"id":"674c675c-0d6b-47eb-a14e-9e6344f9218d","name":"Distribution sum above 100%","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"protein\": 30,\n    \"fat\": 25,\n    \"carb\": 70\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/nutrients/distribution"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"133"},{"key":"date","value":"Sat, 05 Jul 2025 16:12:05 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"errorId\": \"distribution-above-limit\",\n    \"error\": \"Distribution above limit! Make sure that everything sums up to 100%\"\n}"}],"_postman_id":"491cff34-143e-4895-bb93-9e650d61e9ea"}],"id":"22a64aee-33ad-4bf5-906b-6dd4a8a09cf5","_postman_id":"22a64aee-33ad-4bf5-906b-6dd4a8a09cf5","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Products","item":[{"name":"Search products","id":"e4371488-49f2-4e2b-8ff1-c06a08ff7996","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/products?query=kinder","description":"<p>Search through the products database using custom query, returns an array of products matching the query.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["products"],"host":["http://127.0.0.1:3000"],"query":[{"description":{"content":"<p>Search query, can be anything including product name, brand and ingredients</p>\n","type":"text/plain"},"key":"query","value":"kinder"}],"variable":[]}},"response":[{"id":"1f4b6415-9ff1-4600-9472-e4675bd388c8","name":"Products","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://127.0.0.1:3000/products?query=kinder","host":["http://127.0.0.1:3000"],"path":["products"],"query":[{"key":"query","value":"kinder","description":"Search query, can be anything including product name, brand and ingredients"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"196"},{"key":"date","value":"Thu, 17 Jul 2025 17:31:26 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": \"2d232ea7-dac5-415e-a685-a54a7cb0dd93\",\n        \"name\": \"Kinder Bueno\",\n        \"barcode\": 12345678,\n        \"brand\": \"Milka\",\n        \"ingredients\": \"aha\",\n        \"unit\": \"grams\",\n        \"quantity\": 1500,\n        \"calories\": 15,\n        \"proteins\": 15,\n        \"fats\": 15,\n        \"carbohydrates\": 15\n    }\n]"},{"id":"a4966c01-63c2-48a3-9423-9526fb1cd8d2","name":"Not found","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://127.0.0.1:3000/products?query=macchiato","host":["http://127.0.0.1:3000"],"path":["products"],"query":[{"key":"query","value":"macchiato","description":"Search query, can be anything including product name, brand and ingredients"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"2"},{"key":"date","value":"Sun, 29 Jun 2025 16:04:27 GMT"}],"cookie":[],"responseTime":null,"body":"[]"}],"_postman_id":"e4371488-49f2-4e2b-8ff1-c06a08ff7996"},{"name":"Find product by barcode","id":"38a2c0e8-fb35-4e21-a703-9ae6cd504117","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/products/barcode/12345678","description":"<p>Finds product in the database using provided barcode.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["products","barcode","12345678"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"d4222eab-f769-4e51-9f00-e8a9b9c356f2","name":"Found","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/products/barcode/12345678"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"194"},{"key":"date","value":"Thu, 17 Jul 2025 17:31:59 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"2d232ea7-dac5-415e-a685-a54a7cb0dd93\",\n    \"name\": \"Kinder Bueno\",\n    \"barcode\": 12345678,\n    \"ingredients\": \"aha\",\n    \"unit\": \"grams\",\n    \"quantity\": 1500,\n    \"calories\": 15,\n    \"proteins\": 15,\n    \"fats\": 15,\n    \"carbohydrates\": 15\n}"},{"id":"4fa3786b-25f9-4953-a5d8-5244660fab7f","name":"Not Found","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/products/barcode/1234567892"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"75"},{"key":"date","value":"Sun, 29 Jun 2025 16:11:34 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"product-not-found\",\n    \"error\": \"No product found\"\n}"}],"_postman_id":"38a2c0e8-fb35-4e21-a703-9ae6cd504117"}],"id":"4d8183df-7aed-430d-a8f6-d3e42a4e99e2","_postman_id":"4d8183df-7aed-430d-a8f6-d3e42a4e99e2","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Meals","item":[{"name":"Add product","id":"994c984d-01ef-497a-ab1b-dcf80cfc17fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"d80e7db3-619a-4de0-b2f6-03679bee0591\",\n    \"productId\": \"2d232ea7-dac5-415e-a685-a54a7cb0dd93\",\n    \"quantity\": 300\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals//products","description":"<p>Add product from products database to a section. Quantity is provided in grams.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals","","products"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"d990e35b-05d5-4cd3-a3f2-a00c08cd2f1c","name":"Product added","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"01c4ecfa-cfc7-46a6-9f53-7ed3bba8f96f\",\n    \"productId\": \"bebc9d57-14cf-4c49-9784-536900b06870\",\n    \"quantity\": 200\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals//products"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"148"},{"key":"date","value":"Sun, 29 Jun 2025 17:23:03 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"productId\": \"bebc9d57-14cf-4c49-9784-536900b06870\",\n    \"quantity\": 200,\n    \"name\": \"Kinder Bueno\",\n    \"calories\": 15,\n    \"proteins\": 23,\n    \"fats\": 262,\n    \"carbohydrates\": 613\n}"},{"id":"81b9c58d-33e1-4ceb-a3b1-dea0e3a6dfed","name":"Invalid product id","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"6ebb7ac4-f86f-45f8-8b6c-a9d3399f490b\",\n    \"productId\": \"bebc9d57-14cf-4c49-9784-536900b06871\",\n    \"quantity\": 200\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals//products"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"75"},{"key":"date","value":"Sun, 29 Jun 2025 16:27:05 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"product-not-found\",\n    \"error\": \"No product found\"\n}"},{"id":"d90a92cf-7bf1-4bf6-8477-431f4f8bb133","name":"Invalid section ID","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"01c4ecfa-cfc7-46a6-9f53-7ed3bba8f96b\",\n    \"productId\": \"bebc9d57-14cf-4c49-9784-536900b06870\",\n    \"quantity\": 200\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals//products"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"99"},{"key":"date","value":"Sun, 29 Jun 2025 17:24:03 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"meal-section-not-found\",\n    \"error\": \"Meal section with this ID not found\"\n}"}],"_postman_id":"994c984d-01ef-497a-ab1b-dcf80cfc17fd"},{"name":"Quick add product","id":"820d2a1a-2bec-4893-adf8-18a938a69ffe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"7c177f57-7b3f-478d-8f88-316230098dca\",\n    \"name\": \"Kinder Bueno\",\n    \"unit\": \"g\",\n    \"calories\": 2600,\n    \"proteins\": 30,\n    \"fats\": 55,\n    \"carbohydrates\": 100,\n    \"quantity\": 1000\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals//products/quick","description":"<p>Quick add meal product to provided user section</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals","","products","quick"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"0fd5b56b-e1b4-4ffb-85c7-3201ccfccd2e","name":"Product added","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"01c4ecfa-cfc7-46a6-9f53-7ed3bba8f96f\",\n    \"name\": \"Wasser\",\n    \"calories\": 1,\n    \"proteins\": 1,\n    \"fats\": 1,\n    \"carbohydrates\": 1,\n    \"quantity\": 1000\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals/2025-06-26/products/quick"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"86"},{"key":"date","value":"Sun, 29 Jun 2025 17:23:41 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"quantity\": 1000,\n    \"name\": \"Wasser\",\n    \"calories\": 1,\n    \"proteins\": 1,\n    \"fats\": 1,\n    \"carbohydrates\": 1\n}"},{"id":"b8e10320-14ad-41fa-84dd-7ffef76011fd","name":"Invalid section ID","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"sectionId\": \"01c4ecfa-cfc7-46a6-9f53-7ed3bba8f96b\",\n    \"name\": \"Wasser\",\n    \"calories\": 1,\n    \"proteins\": 1,\n    \"fats\": 1,\n    \"carbohydrates\": 1,\n    \"quantity\": 1000\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/meals/2025-06-26/products/quick"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"99"},{"key":"date","value":"Sun, 29 Jun 2025 17:23:51 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"meal-section-not-found\",\n    \"error\": \"Meal section with this ID not found\"\n}"}],"_postman_id":"820d2a1a-2bec-4893-adf8-18a938a69ffe"},{"name":"Day","id":"bf0ed517-f082-489d-9f24-cc4d333f698d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals/","description":"<p>Get user's meal products linked to corresponding sections for specific date. The date must be in <code>YYYY-MM-DD</code> format. For example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-antlr4\">GET /meals/2025-06-23\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals",""],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"6203f6d2-2e79-4dab-8934-06b185175cf4","name":"Meal Products","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"319"},{"key":"date","value":"Sun, 29 Jun 2025 16:15:28 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"304dc3e2-1ad1-4d82-963d-4b28053a9d3a\": [\n        {\n            \"id\": \"e0bce91b-4981-4f28-99b6-54214203efeb\",\n            \"quantity\": 1000,\n            \"name\": \"Wasser\",\n            \"calories\": 1,\n            \"proteins\": 1,\n            \"fats\": 1,\n            \"carbohydrates\": 1\n        }\n    ],\n    \"6ebb7ac4-f86f-45f8-8b6c-a9d3399f490b\": [\n        {\n            \"id\": \"43c7124b-6c29-492c-bae3-4c720d7a1f49\",\n            \"productId\": \"bebc9d57-14cf-4c49-9784-536900b06870\",\n            \"quantity\": 200,\n            \"name\": \"Kinder Bueno\",\n            \"calories\": 15,\n            \"proteins\": 23,\n            \"fats\": 262,\n            \"carbohydrates\": 613\n        }\n    ]\n}"},{"id":"f5f553bf-44fa-4550-9f5e-5f6a1285b734","name":"No Products","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"2"},{"key":"date","value":"Sun, 29 Jun 2025 16:15:49 GMT"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"bf0ed517-f082-489d-9f24-cc4d333f698d"},{"name":"Calculate macro","id":"785a0b9c-6111-4054-90be-9683d580a89e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals//macros","description":"<p>Returns user's per section and total macros for specific date</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals","","macros"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"aff7fd1b-4c86-40fe-a6e1-346a340246f1","name":"Macros","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals//macros"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"245"},{"key":"date","value":"Sat, 05 Jul 2025 17:05:49 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"fda5aa93-7a59-41a1-9be2-339f95332391\": {\n        \"calories\": 15,\n        \"proteins\": 30,\n        \"fats\": 55,\n        \"carbs\": 100\n    },\n    \"d80e7db3-619a-4de0-b2f6-03679bee0591\": {\n        \"calories\": 30,\n        \"proteins\": 60,\n        \"fats\": 110,\n        \"carbs\": 200\n    },\n    \"total\": {\n        \"calories\": 45,\n        \"proteins\": 90,\n        \"fats\": 165,\n        \"carbs\": 300\n    }\n}"}],"_postman_id":"785a0b9c-6111-4054-90be-9683d580a89e"},{"name":"Calorie streak","id":"d1de18ef-e10f-4139-87f6-7ca30a68ddb7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/meals/streak","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals","streak"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"d1de18ef-e10f-4139-87f6-7ca30a68ddb7"},{"name":"Delete products for date","id":"c0f5f76e-94d4-4f5c-9236-336ff8502aec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/meals/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals",""],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0f5f76e-94d4-4f5c-9236-336ff8502aec"},{"name":"Delete products for section","id":"8bb07d07-35f7-4b99-9691-b49eb771f5e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/meals/?section_id=43c7124b-6c29-492c-bae3-4c720d7a1f49","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals",""],"host":["http://127.0.0.1:3000"],"query":[{"key":"section_id","value":"43c7124b-6c29-492c-bae3-4c720d7a1f49"}],"variable":[]}},"response":[],"_postman_id":"8bb07d07-35f7-4b99-9691-b49eb771f5e4"},{"name":"Delete product","id":"872f2725-9095-4380-abbb-30ed5abe5bcf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/meals/products/d53902e7-1195-405e-b2ff-c5cd987a1f62","description":"<p>Delete specified meal product from user's meal day</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["meals","products","d53902e7-1195-405e-b2ff-c5cd987a1f62"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"b8ab6c92-bdb4-4213-be0f-461a852fdf97","name":"Deleted","originalRequest":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/meals/products/d53902e7-1195-405e-b2ff-c5cd987a1f62"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"date","value":"Sun, 29 Jun 2025 16:30:13 GMT"}],"cookie":[],"responseTime":null,"body":null},{"id":"205ebb7f-5f07-4845-8a02-fcdcc065998d","name":"Product not found","originalRequest":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/meals/products/d53902e7-1195-405e-b2ff-c5cd987a1f62"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"99"},{"key":"date","value":"Sun, 29 Jun 2025 16:28:40 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"meal-product-not-found\",\n    \"error\": \"Meal product with this ID not found\"\n}"}],"_postman_id":"872f2725-9095-4380-abbb-30ed5abe5bcf"}],"id":"f5481961-9fb3-44ce-971c-652887b5f190","_postman_id":"f5481961-9fb3-44ce-971c-652887b5f190","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Sections","item":[{"name":"Create section","id":"f68f5bef-d82f-4510-afe4-96cd7690042a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"icon\": 4,\n    \"name\": \"ahaxd\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections","description":"<p>Add new meal section to user's layout</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"e0134d3e-93e1-4798-bee0-9223566008c0","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"index\": 4,\n    \"label\": \"ahaxd\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"71"},{"key":"date","value":"Sun, 29 Jun 2025 16:40:33 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"7f42813c-b7be-49cd-af7b-bacd9e5c7a7f\",\n    \"index\": 4,\n    \"label\": \"ahaxd\"\n}"},{"id":"ac34150a-78ce-4171-82b1-2a465e372cb6","name":"Section index already used","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"index\": 2,\n    \"label\": \"ahaxd\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"102"},{"key":"date","value":"Sun, 29 Jun 2025 16:39:43 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 409,\n    \"errorId\": \"section-index-taken\",\n    \"error\": \"Section conflict, please use unique index\"\n}"}],"_postman_id":"f68f5bef-d82f-4510-afe4-96cd7690042a"},{"name":"Reset section layout","id":"fcb1d75d-7913-42d7-91f0-b74686991af3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"http://127.0.0.1:3000/sections/reset","description":"<p>Deletes all user sections and resets it to the default layout returning it.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections","reset"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"7f90f293-f21d-4dc3-b8e8-d20599f6dae5","name":"Success","originalRequest":{"method":"POST","header":[],"url":"http://127.0.0.1:3000/sections/reset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"222"},{"key":"date","value":"Sun, 29 Jun 2025 16:49:37 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": \"01c4ecfa-cfc7-46a6-9f53-7ed3bba8f96f\",\n        \"index\": 0,\n        \"label\": \"Breakfast\"\n    },\n    {\n        \"id\": \"14e38555-d3a4-49a5-b2f1-1068a567e7cd\",\n        \"index\": 1,\n        \"label\": \"Lunch\"\n    },\n    {\n        \"id\": \"b9d72749-cd71-41e4-8c27-d955af8057a1\",\n        \"index\": 2,\n        \"label\": \"Dinner\"\n    }\n]"}],"_postman_id":"fcb1d75d-7913-42d7-91f0-b74686991af3"},{"name":"Available icons","id":"db88437b-68b7-493e-ac57-cc2cc3e9f7b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/sections/icons","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections","icons"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"db88437b-68b7-493e-ac57-cc2cc3e9f7b5"},{"name":"User sections","id":"8f12274a-58db-409b-b9b8-34a6df9ac90c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/sections","description":"<p>Get a list of user created sections</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"c5b00eae-bb54-459d-ba6e-1d6351b2abeb","name":"Sections","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/sections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"294"},{"key":"date","value":"Sun, 29 Jun 2025 16:47:01 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": \"6ebb7ac4-f86f-45f8-8b6c-a9d3399f490b\",\n        \"index\": 0,\n        \"label\": \"Breakfast\"\n    },\n    {\n        \"id\": \"304dc3e2-1ad1-4d82-963d-4b28053a9d3a\",\n        \"index\": 1,\n        \"label\": \"Lunch\"\n    },\n    {\n        \"id\": \"578af9a4-28aa-4698-b955-361950c99970\",\n        \"index\": 2,\n        \"label\": \"Dinner\"\n    },\n    {\n        \"id\": \"7f42813c-b7be-49cd-af7b-bacd9e5c7a7f\",\n        \"index\": 4,\n        \"label\": \"ahaxd\"\n    }\n]"}],"_postman_id":"8f12274a-58db-409b-b9b8-34a6df9ac90c"},{"name":"Update section","id":"14f7fa9f-36d7-4424-9042-b109e2a370ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"test\",\n    \"icon\": 3\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections/c6169b73-4d8a-42aa-b078-e5e7752fda76","description":"<p>Update section details, all body fields are optional so you can only send values which need to be updated. Index starts from 0.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections","c6169b73-4d8a-42aa-b078-e5e7752fda76"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"c0dca456-26a4-493d-b069-4a09df520744","name":"Updated","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"index\": 6,\n    \"label\": \"abcdefgh\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections/6ebb7ac4-f86f-45f8-8b6c-a9d3399f490b"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"74"},{"key":"date","value":"Sun, 29 Jun 2025 16:48:38 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"6ebb7ac4-f86f-45f8-8b6c-a9d3399f490b\",\n    \"index\": 6,\n    \"label\": \"abcdefgh\"\n}"},{"id":"13fcb7a5-f0e3-4959-bef8-51a94b398c0c","name":"Section not found","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"index\": 3,\n    \"label\": \"abcdefgh\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:3000/sections/8dff7f2a-9c5e-4ca7-9753-fe7b479695ae"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"98"},{"key":"date","value":"Sun, 29 Jun 2025 16:48:22 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"section-not-found\",\n    \"error\": \"Section with this ID could not be found\"\n}"}],"_postman_id":"14f7fa9f-36d7-4424-9042-b109e2a370ea"},{"name":"Delete section","id":"b01d1c21-a598-45b3-a5f1-103e4673c0e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/sections/0b0013ba-6dc1-4dc0-9308-bef91eee9201","description":"<p>Delete user section using provided id</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["sections","0b0013ba-6dc1-4dc0-9308-bef91eee9201"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[{"id":"707dd72e-d00e-481d-96ae-1fc1618b4a4a","name":"Deleted","originalRequest":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/sections/304dc3e2-1ad1-4d82-963d-4b28053a9d3a"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"date","value":"Sun, 29 Jun 2025 16:49:03 GMT"}],"cookie":[],"responseTime":null,"body":null},{"id":"2bfe8014-bd5a-40ff-abe2-37bf1998cb7a","name":"Section not found","originalRequest":{"method":"DELETE","header":[],"url":"http://127.0.0.1:3000/sections/8dff7f2a-9c5e-4ca7-9753-fe7b479695ae"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"content-type","value":"application/json"},{"key":"vary","value":"origin, access-control-request-method, access-control-request-headers"},{"key":"access-control-allow-credentials","value":"true"},{"key":"content-length","value":"98"},{"key":"date","value":"Sun, 29 Jun 2025 16:48:50 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 404,\n    \"errorId\": \"section-not-found\",\n    \"error\": \"Section with this ID could not be found\"\n}"}],"_postman_id":"b01d1c21-a598-45b3-a5f1-103e4673c0e7"}],"id":"61a0aab1-f9c6-41b8-9894-2bb47bf39501","_postman_id":"61a0aab1-f9c6-41b8-9894-2bb47bf39501","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}}},{"name":"Health Check","id":"cd2cbab9-a224-4633-85ef-5b048753ffc1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:3000/health","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","id":"a8b34070-1fa7-49f7-b9bc-8bea8f9fc45b","name":"Kenko API","type":"collection"}},"urlObject":{"path":["health"],"host":["http://127.0.0.1:3000"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd2cbab9-a224-4633-85ef-5b048753ffc1"}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"e67973d0-1793-4317-abc9-239de7cfd4ed","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"9df0d983-c9f3-4939-bb69-03e3fe24b068","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"id":"2177ad99-8ab3-4de7-84ba-aef9b819a2f5","key":"base_url","value":"http://127.0.0.1:3000","type":"string"},{"id":"6664cfc9-3b91-4b8e-b22d-470bcaff8569","key":"date","value":"","type":"string"}]}