{"info":{"_postman_id":"6c6da623-e5a4-4a27-8aff-e98dc2eb3b62","name":"Api Ticket_Yay","description":"<html><head></head><body><p>This system is a REST API designed to manage ticket sales and purchases for various events, such as concerts, conferences or workshops. This API was developed using Node.js and Express as the backend framework, with MongoDB as the main database for storing information related to events, tickets and user transactions. Redis is used for caching and session management, which improves system performance and efficiency.</p>\n<h6 id=\"base-url-api-v1\">Base Url Api V1</h6>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-properties\">http://localhost:3000/api/v1\n\n</code></pre>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"32681373","collectionId":"6c6da623-e5a4-4a27-8aff-e98dc2eb3b62","publishedId":"2sAXjJ6CxP","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-08-28T09:01:32.000Z"},"item":[{"name":"Auth","item":[{"name":"Register","event":[{"listen":"test","script":{"id":"f32c47cf-b7ea-4580-a60c-4949374680ea","exec":["pm.test(\"Response status code is 201\", function () {\r","    pm.expect(pm.response.code).to.equal(201);\r","});\r","\r","\r","pm.test(\"Response has the required fields - status and message\", function () {\r","    const responseData = pm.response.json();\r","\r","    pm.expect(responseData).to.be.an('object');\r","    pm.expect(responseData.status).to.exist;\r","    pm.expect(responseData.message).to.exist;\r","});\r","\r","\r","pm.test(\"Status is a non-empty string\", function () {\r","    const responseData = pm.response.json();\r","    \r","    pm.expect(responseData.status).to.be.a('string').and.to.have.lengthOf.at.least(1, \"Status should not be empty\");\r","});\r","\r","\r","pm.test(\"Message is a non-empty string\", function () {\r","  const responseData = pm.response.json();\r","  \r","  pm.expect(responseData.message).to.be.a('string').and.to.have.lengthOf.at.least(1, \"Message should not be empty\");\r","});\r","\r","\r","pm.test(\"Content-Type header is application/json\", function () {\r","  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"957ea46a-adcc-4472-8a1c-32c54afec2a0","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"first_name\": \"John\",\r\n  \"last_name\": \"Doe\",\r\n  \"email\": \"JohnDoe@gmail.com\",\r\n  \"gender\": \"male\",\r\n  \"birthdate\": \"2024-12-09\",\r\n  \"password\": \"123Password\",\r\n  \"confirm_password\": \"123Password\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/register","description":"<p>This endpoint is used to register new users.</p>\n","urlObject":{"path":["auth","register"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"31d0e469-6bd8-4528-a49e-059f01f50366","name":"success respon","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"first_name\": \"John\",\r\n  \"last_name\": \"Doe\",\r\n  \"email\": \"JohnDoe@gmail.com\",\r\n  \"gender\": \"male\",\r\n  \"birthdate\": \"2024-12-09\",\r\n  \"password\": \"123Password\",\r\n  \"confirm_password\": \"123Password\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"61"},{"key":"ETag","value":"W/\"3d-wWuquV2pqcnupndFZA66qtYa5Tc\""},{"key":"Date","value":"Wed, 28 Aug 2024 04:52:34 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User registered successfully\"\n}"}],"_postman_id":"957ea46a-adcc-4472-8a1c-32c54afec2a0"},{"name":"Login","id":"c95429dc-4256-4e5c-8d7b-4dd833fb14e2","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"JohnDoe@gmail.com\",\r\n  \"password\": \"123Password\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/login","description":"<p>This endpoint is used for user login with email and password. If authentication is successful, the server will send the access token and refresh token.</p>\n","urlObject":{"path":["auth","login"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"4a485188-23b7-4e6a-9cef-8b021a3a3cad","name":"Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"JohnDoe@gmail.com\",\r\n  \"password\": \"123Password\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"619"},{"key":"ETag","value":"W/\"26b-1pnHRMoOhEkAntZwU45i/q6wgdc\""},{"key":"Date","value":"Wed, 28 Aug 2024 04:54:47 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User logged in successfully\",\n    \"data\": {\n        \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NmNlYWQxMjIwY2E2ZGU5ZWE0ZDNkMzEiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzI0ODIwODg3LCJleHAiOjE3MjQ5MDcyODcsImF1ZCI6IkFQSSIsImlzcyI6IkFQSSIsInN1YiI6ImpvaG5kb2VAZ21haWwuY29tIn0.EBhMcpPHmU29CiuFDXeVBdqyqFGt5zA11e0_shSy0o4\",\n        \"refreshToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NmNlYWQxMjIwY2E2ZGU5ZWE0ZDNkMzEiLCJ0eXBlIjoicmVmcmVzaCIsImlhdCI6MTcyNDgyMDg4NywiZXhwIjoxNzI0OTA3Mjg3LCJhdWQiOiJBUEkiLCJpc3MiOiJBUEkiLCJzdWIiOiJqb2huZG9lQGdtYWlsLmNvbSJ9.l3heFM-ZofH1EO4sG_xSZEVbnfsVrlvPTvQhxqY_kkA\"\n    }\n}"}],"_postman_id":"c95429dc-4256-4e5c-8d7b-4dd833fb14e2"},{"name":"logout","id":"a7665d6b-baae-43a0-b42a-d43db6e00b94","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"refreshToken\" : \"\" ////gunakan refreshtoken yg disimpan\r\n}","options":{"raw":{"language":"json"}}},"url":"/auth/logout","description":"<p>This endpoint is used to log out the user and remove the refresh token from the server.</p>\n<blockquote>\n<p>Dont forget to remove your access token and refresh token from your device when logout</p>\n</blockquote>\n","urlObject":{"path":["auth","logout"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"76c8e83b-c5ae-49a6-9791-7c53238d161d","name":"logout","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"refreshToken\" : \"\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/auth/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"61"},{"key":"ETag","value":"W/\"3d-dOpBAULxHtr7+aIW1TeWWSR6pVo\""},{"key":"Date","value":"Wed, 28 Aug 2024 05:27:25 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User logged out successfully\"\n}"}],"_postman_id":"a7665d6b-baae-43a0-b42a-d43db6e00b94"},{"name":"Refresh Token","id":"9d229ce3-10e2-47a1-9ae9-845e1cdaf47f","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"method":"POST","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"refreshToken\" : \"\" //gunakan refreshtoken yg disimpan\r\n}","options":{"raw":{"language":"json"}}},"url":"/auth/refresh-token","description":"<p>This endpoint is used to get a new access token using a valid refresh token.</p>\n<p>Use HTTP Interceptor, This endpoint will be called automatically using HTTP interceptor if the access token has expired.</p>\n","urlObject":{"path":["auth","refresh-token"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"e0bb8ba5-5ab9-4933-b971-19f3511189f4","name":"Refresh Token","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","type":"text","disabled":true},{"key":"Refresh-Authorization","value":"","type":"text","disabled":true}],"body":{"mode":"urlencoded","urlencoded":[{"key":"refreshToken","value":"","type":"text"}]},"url":"/auth/refresh-token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"341"},{"key":"ETag","value":"W/\"155-3eTaYFaZT6AwFRZrb3cYXsKgKaM\""},{"key":"Date","value":"Wed, 28 Aug 2024 05:27:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Token refreshed successfully\",\n    \"data\": {\n        \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NmNlYWQxMjIwY2E2ZGU5ZWE0ZDNkMzEiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzI0ODIyODU4LCJleHAiOjE3MjQ5MDkyNTgsImF1ZCI6IkFQSSIsImlzcyI6IkFQSSIsInN1YiI6ImpvaG5kb2VAZ21haWwuY29tIn0.MzFRyygY3lJFDg2J3XnfPdSq9iNPPrF673DZcDz-res\"\n    }\n}"}],"_postman_id":"9d229ce3-10e2-47a1-9ae9-845e1cdaf47f"}],"id":"41625608-4688-427f-bd87-f7137bb40659","description":"<p>(Auth) is designed to manage user login, registration and authentication processes using JSON Web Tokens (JWT). This system uses access tokens and refresh tokens to provide secure and efficient access to protected resources.</p>\n<h4 id=\"token-storage\"><strong>Token Storage</strong></h4>\n<p>When Login you will get respon data access token and refresh token</p>\n<ul>\n<li><p>Access Token: It is recommended to store the access token in application memory (for example, in a state variable) and not in local storage or session storage to avoid the risk of XSS (Cross-Site Scripting) attacks.</p>\n</li>\n<li><p>Refresh Token: Refresh tokens should be stored in HTTP-only secure cookies to ensure their security and protect against XSS attacks.</p>\n</li>\n</ul>\n<p>For a more in-depth explanation and code examples, you can refer to these resources:</p>\n<ul>\n<li><p><a href=\"https://auth0.com/docs/secure/tokens/json-web-tokens\">https://auth0.com/docs/secure/tokens/json-web-tokens</a></p>\n</li>\n<li><p><a href=\"https://dev.to/zenstok/how-to-implement-refresh-tokens-with-token-rotation-in-nestjs-1deg\">https://dev.to/zenstok/how-to-implement-refresh-tokens-with-token-rotation-in-nestjs-1deg</a></p>\n</li>\n</ul>\n<h4 id=\"authorization-header\"><strong>Authorization Header</strong></h4>\n<p>Every request that requires authentication must include an access token in the Authorization header in the following format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {{youraccesstoken}}\n\n</code></pre><p>If the request does not include this header or if the access token is invalid, the server will return 401 Unauthorized.</p>\n<h4 id=\"handling-expired-access-tokens\">Handling Expired Access Tokens</h4>\n<p>If the access token expires, it's best to handle the token renewal using an HTTP interceptor on the client (for example, in the frontend application). The HTTP interceptor can detect a 401 Unauthorized response resulting from an expired access token, then automatically send a request to the refresh-token endpoint to obtain a new access token, and repeat the original request with the updated token.</p>\n<p>Example of handling flow:</p>\n<ol>\n<li><p>Requests to Protected Resources: The client sends a request with an access token.</p>\n</li>\n<li><p>401 Unauthorized response: If the access token expires, the server responds with 401 Unauthorized.</p>\n</li>\n<li><p>HTTP Interceptor:</p>\n</li>\n</ol>\n<ul>\n<li><p>Retrieves the refresh token from the cookie.</p>\n</li>\n<li><p>Send a request to the /api/auth/refresh-token endpoint to obtain a new access token.</p>\n</li>\n<li><p>If the refresh token is valid, the system repeats the original request with the new access token.</p>\n</li>\n<li><p>If the refresh token also expires, the user will be asked to log in again.</p>\n</li>\n</ul>\n<p>With this approach, the system remains secure and users do not have to re-login frequently, providing a smoother and more efficient experience.</p>\n","_postman_id":"41625608-4688-427f-bd87-f7137bb40659"},{"name":"User","item":[{"name":"Profile","id":"d2d4ebf3-274f-4cbb-b2d8-43f4e6185c1b","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[{"key":"x-api-key","value":"","type":"text"}],"url":"/user/profile","description":"<p><code>Endpoint: GET /api/user/profile/:username?</code></p>\n<p>This endpoint is used to view user profiles based on username. If a username is not provided, the system will display the profile of the currently logged in user.</p>\n<p><strong>Authorization:</strong></p>\n<p>Optional (users can view other people's profiles without authentication, but viewing their own profile requires a token).</p>\n<p><strong>URL Parameters:</strong></p>\n<p>username (optional): Username of the user whose profile you want to view.</p>\n","urlObject":{"path":["user","profile"],"host":[""],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[{"id":"60789b47-c65b-4ca0-99fd-f87afd743575","name":"Without Param Username","originalRequest":{"method":"GET","header":[],"url":"/user/profile"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"362"},{"key":"ETag","value":"W/\"16a-yBEIwgYlNqtLfmhSSjLb8suyfgQ\""},{"key":"Date","value":"Wed, 28 Aug 2024 05:29:00 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User profile fetched successfully\",\n    \"data\": {\n        \"_id\": \"66bc85f2de0b3c124512b372\",\n        \"name\": {\n            \"first_name\": \"iqbal anjay\",\n            \"last_name\": \"anshori123\"\n        },\n        \"username\": \"User1723631090741\",\n        \"profile_picture\": \"66bc85f2de0b3c124512b372-1724683225748-Logo Himatif.png\",\n        \"email\": \"iqbal111@gmail.com\",\n        \"birthdate\": \"2024-12-09T00:00:00.000Z\",\n        \"gender\": \"female\"\n    }\n}"},{"id":"08ff0cec-c39b-49f8-b843-69cf38911545","name":"Search With Param Username","originalRequest":{"method":"GET","header":[],"url":"/user/profile/iqbalanshr"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"266"},{"key":"ETag","value":"W/\"10a-iqWICZuxVUalHnnweN/M1AhM900\""},{"key":"Date","value":"Wed, 28 Aug 2024 05:27:59 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User profile fetched successfully\",\n    \"data\": {\n        \"_id\": \"66aceb9dfea5e90cbdc694a2\",\n        \"name\": {\n            \"first_name\": \"iqbal anjay\",\n            \"last_name\": \"anshori\"\n        },\n        \"username\": \"iqbalanshr\",\n        \"profile_picture\": \"66aceb9dfea5e90cbdc694a2-1723631428508-Logo Himatif.png\"\n    }\n}"}],"_postman_id":"d2d4ebf3-274f-4cbb-b2d8-43f4e6185c1b"},{"name":"Update Profile","id":"43a30a7e-1bca-42ac-babe-d16a892f7ec0","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n//   \"first_name\": \"John\",\r\n//   \"last_name\": \"Doe\",\r\n//   \"email\": \"JohnDoe@gmail.com\",\r\n  \"gender\": \"female\",\r\n  \"birthdate\": \"2024-12-08\",\r\n  \"username\": \"johndoe\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/user/profile","description":"<p><code>Endpoint: PUT /api/user/profile</code></p>\n<p>This endpoint is used to update a logged in user's profile information, such as name, bio, or other details.</p>\n<p><strong>Authorization:</strong></p>\n<p>Required (Only authenticated users can update their profile).</p>\n","urlObject":{"path":["user","profile"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"0034281c-f46a-46ba-8426-7bd8a473c3df","name":"Update Profile","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n//   \"first_name\": \"John\",\r\n//   \"last_name\": \"Doe\",\r\n//   \"email\": \"JohnDoe@gmail.com\",\r\n  \"gender\": \"female\",\r\n  \"birthdate\": \"2024-12-08\",\r\n  \"username\": \"johndoe\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"/user/profile"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"61"},{"key":"ETag","value":"W/\"3d-Wx+veiXNNfsei1CR7cl4I8Uizig\""},{"key":"Date","value":"Wed, 28 Aug 2024 06:26:03 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Profile updated successfully\"\n}"}],"_postman_id":"43a30a7e-1bca-42ac-babe-d16a892f7ec0"},{"name":"Change Password","id":"5c54b9cb-c050-48e3-aad7-191d12e8a7cf","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"raw","raw":"{\r\n  \"old_password\": \"123Hahaha\",\r\n  \"new_password\": \"123Hahaha\",\r\n  \"confirm_password\": \"123Hahaha\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/user/change-password","description":"<p><code>Endpoint: PUT /api/user/change-password</code></p>\n<p>This endpoint is used to change the password of the currently logged in user. User must provide old password and new password.<br /><strong>Authorization:</strong> Required.</p>\n","urlObject":{"path":["user","change-password"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"63717e67-ca7a-4898-a17f-e7a23c727ff4","name":"Change Password","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"old_password\": \"123Hahaha\",\r\n  \"new_password\": \"123Hahaha\",\r\n  \"confirm_password\": \"123Hahaha\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/user/change-password"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"62"},{"key":"ETag","value":"W/\"3e-nu6+t+pUzklq9JTLn52UrALeyoU\""},{"key":"Date","value":"Wed, 28 Aug 2024 06:26:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Password changed successfully\"\n}"}],"_postman_id":"5c54b9cb-c050-48e3-aad7-191d12e8a7cf"},{"name":"Update Profile Picture","id":"729bbb2e-e9a7-4b9c-940e-3f5b9298c443","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"profile_picture","type":"file","fileUploadError":"","src":"/C:/Users/Baalee/Pictures/Logo Himatif.png"}]},"url":"/user/profile-picture","description":"<p><code>Endpoint: PUT /api/user/profile-picture</code><br />This endpoint is used to upload and update a logged in user's profile picture. Uploaded images must be valid image files.<br /><strong>Authorization:</strong> Required.<br /><strong>Request Body:</strong> Multipart form-data with image files. (only 1 image can be stored)</p>\n","urlObject":{"path":["user","profile-picture"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"ed89ef92-f01e-471a-87f7-ccb3ed80433f","name":"Update Profile Picture","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"profile_picture","type":"file","fileUploadError":"","src":"/C:/Users/Baalee/Pictures/Logo Himatif.png"}]},"url":"/user/profile-picture"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"69"},{"key":"ETag","value":"W/\"45-Lu+uAOKO01GoQhHqLYJ+OTAJ4hU\""},{"key":"Date","value":"Wed, 28 Aug 2024 06:26:56 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Profile picture updated successfully\"\n}"}],"_postman_id":"729bbb2e-e9a7-4b9c-940e-3f5b9298c443"},{"name":"Delete Profile Picture","id":"2f928cc0-71e6-4cb6-b8d8-f77b72229ac5","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[{"key":"x-api-key","value":"","type":"text"}],"url":"/user/profile-picture","description":"<p><code>Endpoint: DELETE /api/user/profile-picture</code><br />This endpoint is used to delete the logged in user's profile picture.<br />Authorization: Required.</p>\n","urlObject":{"path":["user","profile-picture"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"d1bfaafd-16a8-4c53-b736-9fa9e547e2f1","name":"Delete Profile Picture","originalRequest":{"method":"DELETE","header":[],"url":"/user/profile-picture"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"69"},{"key":"ETag","value":"W/\"45-5KayxXLkt190l40KJJdl5MMm6uc\""},{"key":"Date","value":"Wed, 28 Aug 2024 06:27:06 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Profile picture deleted successfully\"\n}"}],"_postman_id":"2f928cc0-71e6-4cb6-b8d8-f77b72229ac5"}],"id":"cc96129e-070d-44c1-9860-29555dc7e66e","description":"<p>This API route provides multiple endpoints for managing user profiles, including viewing profiles, updating profiles, changing passwords, and managing profile pictures. All endpoints that require authentication will use a JWT access token which must be included in the Authorization header on each request.</p>\n","_postman_id":"cc96129e-070d-44c1-9860-29555dc7e66e"},{"name":"Event","item":[{"name":"As an Owner Event","item":[{"name":"Get All User Event","id":"a57db415-d090-41fe-a74e-565108243fe5","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"/event/o/?city=Cimahi&month=2024-08&page=1&limit=15","description":"<p><code>Endpoint: GET /api/events/o</code></p>\n<p>Gets a list of all events created by the currently logged in user.<br /><strong>Authorization</strong>: Required.</p>\n<p><strong>Query parameters:</strong></p>\n<ul>\n<li><p><strong><code>city=Cimahi</code></strong>:</p>\n<ul>\n<li>This filter is used to retrieve events that are held in the city of Cimahi. Only events located in Cimahi will be included in the results.</li>\n</ul>\n</li>\n<li><p><strong><code>month=2024-09</code></strong>:</p>\n<ul>\n<li>This parameter filters events based on the month they start. In this case, it retrieves events that begin in September 2024.</li>\n</ul>\n</li>\n<li><p><strong><code>page=1</code></strong>:</p>\n<ul>\n<li>This parameter is used to specify which page of the event results is being viewed. Here, it refers to the first page of the event listings.</li>\n</ul>\n</li>\n<li><p><strong><code>limit=15</code></strong>:</p>\n<ul>\n<li>This parameter sets the maximum number of events displayed on each page. In this example, up to 15 events will be shown per page.</li>\n</ul>\n</li>\n<li><p><strong><code>search=concert</code></strong>:</p>\n<ul>\n<li>This parameter is used to search for events with names or descriptions that include the term \"concert\". It helps in finding events related to or containing the keyword \"concert\" in their title or description.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Default Behavior:</strong></p>\n<ul>\n<li><p><strong>Month</strong>:</p>\n<ul>\n<li>If the <code>month</code> parameter is not specified, the system defaults to the current month, meaning it will display events that start within the current month.</li>\n</ul>\n</li>\n<li><p><strong>Limit</strong>:</p>\n<ul>\n<li>If the <code>limit</code> parameter is not specified, the system defaults to displaying 15 events per page. This controls how many events are shown in the search results on each page.</li>\n</ul>\n</li>\n<li><p><strong>Search Query</strong>:</p>\n<ul>\n<li>If the <code>search</code> parameter is not specified, the system will return all events that match the other specified filters without performing any text search.</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["event","o",""],"host":[""],"query":[{"key":"city","value":"Cimahi"},{"key":"month","value":"2024-08"},{"key":"page","value":"1"},{"key":"limit","value":"15"}],"variable":[]}},"response":[{"id":"eede928b-400a-4017-a9a3-3b5314b51382","name":"Get All User Event","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":{"raw":"/event/o/?city=Cimahi&month=2024-08&page=1&limit=15","host":[""],"path":["event","o",""],"query":[{"key":"city","value":"Cimahi"},{"key":"month","value":"2024-08"},{"key":"page","value":"1"},{"key":"limit","value":"15"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1806"},{"key":"ETag","value":"W/\"70e-Ysn0ci6BAXuP7xOfiW5lGYHVF1E\""},{"key":"Date","value":"Wed, 28 Aug 2024 06:49:23 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Events fetched successfully\",\n    \"data\": [\n        {\n            \"_id\": \"66ce80e3d90ac4d2a02d8db9\",\n            \"name\": \"Cimahi Expo\",\n            \"description\": \"Rame pokoknya mah dateng yah\",\n            \"date\": \"2024-08-28T01:44:03.846Z\",\n            \"location\": {\n                \"province\": \"Jawa Barat\",\n                \"city\": \"Cimahi\",\n                \"address\": \"Jl. dirgantara\"\n            },\n            \"organizer\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_types\": [],\n            \"social_media\": {\n                \"facebook\": \"https://facebook.com/jakartatechexpo\",\n                \"twitter\": \"https://twitter.com/jakartatechexpo\",\n                \"instagram\": \"https://instagram.com/jakartatechexpo\",\n                \"website\": \"https://jakartatechexpo.com\"\n            },\n            \"images\": null,\n            \"created_at\": \"2024-08-28T01:44:03.901Z\",\n            \"updated_at\": \"2024-08-28T01:44:03.905Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"66cdac5801e5760168c6b9d1\",\n            \"name\": \"Cimahi Expo\",\n            \"description\": \"Rame pokoknya mah dateng yah\",\n            \"date\": \"2024-08-28T01:50:22.727Z\",\n            \"location\": {\n                \"province\": \"Jawa Barat\",\n                \"city\": \"Cimahi Selatan\",\n                \"address\": \"Jl. dirgantara\"\n            },\n            \"organizer\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_types\": [\n                {\n                    \"type\": \"regular cat2\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 4,\n                    \"until\": \"2024-09-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                },\n                {\n                    \"type\": \"regular cat1\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 100,\n                    \"until\": \"2024-09-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66cdae5f01e5760168c6b9d7\"\n                },\n                {\n                    \"type\": \"regular cat2\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 0,\n                    \"until\": \"2024-08-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66ce811fd90ac4d2a02d8dcb\"\n                },\n                {\n                    \"type\": \"regular cat3\",\n                    \"price\": 10000,\n                    \"limit\": 100,\n                    \"sold\": 0,\n                    \"until\": \"2024-08-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66ce811fd90ac4d2a02d8dcc\"\n                }\n            ],\n            \"social_media\": {\n                \"facebook\": \"https://facebook.com/jakartatechexpo\",\n                \"twitter\": \"https://twitter.com/dhsahdusa\",\n                \"instagram\": \"https://instagram.com/jakartatechexpo\",\n                \"website\": \"https://jakartatechexpo.com\"\n            },\n            \"images\": null,\n            \"created_at\": \"2024-08-27T10:37:12.933Z\",\n            \"updated_at\": \"2024-08-28T01:50:22.794Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"a57db415-d090-41fe-a74e-565108243fe5"},{"name":"Get User Event by Id","id":"50fdcfbc-46f7-44e6-96e4-7d7c95e906af","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false,"protocolVersion":"http2"},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/event/o/66cdac5801e5760168c6b9d1","description":"<p><code>Endpoint: GET /api/events/o/:id</code><br />Get event details based on the ID for the event owned by the currently logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"eea6ac51-41e2-4798-94fa-49051e8e8581","name":"Get Event by Id","originalRequest":{"method":"GET","header":[],"url":"/event/o/66cdac5801e5760168c6b9d1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1222"},{"key":"ETag","value":"W/\"4c6-GVeZ0Q/xLg/kBota1YaSMIBgC0A\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:31:00 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event fetched successfully\",\n    \"data\": {\n        \"_id\": \"66cdac5801e5760168c6b9d1\",\n        \"name\": \"Cimahi Expo\",\n        \"description\": \"Rame pokoknya mah dateng yah\",\n        \"date\": \"2024-08-28T01:50:22.727Z\",\n        \"location\": {\n            \"province\": \"Jawa Barat\",\n            \"city\": \"Cimahi Selatan\",\n            \"address\": \"Jl. dirgantara\"\n        },\n        \"organizer\": \"66bc85f2de0b3c124512b372\",\n        \"ticket_types\": [\n            {\n                \"type\": \"regular cat2\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 4,\n                \"until\": \"2024-09-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66cdae5f01e5760168c6b9d6\"\n            },\n            {\n                \"type\": \"regular cat1\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 100,\n                \"until\": \"2024-09-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66cdae5f01e5760168c6b9d7\"\n            },\n            {\n                \"type\": \"regular cat2\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 0,\n                \"until\": \"2024-08-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66ce811fd90ac4d2a02d8dcb\"\n            },\n            {\n                \"type\": \"regular cat3\",\n                \"price\": 10000,\n                \"limit\": 100,\n                \"sold\": 0,\n                \"until\": \"2024-08-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66ce811fd90ac4d2a02d8dcc\"\n            }\n        ],\n        \"social_media\": {\n            \"facebook\": \"https://facebook.com/jakartatechexpo\",\n            \"twitter\": \"https://twitter.com/dhsahdusa\",\n            \"instagram\": \"https://instagram.com/jakartatechexpo\",\n            \"website\": \"https://jakartatechexpo.com\"\n        },\n        \"images\": null,\n        \"created_at\": \"2024-08-27T10:37:12.933Z\",\n        \"updated_at\": \"2024-08-28T01:50:22.794Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"50fdcfbc-46f7-44e6-96e4-7d7c95e906af"},{"name":"Create Event","id":"22f9f89d-f200-483b-aec0-43a2af7799b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Cimahi Expo\",\r\n    \"description\": \"Rame pokoknya mah dateng yah\",\r\n    \"date\": \"2026-07-21T21:21:58.183Z\",\r\n    \"province\": \"Jawa Barat\",\r\n    \"city\": \"Cimahi\",\r\n    \"address\": \"Jl. dirgantara\",\r\n    \"facebook\": \"https://facebook.com/jakartatechexpo\", // Optional\r\n    \"twitter\": \"https://twitter.com/jakartatechexpo\", // Optional\r\n    \"instagram\": \"https://instagram.com/jakartatechexpo\", // Optional\r\n    \"website\": \"https://jakartatechexpo.com\" // Optional\r\n}","options":{"raw":{"language":"json"}}},"url":"/o/event","description":"<p><code>Endpoint: POST /api/events/o</code><br />Creates a new event that will be owned by the currently logged in user.<br /><strong>Authorization:</strong> Required.</p>\n","urlObject":{"path":["o","event"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"a8ae1630-4120-4552-8c62-a076e09c8596","name":"Create Event","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Cimahi Expo\",\r\n    \"description\": \"Rame pokoknya mah dateng yah\",\r\n    \"date\": \"2026-07-21T21:21:58.183Z\",\r\n    \"province\": \"Jawa Barat\",\r\n    \"city\": \"Cimahi\",\r\n    \"address\": \"Jl. dirgantara\",\r\n    \"facebook\": \"https://facebook.com/jakartatechexpo\", // Optional\r\n    \"twitter\": \"https://twitter.com/jakartatechexpo\", // Optional\r\n    \"instagram\": \"https://instagram.com/jakartatechexpo\", // Optional\r\n    \"website\": \"https://jakartatechexpo.com\" // Optional\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"122"},{"key":"ETag","value":"W/\"7a-gptxixCt2B8AdzYPV8JTRMJE/2M\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:31:21 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event created successfully\",\n    \"data\": {\n        \"_id\": \"66ced24920ca6de9ea4d3d52\",\n        \"name\": \"Cimahi Expo\"\n    }\n}"}],"_postman_id":"22f9f89d-f200-483b-aec0-43a2af7799b0"},{"name":"Update Event","id":"d9d5ca34-cb4c-424e-a447-0831861e8874","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    // chose field that just want to update \r\n    \"name\": \"Cimahi Expo\", \r\n    \"description\": \"Rame pokoknya mah dateng yah\", \r\n    \"date\": \"2026-07-21T21:21:58.183Z\",\r\n    \"province\": \"Jawa Barat\", \r\n    \"city\": \"Cimahi Selatan\", \r\n    \"address\": \"Jl. dirgantara\",\r\n    \"facebook\": \"https://facebook.com/jakartatechexpo\", \r\n    \"twitter\": \"https://twitter.com/dhsahdusa\", \r\n    \"instagram\": \"https://instagram.com/jakartatechexpo\", \r\n    \"website\": \"https://jakartatechexpo.com\" \r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1","description":"<p><code>Endpoint: PUT /api/events/o/:id</code><br />Updates the logged in user's event details based on the event ID.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"1c6a273f-322e-49e0-a946-e2f6ed4e3510","name":"Update Event","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    // chose field that just want to update \r\n    \"name\": \"Cimahi Expo\", \r\n    \"description\": \"Rame pokoknya mah dateng yah\", \r\n    \"date\": \"2026-07-21T21:21:58.183Z\",\r\n    \"province\": \"Jawa Barat\", \r\n    \"city\": \"Cimahi Selatan\", \r\n    \"address\": \"Jl. dirgantara\",\r\n    \"facebook\": \"https://facebook.com/jakartatechexpo\", \r\n    \"twitter\": \"https://twitter.com/dhsahdusa\", \r\n    \"instagram\": \"https://instagram.com/jakartatechexpo\", \r\n    \"website\": \"https://jakartatechexpo.com\" \r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"59"},{"key":"ETag","value":"W/\"3b-n8pQAa4r3w3J2euGrfw8BdmYuIk\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:31:30 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event updated successfully\"\n}"}],"_postman_id":"d9d5ca34-cb4c-424e-a447-0831861e8874"},{"name":"Add  Event Images","id":"32c06a81-2070-4095-a476-2ecf88362617","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"event_images","type":"file","src":["/C:/Users/Baalee/Pictures/donors.png","/C:/Users/Baalee/Pictures/gambaran dede maika.jpeg","/C:/Users/Baalee/Pictures/p.png"]}]},"url":"/event/o/66cdac5801e5760168c6b9d1/image","description":"<p><code>Endpoint: POST /api/events/o/:id/image</code><br />Uploads images for events owned by the logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1","image"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"ccae4f1c-657a-4b32-bc8e-8fbad80fcaca","name":"Add  Event Images","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"event_images","type":"file","src":["/C:/Users/Baalee/Pictures/Untitled-1.png","/C:/Users/Baalee/Pictures/Untitled-2.png","/C:/Users/Baalee/Pictures/Untitled-3.png"]}]},"url":"/event/o/66cdac5801e5760168c6b9d1/image"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"67"},{"key":"ETag","value":"W/\"43-SmXNIeZpdoo3kTjSZiggkvukHQ8\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:37:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event images uploaded successfully\"\n}"}],"_postman_id":"32c06a81-2070-4095-a476-2ecf88362617"},{"name":"Delete  Event Images","id":"98489e94-df69-41cd-87de-eaf0157be0ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"event_images","type":"file","src":["/C:/Users/Baalee/Pictures/donors.png","/C:/Users/Baalee/Pictures/gambaran dede maika.jpeg","/C:/Users/Baalee/Pictures/p.png"]}]},"url":"/event/o/66cdac5801e5760168c6b9d1/image/66bc85f2de0b3c124512b372-1723871103357-gambaran dede maika.jpeg","description":"<p><code>Endpoint: DELETE /api/events/o/:id/image/:image_name</code><br />Removes images from events owned by the logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n<p>image_name : image_name from event that you can get from fetching <code>Endpoint: GET /api/events/o/:id</code></p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1","image","66bc85f2de0b3c124512b372-1723871103357-gambaran dede maika.jpeg"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"8544e093-5225-4dee-bfd6-b6a443604ced","name":"Delete  Event Images","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"event_images","type":"file","src":["/C:/Users/Baalee/Pictures/donors.png","/C:/Users/Baalee/Pictures/gambaran dede maika.jpeg","/C:/Users/Baalee/Pictures/p.png"]}]},"url":"/event/o/66cdac5801e5760168c6b9d1/image/66bc85f2de0b3c124512b372-1724830634898-Untitled-1.png"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"66"},{"key":"ETag","value":"W/\"42-9RvfGiRiJdOKaBAi/xJpZKSAUF0\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:37:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event images deleted successfully\"\n}"}],"_postman_id":"98489e94-df69-41cd-87de-eaf0157be0ae"},{"name":"Add  Event Ticket Type","id":"93266e24-b757-4c4d-80dd-db75dcf5d2d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"[\r\n    {\r\n        \"type\": \"regular cat2\",\r\n        \"price\": 20000,\r\n        \"limit\": 100,\r\n        \"until\": \"2024-08-20T12:00:00Z\",\r\n        \"status\": \"open\"\r\n    },\r\n    {\r\n        \"type\": \"regular cat3\",\r\n        \"price\": 10000,\r\n        \"limit\": 100,\r\n        \"until\": \"2024-08-20T12:00:00Z\",\r\n        \"status\": \"open\"\r\n    }\r\n]\r\n","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/ticket_type","description":"<p><code>Endpoint: POST /api/events/o/:id/ticket_type</code><br />Add a ticket type for events owned by the currently logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id : id of the event</p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1","ticket_type"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"2301c506-c2d2-4d4b-90d9-1887cb5fda92","name":"Add  Event Ticket Type","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"[\r\n    {\r\n        \"type\": \"regular cat2\",\r\n        \"price\": 20000,\r\n        \"limit\": 100,\r\n        \"until\": \"2024-08-20T12:00:00Z\",\r\n        \"status\": \"open\"\r\n    },\r\n    {\r\n        \"type\": \"regular cat3\",\r\n        \"price\": 10000,\r\n        \"limit\": 100,\r\n        \"until\": \"2024-08-20T12:00:00Z\",\r\n        \"status\": \"open\"\r\n    }\r\n]\r\n","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/ticket_type"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"70"},{"key":"ETag","value":"W/\"46-MX1stxpswtUweU3V8twK6zaWtOo\""},{"key":"Date","value":"Wed, 28 Aug 2024 01:45:03 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event ticket types added successfully\"\n}"}],"_postman_id":"93266e24-b757-4c4d-80dd-db75dcf5d2d9"},{"name":"Update  Event Ticket Type","id":"7b5de3f7-2e81-4c0f-b649-373d653af9ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    // chose field that just want to update \r\n    // \"type\": \"regular cat1\",\r\n    // \"price\": 20000,\r\n    // \"limit\": 100,\r\n    \"until\": \"2024-09-20T12:00:00Z\",\r\n    \"status\": \"open\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/ticket_type/66cdae5f01e5760168c6b9d6","description":"<p><code>Endpoint: PUT /api/events/o/:id/ticket_type/:ticket_type_id</code><br />Updates the ticket type for an event owned by the currently logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n<p>ticket_type_id : id of ticket_type from event that you can get from fetching <code>Endpoint: GET /api/events/o/:id</code></p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1","ticket_type","66cdae5f01e5760168c6b9d6"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"223d250b-2156-441f-8b37-884fcfea5d0b","name":"Update  Event Ticket Type","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    // chose field that just want to update \r\n    // \"type\": \"regular cat1\",\r\n    // \"price\": 20000,\r\n    // \"limit\": 100,\r\n    \"until\": \"2024-09-20T12:00:00Z\",\r\n    \"status\": \"open\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/ticket_type/66cdae5f01e5760168c6b9d6"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"72"},{"key":"ETag","value":"W/\"48-GR48bCiyUNEuXB88rSXa3ivDEPg\""},{"key":"Date","value":"Wed, 28 Aug 2024 01:44:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event ticket types updated successfully\"\n}"}],"_postman_id":"7b5de3f7-2e81-4c0f-b649-373d653af9ae"},{"name":"CheckedIn User Has Ticket","id":"6c0d793c-3176-47b4-9038-196af166e26b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"barcode\" : \"48769-52173-1724815791991\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/checkedin","description":"<p><code>Endpoint: POST /api/events/o/:id/checkedin</code><br />Checks in tickets for events owned by the currently logged in user.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n","urlObject":{"path":["event","o","66cdac5801e5760168c6b9d1","checkedin"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"773c8451-64ba-4626-9450-7fe707811ef1","name":"Add  Event Ticket Type Copy","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"barcode\" : \"3374-97169-1724830713419\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/o/66cdac5801e5760168c6b9d1/checkedin"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"345"},{"key":"ETag","value":"W/\"159-JeNlfiYcRBOpXa4/9MO257vAq/s\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:42:03 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Ticket checked in successfully\",\n    \"data\": {\n        \"_id\": \"66ced3f934163ababaca486c\",\n        \"event_id\": \"66cdac5801e5760168c6b9d1\",\n        \"user_id\": \"66bc85f2de0b3c124512b372\",\n        \"ticket_type_id\": \"66cdae5f01e5760168c6b9d6\",\n        \"barcode\": \"3374-97169-1724830713419\",\n        \"status\": \"checked-in\",\n        \"price\": 20000,\n        \"created_at\": \"2024-08-28T07:38:33.419Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"6c0d793c-3176-47b4-9038-196af166e26b"}],"id":"da7ea42e-cf3a-4ee7-80fb-a6989ac4039f","_postman_id":"da7ea42e-cf3a-4ee7-80fb-a6989ac4039f","description":""},{"name":"As an Buyer Ticket","item":[{"name":"Get All Event","id":"1ca08f80-40e3-4630-9aa0-ad20a898a062","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"method":"GET","header":[{"key":"Authorization","value":"","type":"text"},{"key":"x-api-key","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"/event?city=Cimahi&minPrice=10000&maxPrice=50000&month=2024-09&page=1&limit=15","description":"<p><code>Endpoint: GET /api/events</code><br />Gets a list of all publicly available events.<br /><strong>Authorization:</strong> Not required.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><strong><code>city=Cimahi</code></strong>:</p>\n<ul>\n<li>This filter is used to retrieve events that are held in the city of Cimahi. Only events located in Cimahi will be included in the results.</li>\n</ul>\n</li>\n<li><p><strong><code>month=2024-09</code></strong>:</p>\n<ul>\n<li>This parameter filters events based on the month they start. In this case, it retrieves events that begin in September 2024.</li>\n</ul>\n</li>\n<li><p><strong><code>page=1</code></strong>:</p>\n<ul>\n<li>This parameter is used to specify which page of the event results is being viewed. Here, it refers to the first page of the event listings.</li>\n</ul>\n</li>\n<li><p><strong><code>limit=15</code></strong>:</p>\n<ul>\n<li>This parameter sets the maximum number of events displayed on each page. In this example, up to 15 events will be shown per page.</li>\n</ul>\n</li>\n<li><p><strong><code>minPrice=10000&amp;maxPrice=50000</code></strong>:</p>\n<ul>\n<li>These parameters filter events based on the price range of their tickets. Events with ticket prices between 10,000 and 50,000 IDR will be included in the results.</li>\n</ul>\n</li>\n<li><p><strong><code>search=concert</code></strong>:</p>\n<ul>\n<li>This parameter is used to search for events with names or descriptions that include the term \"concert\". It helps in finding events related to or containing the keyword \"concert\" in their title or description.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Default Behavior:</strong></p>\n<ul>\n<li><p><strong>Month</strong>:</p>\n<ul>\n<li>If the <code>month</code> parameter is not specified, the system defaults to the current month, meaning it will display events that start within the current month.</li>\n</ul>\n</li>\n<li><p><strong>Limit</strong>:</p>\n<ul>\n<li>If the <code>limit</code> parameter is not specified, the system defaults to displaying 15 events per page. This controls how many events are shown in the search results on each page.</li>\n</ul>\n</li>\n<li><p><strong>Price Range</strong>:</p>\n<ul>\n<li>If <code>minPrice</code> and <code>maxPrice</code> are not specified, the system may default to displaying events regardless of ticket price, depending on the implementation.</li>\n</ul>\n</li>\n<li><p><strong>Search Query</strong>:</p>\n<ul>\n<li>If the <code>search</code> parameter is not specified, the system will return all events that match the other specified filters without performing any text search.</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["event"],"host":[""],"query":[{"key":"city","value":"Cimahi"},{"key":"minPrice","value":"10000"},{"key":"maxPrice","value":"50000"},{"key":"month","value":"2024-09"},{"key":"page","value":"1"},{"key":"limit","value":"15"}],"variable":[]}},"response":[{"id":"a569856a-8b36-47d6-98cf-cef4b3180c83","name":"Get All Event","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":{"raw":"/event?city=Cimahi&minPrice=10000&maxPrice=50000&month=2024-08&page=1&limit=15","host":[""],"path":["event"],"query":[{"key":"city","value":"Cimahi"},{"key":"minPrice","value":"10000"},{"key":"maxPrice","value":"50000"},{"key":"month","value":"2024-08"},{"key":"page","value":"1"},{"key":"limit","value":"15"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1334"},{"key":"ETag","value":"W/\"536-y5bC0BBkJF15W977AkuHP7GcRK4\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:42:26 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Events fetched successfully\",\n    \"data\": [\n        {\n            \"_id\": \"66cdac5801e5760168c6b9d1\",\n            \"name\": \"Cimahi Expo\",\n            \"description\": \"Rame pokoknya mah dateng yah\",\n            \"date\": \"2024-08-28T07:31:30.129Z\",\n            \"location\": {\n                \"province\": \"Jawa Barat\",\n                \"city\": \"Cimahi Selatan\",\n                \"address\": \"Jl. dirgantara\"\n            },\n            \"organizer\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_types\": [\n                {\n                    \"type\": \"regular cat2\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 5,\n                    \"until\": \"2024-09-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                },\n                {\n                    \"type\": \"regular cat1\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 100,\n                    \"until\": \"2024-09-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66cdae5f01e5760168c6b9d7\"\n                },\n                {\n                    \"type\": \"regular cat2\",\n                    \"price\": 20000,\n                    \"limit\": 100,\n                    \"sold\": 0,\n                    \"until\": \"2024-08-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66ce811fd90ac4d2a02d8dcb\"\n                },\n                {\n                    \"type\": \"regular cat3\",\n                    \"price\": 10000,\n                    \"limit\": 100,\n                    \"sold\": 0,\n                    \"until\": \"2024-08-20T12:00:00.000Z\",\n                    \"status\": \"open\",\n                    \"_id\": \"66ce811fd90ac4d2a02d8dcc\"\n                }\n            ],\n            \"social_media\": {\n                \"facebook\": \"https://facebook.com/jakartatechexpo\",\n                \"twitter\": \"https://twitter.com/dhsahdusa\",\n                \"instagram\": \"https://instagram.com/jakartatechexpo\",\n                \"website\": \"https://jakartatechexpo.com\"\n            },\n            \"images\": [\n                \"66bc85f2de0b3c124512b372-1724830634908-Untitled-2.png\",\n                \"66bc85f2de0b3c124512b372-1724830634912-Untitled-3.png\"\n            ],\n            \"created_at\": \"2024-08-27T10:37:12.933Z\",\n            \"updated_at\": \"2024-08-28T07:37:44.909Z\",\n            \"__v\": 1\n        }\n    ]\n}"}],"_postman_id":"1ca08f80-40e3-4630-9aa0-ad20a898a062"},{"name":"Get Event by Id","id":"d09613f4-6e44-4b31-9d33-796d1c320108","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/event/66c02cbd3c0bbad15fdcbf2c","description":"<p><code>Endpoint: GET /api/events/:id</code><br />Get event details by ID for publicly available events.<br /><strong>Authorization</strong>: Not required</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id : id of the event</p>\n","urlObject":{"path":["event","66c02cbd3c0bbad15fdcbf2c"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"6adc8903-73b0-4633-8b86-a68909f98140","name":"Get Event by Id","originalRequest":{"method":"GET","header":[],"url":"/event/66cdac5801e5760168c6b9d1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1452"},{"key":"ETag","value":"W/\"5ac-LFoFYIWB7KT5qllqpqymvo2ANyg\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:42:55 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Event fetched successfully\",\n    \"data\": {\n        \"_id\": \"66cdac5801e5760168c6b9d1\",\n        \"name\": \"Cimahi Expo\",\n        \"description\": \"Rame pokoknya mah dateng yah\",\n        \"date\": \"2024-08-28T07:31:30.129Z\",\n        \"location\": {\n            \"province\": \"Jawa Barat\",\n            \"city\": \"Cimahi Selatan\",\n            \"address\": \"Jl. dirgantara\"\n        },\n        \"organizer\": {\n            \"name\": {\n                \"first_name\": \"iqbal anjay\",\n                \"last_name\": \"anshori123\"\n            },\n            \"_id\": \"66bc85f2de0b3c124512b372\",\n            \"email\": \"iqbal111@gmail.com\",\n            \"profile_picture\": null\n        },\n        \"ticket_types\": [\n            {\n                \"type\": \"regular cat2\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 5,\n                \"until\": \"2024-09-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66cdae5f01e5760168c6b9d6\"\n            },\n            {\n                \"type\": \"regular cat1\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 100,\n                \"until\": \"2024-09-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66cdae5f01e5760168c6b9d7\"\n            },\n            {\n                \"type\": \"regular cat2\",\n                \"price\": 20000,\n                \"limit\": 100,\n                \"sold\": 0,\n                \"until\": \"2024-08-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66ce811fd90ac4d2a02d8dcb\"\n            },\n            {\n                \"type\": \"regular cat3\",\n                \"price\": 10000,\n                \"limit\": 100,\n                \"sold\": 0,\n                \"until\": \"2024-08-20T12:00:00.000Z\",\n                \"status\": \"open\",\n                \"_id\": \"66ce811fd90ac4d2a02d8dcc\"\n            }\n        ],\n        \"social_media\": {\n            \"facebook\": \"https://facebook.com/jakartatechexpo\",\n            \"twitter\": \"https://twitter.com/dhsahdusa\",\n            \"instagram\": \"https://instagram.com/jakartatechexpo\",\n            \"website\": \"https://jakartatechexpo.com\"\n        },\n        \"images\": [\n            \"66bc85f2de0b3c124512b372-1724830634908-Untitled-2.png\",\n            \"66bc85f2de0b3c124512b372-1724830634912-Untitled-3.png\"\n        ],\n        \"created_at\": \"2024-08-27T10:37:12.933Z\",\n        \"updated_at\": \"2024-08-28T07:37:44.909Z\",\n        \"__v\": 1\n    }\n}"}],"_postman_id":"d09613f4-6e44-4b31-9d33-796d1c320108"},{"name":"Buy Event Ticket / Create Transaction","id":"43ab87c6-def3-4a21-9b19-7bcb4394d55c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"payment_type\": \"bank_transfer\",\r\n    \"bank_name\": \"bca\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/66cdac5801e5760168c6b9d1/buy_ticket/66cdae5f01e5760168c6b9d6","description":"<p><code>Endpoint: POST /api/events/:id/buy_ticket/:ticket_type_id</code><br />Purchase tickets for events that are available to the public.<br /><strong>Authorization:</strong> Required.</p>\n<p><strong>URL Parameters:</strong></p>\n<p>id: id of the event</p>\n<p>ticket_type_id : id of ticket_type from event that you can get from fetching <code>Endpoint: GET /api/events/:id</code></p>\n<p><strong>Payment Method Details</strong></p>\n<ul>\n<li><p><strong>Current Payment Support</strong>: The endpoint supports only bank transfer payments.</p>\n</li>\n<li><p><strong>Supported Banks</strong>: Payments can be made through the following banks:</p>\n<ul>\n<li><p><strong>Bank Central Asia (BCA)</strong></p>\n</li>\n<li><p><strong>Bank Negara Indonesia (BNI)</strong></p>\n</li>\n<li><p><strong>Bank Rakyat Indonesia (BRI)</strong></p>\n</li>\n<li><p><strong>CIMB Niaga</strong></p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>payment_type</code></strong>: Specifies the method of payment. Currently, only <code>bank_transfer</code> is supported.</p>\n</li>\n<li><p><strong><code>bank_name</code></strong>: Indicates the bank through which the transfer will be made. Supported banks are:</p>\n<ul>\n<li><p><code>bca</code> (Bank Central Asia)</p>\n</li>\n<li><p><code>bni</code> (Bank Negara Indonesia)</p>\n</li>\n<li><p><code>bri</code> (Bank Rakyat Indonesia)</p>\n</li>\n<li><p><code>cimb</code> (CIMB Niaga)</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["event","66cdac5801e5760168c6b9d1","buy_ticket","66cdae5f01e5760168c6b9d6"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"137abc1f-b68e-459a-a3c5-8989e3716b60","name":"Buy Event Ticket / Create Transaction","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"payment_type\": \"bank_transfer\",\r\n    \"bank_name\": \"bca\"\r\n}","options":{"raw":{"language":"json"}}},"url":"/event/66cdac5801e5760168c6b9d1/buy_ticket/66cdae5f01e5760168c6b9d6"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"756"},{"key":"ETag","value":"W/\"2f4-bafrrP2iaPA+mb3XjJUYBm7DdVs\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:38:33 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"Ticket purchased successfully\",\n    \"data\": {\n        \"user_id\": \"66bc85f2de0b3c124512b372\",\n        \"ticket_id\": \"66ced3f934163ababaca486c\",\n        \"_id\": \"66ced3f934163ababaca486f\",\n        \"created_at\": \"2024-08-28T07:38:33.427Z\",\n        \"updated_at\": \"2024-08-28T07:38:33.427Z\",\n        \"__v\": 0,\n        \"payment_details\": {\n            \"status_code\": \"201\",\n            \"status_message\": \"Success, Bank Transfer transaction is created\",\n            \"transaction_id\": \"959d6bb0-17f5-413a-86df-d311625af66f\",\n            \"order_id\": \"66ced3f934163ababaca486f\",\n            \"merchant_id\": \"G946175683\",\n            \"gross_amount\": \"20000.00\",\n            \"currency\": \"IDR\",\n            \"payment_type\": \"bank_transfer\",\n            \"transaction_time\": \"2024-08-28 14:38:52\",\n            \"transaction_status\": \"pending\",\n            \"fraud_status\": \"accept\",\n            \"va_numbers\": [\n                {\n                    \"bank\": \"bca\",\n                    \"va_number\": \"75683644457\"\n                }\n            ],\n            \"expiry_time\": \"2024-08-28 14:53:33\"\n        }\n    }\n}"}],"_postman_id":"43ab87c6-def3-4a21-9b19-7bcb4394d55c"}],"id":"39bce75e-ecb1-4b71-b1a4-7dc4e016b3a9","description":"<p>Route for Ticket Buyers</p>\n","_postman_id":"39bce75e-ecb1-4b71-b1a4-7dc4e016b3a9"}],"id":"03e2af0b-a4bb-4999-bb4e-449daa0c754f","description":"<p>This API route provides endpoints for event owners and ticket buyers. Event owners can manage their events, including creating, updating, deleting, and adding ticket types. Ticket buyers can view available events, purchase tickets, and check-in. All endpoints that require authentication use a JWT access token which must be included in the Authorization header on each request.</p>\n","_postman_id":"03e2af0b-a4bb-4999-bb4e-449daa0c754f"},{"name":"Transaction","item":[{"name":"Get User Transaction","id":"7dd419c3-1c66-419b-a6ac-41e6f6c073b7","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/transaction?from=2024-07-01","description":"<p><code>Endpoint: GET /api/transactions/</code><br />Gets a list of all transactions made by the currently logged in user.<br /><strong>Authorization</strong>: Required.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><strong><code>from=2024-07-01</code></strong>:</p>\n<ul>\n<li><p><strong>Purpose</strong>: This parameter sets the start date for the date range filter.</p>\n</li>\n<li><p><strong>Description</strong>: The query will include transactions that occurred on or after July 1, 2024. This allows you to filter transactions that fall within a specific time period starting from this date.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>to=2024-09-15</code></strong>:</p>\n<ul>\n<li><p><strong>Purpose</strong>: This parameter sets the end date for the date range filter.</p>\n</li>\n<li><p><strong>Description</strong>: The query will include transactions that occurred on or before September 15, 2024. This parameter helps to specify the end boundary for the date range, ensuring that only transactions within this period are retrieved.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>status=all</code></strong>:</p>\n<ul>\n<li><p><strong>Purpose</strong>: This parameter determines the status filter for transactions.</p>\n</li>\n<li><p><strong>Description</strong>: Setting the <code>status</code> parameter to <code>all</code> means that the query will not filter transactions based on their status. It will include transactions of any status, regardless of whether they are pending, completed, cancelled, or any other status. The <code>all</code> value includes all possible statuses, providing a comprehensive view of all transactions without status-based exclusions.</p>\n</li>\n<li><p><strong>Details</strong>: For more information on the different transaction statuses, you can refer to the <a href=\"https://docs.midtrans.com/docs/https-notification-webhooks#transaction-status\">Midtrans documentation on transaction statuses</a>. This includes detailed descriptions of various statuses such as <code>capture</code>, <code>settlement</code>, <code>pending</code>, <code>deny</code>, <code>cancel</code>, <code>expire</code>, <code>failure</code>, <code>refund</code>, <code>partial_refund</code>, and <code>authorize</code>. Each status represents a different stage or outcome of the transaction process.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Default Behavior:</strong></p>\n<ul>\n<li><p><strong>Date Range Filter</strong>:</p>\n<ul>\n<li><strong>Default Values</strong>: If <code>from</code> and <code>to</code> parameters are not specified, the system defaults to a date range that covers the last 30 days from today. This ensures that only recent transactions are considered in the query.</li>\n</ul>\n</li>\n<li><p><strong>Status Filter</strong>:</p>\n<ul>\n<li><strong>Default Value</strong>: If <code>status</code> is not specified, the default behavior is to include all transactions, similar to setting <code>status=all</code>. This provides a full overview of transactions without filtering based on their status.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"payment-details-in-response\">Payment Details in Response</h3>\n<p>When you make a purchase through the <code>/api/events/:id/buy_ticket/:ticket_type_id</code> endpoint, the <code>payment_details</code> in the response will provide information about the payment transaction. The content and format of <code>payment_details</code> can vary depending on the bank and payment type used.</p>\n","urlObject":{"path":["transaction"],"host":[""],"query":[{"key":"from","value":"2024-07-01"},{"disabled":true,"key":"to","value":"2024-09-15"},{"disabled":true,"key":"status","value":"completed\n"}],"variable":[]}},"response":[{"id":"f77e5fb2-a90d-4178-a740-6a9e968d1eda","name":"Get User Transaction","originalRequest":{"method":"GET","header":[],"url":{"raw":"/transaction?from=2024-07-01&to=2024-09-15&status=all","host":[""],"path":["transaction"],"query":[{"key":"from","value":"2024-07-01"},{"key":"to","value":"2024-09-15"},{"key":"status","value":"all"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"4062"},{"key":"ETag","value":"W/\"fde-aLmL7c98/X9H8oTJaV5vRgUPMVg\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:53:46 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User transactions fetched successfully\",\n    \"data\": [\n        {\n            \"_id\": \"66ced3f934163ababaca486f\",\n            \"event_name\": \"Cimahi Expo\",\n            \"ticket_type\": \"regular cat2\",\n            \"created_at\": \"2024-08-28T07:38:33.427Z\",\n            \"payment_details\": {\n                \"va_numbers\": [\n                    {\n                        \"va_number\": \"75683644457\",\n                        \"bank\": \"bca\"\n                    }\n                ],\n                \"transaction_time\": \"2024-08-28 14:38:52\",\n                \"transaction_status\": \"settlement\",\n                \"transaction_id\": \"959d6bb0-17f5-413a-86df-d311625af66f\",\n                \"status_message\": \"midtrans payment notification\",\n                \"status_code\": \"200\",\n                \"signature_key\": \"df48584befaa9112a5fd7e6f2141fdd3fd9db3f45896e1f69b1946c240dc77ca49accdd81cecaad7bdd5e9090b17bd7ad4a4792e7957c49ad773ddae84763ec9\",\n                \"settlement_time\": \"2024-08-28 14:39:39\",\n                \"payment_type\": \"bank_transfer\",\n                \"payment_amounts\": [],\n                \"order_id\": \"66ced3f934163ababaca486f\",\n                \"merchant_id\": \"G946175683\",\n                \"gross_amount\": \"20000.00\",\n                \"fraud_status\": \"accept\",\n                \"expiry_time\": \"2024-08-28 14:53:33\",\n                \"currency\": \"IDR\"\n            }\n        },\n        {\n            \"_id\": \"66ce99b090c0945d5ad02eff\",\n            \"event_name\": \"Cimahi Expo\",\n            \"ticket_type\": \"regular cat2\",\n            \"created_at\": \"2024-08-28T03:29:52.001Z\",\n            \"payment_details\": {\n                \"va_numbers\": [\n                    {\n                        \"va_number\": \"75683816300\",\n                        \"bank\": \"bca\"\n                    }\n                ],\n                \"transaction_time\": \"2024-08-28 10:30:10\",\n                \"transaction_status\": \"settlement\",\n                \"transaction_id\": \"e65808b5-55c5-46f5-b422-9b316e77e60e\",\n                \"status_message\": \"midtrans payment notification\",\n                \"status_code\": \"200\",\n                \"signature_key\": \"96c178a7c27fae0e208165ab6a81f1c3e18029cb78f0bca06b7a06b0e54255c34deac1b903e90673700df1914ba20c88091f7f455d18779c8478f9065e5cd1f7\",\n                \"settlement_time\": \"2024-08-28 10:33:10\",\n                \"payment_type\": \"bank_transfer\",\n                \"payment_amounts\": [],\n                \"order_id\": \"66ce99b090c0945d5ad02eff\",\n                \"merchant_id\": \"G946175683\",\n                \"gross_amount\": \"20000.00\",\n                \"fraud_status\": \"accept\",\n                \"expiry_time\": \"2024-08-28 10:44:52\",\n                \"currency\": \"IDR\"\n            }\n        },\n        {\n            \"_id\": \"66ce8ad74503c79b17f77c4e\",\n            \"event_name\": \"Cimahi Expo\",\n            \"ticket_type\": \"regular cat2\",\n            \"created_at\": \"2024-08-28T02:26:31.272Z\",\n            \"payment_details\": {\n                \"va_numbers\": [\n                    {\n                        \"va_number\": \"75683809350\",\n                        \"bank\": \"bca\"\n                    }\n                ],\n                \"transaction_time\": \"2024-08-28 09:26:49\",\n                \"transaction_status\": \"cancel\",\n                \"transaction_id\": \"bda99425-65c2-4048-a2ba-29708997befd\",\n                \"status_message\": \"midtrans payment notification\",\n                \"status_code\": \"202\",\n                \"signature_key\": \"2c5f9c3817506c21c2def75fe3d55f3071ac7d7a70afaf209561da1781675e3a6d179378aec6d870575094fb4759542d8a7d58a5382abadcfde2a490b67312e9\",\n                \"payment_type\": \"bank_transfer\",\n                \"payment_amounts\": [],\n                \"order_id\": \"66ce8ad74503c79b17f77c4e\",\n                \"merchant_id\": \"G946175683\",\n                \"gross_amount\": \"20000.00\",\n                \"fraud_status\": \"accept\",\n                \"expiry_time\": \"2024-08-28 09:41:31\",\n                \"currency\": \"IDR\"\n            }\n        },\n        {\n            \"_id\": \"66cddc8301eb0454641c59f3\",\n            \"event_name\": \"Cimahi Expo\",\n            \"ticket_type\": \"regular cat2\",\n            \"created_at\": \"2024-08-27T14:02:43.399Z\",\n            \"payment_details\": {\n                \"va_numbers\": [\n                    {\n                        \"va_number\": \"75683258655\",\n                        \"bank\": \"bca\"\n                    }\n                ],\n                \"transaction_time\": \"2024-08-27 21:03:02\",\n                \"transaction_status\": \"settlement\",\n                \"transaction_id\": \"14e19a79-7343-4cab-afa4-d588e71b54b5\",\n                \"status_message\": \"midtrans payment notification\",\n                \"status_code\": \"200\",\n                \"signature_key\": \"cec19bb5adeb7d45b5a7be650f6803c9510ae479fec2f1b5ddf93135337eadfd5621ad7f4a60092080be1644832956097b7c8cff8902f8a121ddb177cc52e65e\",\n                \"settlement_time\": \"2024-08-27 21:03:32\",\n                \"payment_type\": \"bank_transfer\",\n                \"payment_amounts\": [],\n                \"order_id\": \"66cddc8301eb0454641c59f3\",\n                \"merchant_id\": \"G946175683\",\n                \"gross_amount\": \"20000.00\",\n                \"fraud_status\": \"accept\",\n                \"expiry_time\": \"2024-08-27 21:17:43\",\n                \"currency\": \"IDR\"\n            }\n        },\n        {\n            \"_id\": \"66cdda8dfc7cdd2eb01b8fe4\",\n            \"event_name\": \"Cimahi Expo\",\n            \"ticket_type\": \"regular cat2\",\n            \"created_at\": \"2024-07-27T13:54:21.618Z\",\n            \"payment_details\": {\n                \"va_numbers\": [\n                    {\n                        \"va_number\": \"75683183636\",\n                        \"bank\": \"bca\"\n                    }\n                ],\n                \"transaction_time\": \"2024-08-27 20:54:40\",\n                \"transaction_status\": \"cancel\",\n                \"transaction_id\": \"6e5f6ae2-4d52-415d-9e7f-77a9dd74621d\",\n                \"status_message\": \"midtrans payment notification\",\n                \"status_code\": \"202\",\n                \"signature_key\": \"a3c6aa6663dbc52cac04b06a0d7591de19b51d8aa0887e03dd1e6414a6d3c2d5eb2c914d4d9153c251f0bb1bece4a3a935bfabbabc1f3b496d1d687404047b2d\",\n                \"payment_type\": \"bank_transfer\",\n                \"payment_amounts\": [],\n                \"order_id\": \"66cdda8dfc7cdd2eb01b8fe4\",\n                \"merchant_id\": \"G946175683\",\n                \"gross_amount\": \"20000.00\",\n                \"fraud_status\": \"accept\",\n                \"expiry_time\": \"2024-08-27 21:09:21\",\n                \"currency\": \"IDR\"\n            }\n        }\n    ]\n}"}],"_postman_id":"7dd419c3-1c66-419b-a6ac-41e6f6c073b7"},{"name":"Handling Midtrans Notification / Callback","id":"56972771-85d3-42c7-88c0-46723da81798","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"url":"/transaction/handlingNotification","description":"<p>Handle transaction notifications received from Midtrans regarding changes in payment status.</p>\n","urlObject":{"path":["transaction","handlingNotification"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"56972771-85d3-42c7-88c0-46723da81798"}],"id":"f477ace6-af8b-4742-97c2-44f02ca17c9a","_postman_id":"f477ace6-af8b-4742-97c2-44f02ca17c9a","description":""},{"name":"Ticket","item":[{"name":"Get User Ticket","id":"8dd7383b-a61c-4564-8ef9-f610ab47e32a","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/ticket?status=purchased&from=2024-08-01&to=2024-08-31&search=concert&page=1&limit=10","description":"<p><code>Endpoint: GET /api/tickets/</code><br />Description: Gets a list of all tickets owned by the currently logged in user.<br />Authorization: Required</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><strong><code>status=purchased</code></strong>:</p>\n<ul>\n<li>This filter is used to retrieve tickets where the payment has been successfully made, and the tickets have been purchased.</li>\n</ul>\n</li>\n<li><p><strong><code>from=2024-08-01&amp;to=2024-08-31</code></strong>:</p>\n<ul>\n<li>This sets the date range filter to only include tickets that were created or purchased between August 1, 2024, and August 31, 2024.</li>\n</ul>\n</li>\n<li><p><strong><code>search=concert</code></strong>:</p>\n<ul>\n<li>This filter is used to search for tickets related to events with names or descriptions that include the keyword \"concert.\"</li>\n</ul>\n</li>\n<li><p><strong><code>page=1&amp;limit=10</code></strong>:</p>\n<ul>\n<li>This sets up pagination, where the results will show the first page, with a maximum of 10 tickets per page.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Statuses That Can Be Used:</strong></p>\n<ol>\n<li><p><strong><code>pending</code></strong>:</p>\n<ul>\n<li><p>Tickets in this status indicate that the transaction has been initiated, but the payment has not yet been completed by the customer.</p>\n</li>\n<li><p>The customer might be in the process of making a payment through Bank Transfer, E-Wallet, or other payment methods.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>purchased</code></strong>:</p>\n<ul>\n<li><p>This status indicates that the payment has been successfully completed, and the ticket has been purchased.</p>\n</li>\n<li><p>The customer now owns the ticket and can use it for entry into the event.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>checked-in</code></strong>:</p>\n<ul>\n<li>This status indicates that the ticket has been scanned or verified at the event, and the customer has been granted entry.</li>\n</ul>\n</li>\n</ol>\n<p><strong>Usage in Queries:</strong></p>\n<ul>\n<li><p><strong><code>status=pending</code></strong>:</p>\n<ul>\n<li>Retrieve tickets where customers have started the transaction but haven't completed payment.</li>\n</ul>\n</li>\n<li><p><strong><code>status=purchased</code></strong>:</p>\n<ul>\n<li>Retrieve tickets that have been successfully purchased and are ready for the event.</li>\n</ul>\n</li>\n<li><p><strong><code>status=checked-in</code></strong>:</p>\n<ul>\n<li>Retrieve tickets that have been used to enter the event, confirming that the attendee has arrived.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Default Behavior:</strong></p>\n<ul>\n<li><p><strong>Date Range</strong>:</p>\n<ul>\n<li>If <code>from</code> and <code>to</code> are not specified, the system defaults to a range starting 30 days before the current date up to today.</li>\n</ul>\n</li>\n<li><p><strong>Status</strong>:</p>\n<ul>\n<li>If <code>status</code> is not specified, it defaults to <code>all</code>, meaning it will include tickets of any status (e.g., pending, purchased, checked-in).</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["ticket"],"host":[""],"query":[{"key":"status","value":"purchased"},{"key":"from","value":"2024-08-01"},{"key":"to","value":"2024-08-31"},{"key":"search","value":"concert"},{"key":"page","value":"1"},{"key":"limit","value":"10"}],"variable":[]}},"response":[{"id":"d20cdab1-5c75-44b8-a3f1-0584dd7c85d1","name":"Get User Ticket","originalRequest":{"method":"GET","header":[],"url":{"raw":"/ticket?status=purchased&from=2024-08-01&to=2024-08-31&search=expo&page=1","host":[""],"path":["ticket"],"query":[{"key":"status","value":"purchased"},{"key":"from","value":"2024-08-01"},{"key":"to","value":"2024-08-31"},{"key":"search","value":"expo"},{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1372"},{"key":"ETag","value":"W/\"55c-fGdMg3Yx+eSbgdeD4txehQdlVQo\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:39:46 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User tickets fetched successfully\",\n    \"data\": [\n        {\n            \"_id\": \"66cddc8301eb0454641c59f1\",\n            \"event_id\": {\n                \"_id\": \"66cdac5801e5760168c6b9d1\",\n                \"name\": \"Cimahi Expo\",\n                \"description\": \"Rame pokoknya mah dateng yah\",\n                \"ticket_types\": [\n                    {\n                        \"type\": \"regular cat2\",\n                        \"sold\": 0,\n                        \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                    }\n                ]\n            },\n            \"user_id\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_type_id\": \"66cdae5f01e5760168c6b9d6\",\n            \"barcode\": \"70907-10049-1724767363385\",\n            \"status\": \"checked-in\",\n            \"price\": 20000,\n            \"created_at\": \"2024-08-27T14:02:43.385Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"66ce99af90c0945d5ad02efc\",\n            \"event_id\": {\n                \"_id\": \"66cdac5801e5760168c6b9d1\",\n                \"name\": \"Cimahi Expo\",\n                \"description\": \"Rame pokoknya mah dateng yah\",\n                \"ticket_types\": [\n                    {\n                        \"type\": \"regular cat2\",\n                        \"sold\": 0,\n                        \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                    }\n                ]\n            },\n            \"user_id\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_type_id\": \"66cdae5f01e5760168c6b9d6\",\n            \"barcode\": \"48769-52173-1724815791991\",\n            \"status\": \"checked-in\",\n            \"price\": 20000,\n            \"created_at\": \"2024-08-28T03:29:51.991Z\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"66ced3f934163ababaca486c\",\n            \"event_id\": {\n                \"_id\": \"66cdac5801e5760168c6b9d1\",\n                \"name\": \"Cimahi Expo\",\n                \"description\": \"Rame pokoknya mah dateng yah\",\n                \"ticket_types\": [\n                    {\n                        \"type\": \"regular cat2\",\n                        \"sold\": 0,\n                        \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                    }\n                ]\n            },\n            \"user_id\": \"66bc85f2de0b3c124512b372\",\n            \"ticket_type_id\": \"66cdae5f01e5760168c6b9d6\",\n            \"barcode\": \"3374-97169-1724830713419\",\n            \"status\": \"purchased\",\n            \"price\": 20000,\n            \"created_at\": \"2024-08-28T07:38:33.419Z\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"8dd7383b-a61c-4564-8ef9-f610ab47e32a"},{"name":"Get User Ticket By Id","id":"2d775fb5-98e8-4bd3-beaa-a8da3cacf065","protocolProfileBehavior":{"disableBodyPruning":true,"strictSSL":false},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/ticket/66cddc8301eb0454641c59f1","description":"<p><code>Endpoint:GET /api/tickets/:id</code></p>\n<p>Get specific details of a ticket based on the ticket ID, accessible only to the ticket owner.<br /><strong>Authorization</strong>: Required.</p>\n","urlObject":{"path":["ticket","66cddc8301eb0454641c59f1"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"488ee0af-6552-4d31-8cc3-d49f6eaf02b0","name":"Get User Ticket Copy","originalRequest":{"method":"GET","header":[],"url":"/ticket/66cddc8301eb0454641c59f1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"505"},{"key":"ETag","value":"W/\"1f9-liJ9ujR46LK1YZ9gDK1BC99dsAg\""},{"key":"Date","value":"Wed, 28 Aug 2024 07:40:54 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"message\": \"User ticket fetched successfully\",\n    \"data\": {\n        \"_id\": \"66cddc8301eb0454641c59f1\",\n        \"event_id\": {\n            \"_id\": \"66cdac5801e5760168c6b9d1\",\n            \"name\": \"Cimahi Expo\",\n            \"description\": \"Rame pokoknya mah dateng yah\",\n            \"ticket_types\": [\n                {\n                    \"type\": \"regular cat2\",\n                    \"sold\": 0,\n                    \"_id\": \"66cdae5f01e5760168c6b9d6\"\n                }\n            ]\n        },\n        \"user_id\": \"66bc85f2de0b3c124512b372\",\n        \"ticket_type_id\": \"66cdae5f01e5760168c6b9d6\",\n        \"barcode\": \"70907-10049-1724767363385\",\n        \"status\": \"checked-in\",\n        \"price\": 20000,\n        \"created_at\": \"2024-08-27T14:02:43.385Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"2d775fb5-98e8-4bd3-beaa-a8da3cacf065"}],"id":"341107f2-42a1-44ce-b2b1-6ea295e7bd34","description":"<p>Tickets purchased by users to attend certain events. Each ticket has information such as ticket type, event name, and attendance status (checked-in or not).</p>\n","_postman_id":"341107f2-42a1-44ce-b2b1-6ea295e7bd34"},{"name":"ErrorHandler","item":[],"id":"e00e8462-47dd-4c8e-a33a-f3ae5dea3094","description":"<h4 id=\"overview\">Overview</h4>\n<p>The error handling mechanism is designed to manage and respond to errors occurring during request processing. It categorizes errors into client and server errors, providing appropriate responses based on the nature of the error.</p>\n<h4 id=\"error-response-structure\">Error Response Structure</h4>\n<p><strong>1.Client Errors:</strong></p>\n<ul>\n<li><strong>When</strong> <strong><code>messages</code></strong> <strong>are present</strong>:</li>\n</ul>\n<p><strong>Response</strong>: A detailed error response will be provided containing multiple messages.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"name\": \"ClientError\",\n  \"messages\": [\n    \"Error message 1\",\n    \"Error message 2\",\n    ...\n  ]\n}\n\n</code></pre>\n<p><strong>Explanation</strong>: This response is used when there are multiple validation errors or issues with the request that need to be communicated in detail.</p>\n<ul>\n<li><strong>When</strong> <strong><code>message</code></strong> <strong>is a single string</strong>:</li>\n</ul>\n<p><strong>Response</strong>: A simpler error response with a single message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"name\": \"ClientError\",\n\n  \"message\": \"Error message\"\n}\n\n\n</code></pre>\n<p><strong>Explanation</strong>: This response is used for more straightforward issues where only a single message needs to be communicated.</p>\n<p><strong>2.Server Errors</strong>:</p>\n<p><strong>Response</strong>: An error response indicating that an issue occurred on the server.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"name\": \"Server Error\",\n  \"message\": \"An unexpected error occurred on the server.\"\n}\n\n\n</code></pre>\n<p><strong>Explanation</strong>: This response is used for unexpected errors on the server side, such as issues with server resources or configuration problems.</p>\n<h4 id=\"error-categories\">Error Categories</h4>\n<ul>\n<li><p><strong>Client Errors</strong>:</p>\n<ul>\n<li><p>These errors typically arise from issues in the request made by the client. Examples include invalid form submissions, missing required fields, or data validation errors.</p>\n</li>\n<li><p><strong>Detailed Messages</strong>: Used when multiple errors need to be communicated, such as in the case of form validation errors where multiple fields may be incorrect.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Server Errors</strong>:</p>\n<ul>\n<li><p>These errors indicate that something went wrong on the server side. This could include errors due to unhandled exceptions, database issues, or server misconfigurations.</p>\n</li>\n<li><p><strong>Single Message</strong>: Used to communicate a general server issue when the specific details are less critical or not available.</p>\n</li>\n</ul>\n</li>\n</ul>\n","_postman_id":"e00e8462-47dd-4c8e-a33a-f3ae5dea3094"}],"event":[{"listen":"prerequest","script":{"id":"1a26bc4d-2d5f-4788-9180-fbea3abc39e1","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"f8311035-5c80-4424-b5a9-5a39d460fa67","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"url","value":"","type":"string"},{"key":"accessToken","value":"","type":"string"},{"key":"refreshToken","value":"","type":"string"},{"key":"apiKey","value":"","type":"string"}]}