{"info":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"26410287","collectionId":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","publishedId":"2sB2qfAeXj","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-06-02T11:55:50.000Z"},"item":[{"name":"Boards","item":[{"name":"Get All Boards","event":[{"listen":"test","script":{"id":"a85f4bae-5113-4f47-ba7b-55cde8e06e5a","exec":["const response = pm.response.json();\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Test for the existence of the Board array\r","pm.test(\"Response contains Board array\", () => {\r","    pm.expect(response.Board).to.exist;\r","    pm.expect(response.Board).to.be.an(\"array\");\r","});\r","\r","pm.test(\"Board property have all of the keys\", () => {\r","    response.Board.forEach(board => {\r","        pm.expect(board).to.have.keys(\"uuid\", \"workspace_id\", \"platform_id\", \"is_active\", \"public_alias\", \"name\", \"emoji\", \"description\", \"top_priority\", \"is_public\", \"owner_id\", \"notifications\", \"settings\", \"voting_settings\", \"release_note_settings\", \"last_updated\", \"votes_reset_schedule\", \"remove_date\", \"links\", \"keep_demo_issues\", \"form_tracker\", \"form_messenger\");\r","    });\r","});\r","\r","pm.test(\"Response to have property BoardUser\", () => {\r","    pm.expect(response.BoardUser).to.exist;\r","});\r","pm.test(\"BoardUser is an array\", () => {\r","    pm.expect(response.BoardUser).is.an('array');\r","});\r","pm.test(\"BoardUser property have 2 keys\", () => {\r","    if (response.BoardUser.length > 0) {\r","        pm.expect(response.BoardUser[0]).to.have.keys(\"board_uuid\", \"user_id\");\r","    }\r","});\r","\r","pm.test(\"Response to have property BoardFacilitator\", () => {\r","    pm.expect(response.BoardFacilitator).to.exist;\r","});\r","pm.test(\"BoardFacilitator is an array\", () => {\r","    pm.expect(response.BoardFacilitator).is.an('array');\r","});\r","\r","pm.test(\"BoardFacilitator property validation\", () => {\r","    if (response.BoardFacilitator.length > 0) {\r","        pm.expect(response.BoardFacilitator[0]).to.have.keys(\"board_uuid\", \"user_id\");\r","    } else {\r","        pm.expect(response.BoardFacilitator).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"Response to have property Criterion\", () => {\r","    pm.expect(response.Criterion).to.exist;\r","});\r","pm.test(\"Criterion is an array\", () => {\r","    pm.expect(response.Criterion).is.an('array');\r","});\r","pm.test(\"Check properties is in Criterion\", () => {\r","    if (response.Criterion.length > 0) {\r","        pm.expect(response.Criterion[0]).to.have.keys(\"id\",\"name\",\"description\",\"scale_type\",\"scale_min\",\"scale_max\",\r","        \"scale_series\",\"is_custom\",\"custom_platform_id\",\"custom_field_name\",\"archived\",\"created\",\"type\",\"workspace_id\" );\r","    }\r","});\r","\r","pm.test(\"Response to have property BoardCriterion\", () => {\r","    pm.expect(response.BoardCriterion).to.exist;\r","});\r","pm.test(\"BoardCriterion is an array\", () => {\r","    pm.expect(response.BoardCriterion).is.an('array');\r","});\r","pm.test(\"Check properties is in BoardCriterion\", () => {\r","    if (response.BoardCriterion.length > 0) {\r","        pm.expect(response.BoardCriterion[0]).to.have.keys(\"criterion_id\",\"workspace_id\",\"board_uuid\",\"position\",\"reset_votes\",\r","        \"votes_lifetime\",\"coefficient\",\"id\" );\r","    }\r","});\r","\r","pm.test(\"Response to have property CriterionUser\", () => {\r","    pm.expect(response.CriterionUser).to.exist;\r","});\r","pm.test(\"CriterionUser is an array\", () => {\r","    pm.expect(response.CriterionUser).is.an('array');\r","});\r","pm.test(\"Check properties is in CriterionUser\", () => {\r","    if (response.CriterionUser.length > 0) {\r","        pm.expect(response.CriterionUser[0]).to.have.keys(\"criterion_id\",\"user_id\",\"board_uuid\",\"created\");\r","    }\r","});\r","\r","pm.test(\"Response to have property CriterionFacilitator\", () => {\r","    pm.expect(response.CriterionFacilitator).to.exist;\r","});\r","pm.test(\"CriterionFacilitator is an array\", () => {\r","    pm.expect(response.CriterionFacilitator).is.an('array');\r","});\r","\r","pm.test(\"CriterionFacilitator property validation\", () => {\r","    if (response.CriterionFacilitator.length > 0) {\r","        pm.expect(response.CriterionFacilitator[0]).to.have.keys(\"criterion_id\",\"user_id\",\"board_uuid\",\"created\");\r","    } else {\r","        pm.expect(response.CriterionFacilitator).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"Response to have property Sprint\", () => {\r","    pm.expect(response.Sprint).to.exist;\r","});\r","pm.test(\"Sprint is an array\", () => {\r","    pm.expect(response.Sprint).is.an('array');\r","});\r","pm.test(\"Check properties is in Sprint\", () => {\r","    if (response.Sprint.length > 0) {\r","        pm.expect(response.Sprint[0]).to.have.keys(\"id\",\"board_uuid\", \"name\",\"starts_at\",\"ends_at\",\"reveal_at\",\"hide_scores\",\r","        \"disable_evaluation\" );\r","    }\r","});\r","\r","pm.test(\"Response to have property PlatformFilterFactory\", () => {\r","    pm.expect(response.PlatformFilterFactory).to.exist;\r","});\r","pm.test(\"PlatformFilterFactory is an array\", () => {\r","    pm.expect(response.PlatformFilterFactory).is.an('array');\r","});\r","pm.test(\"PlatformFilterFactory validation\", () => {\r","    if (response.PlatformFilterFactory.length > 0) {\r","        pm.expect(response.PlatformFilterFactory[0]).to.have.keys(\"board_uuid\",\"provider\",\"error\", \"external\" );\r","    } else {\r","        pm.expect(response.PlatformFilterFactory).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"Response to have property AbstractBoardSyncerModel\", () => {\r","    pm.expect(response.AbstractBoardSyncerModel).to.exist;\r","});\r","pm.test(\"AbstractBoardSyncerModel is an array\", () => {\r","    pm.expect(response.AbstractBoardSyncerModel).is.an('array');\r","});\r","pm.test(\"AbstractBoardSyncerModel validation\", () => {\r","    if (response.AbstractBoardSyncerModel.length > 0) {\r","        pm.expect(response.AbstractBoardSyncerModel[0]).to.have.keys(\"can_choose_fields\", \"can_choose_top_field_type\",\r","        \"error\", \"id\",\"last_sync\",\"map_switch\", \"next_sync\", \"owner_id\",\"platform_id\",\"provider\",\"settings\",\r","        \"warning\",\"workspace_id\" );\r","    } else {\r","        pm.expect(response.AbstractBoardSyncerModel).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"Response to have property AbstractReportSyncerModel\", () => {\r","    pm.expect(response.AbstractReportSyncerModel).to.exist;\r","});\r","pm.test(\"AbstractReportSyncerModel is an array\", () => {\r","    pm.expect(response.AbstractReportSyncerModel).is.an('array');\r","});\r","pm.test(\"AbstractReportSyncerModel validation\", () => {\r","    if (response.AbstractReportSyncerModel.length > 0) {\r","        pm.expect(response.AbstractReportSyncerModel[0]).to.have.keys(\"can_choose_fields\", \"can_choose_top_field_type\",\r","        \"error\", \"id\",\"last_sync\",\"map_switch\", \"next_sync\", \"owner_id\",\"platform_id\",\"provider\",\"settings\",\r","        \"warning\",\"workspace_id\" );\r","    } else {\r","        pm.expect(response.AbstractReportSyncerModel).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"Response to have property IdeaStatusTrigger\", () => {\r","    pm.expect(response.IdeaStatusTrigger).to.exist;\r","});\r","pm.test(\"IdeaStatusTrigger is an array\", () => {\r","    pm.expect(response.IdeaStatusTrigger).is.an('array');\r","});\r","pm.test(\"IdeaStatusTrigger validation\", () => {\r","    if (response.IdeaStatusTrigger.length > 0) {\r","        pm.expect(response.IdeaStatusTrigger[0]).to.have.keys(\"id\", \"type\", \"board_uuid\", \"trigger_value\",\"idea_status_id\",\r","        \"organization_webhook_id\");\r","    } else {\r","        pm.expect(response.IdeaStatusTrigger).to.be.empty;\r","    }\r","});\r","\r","pm.test(\"CustomField is an array\", () => {\r","    pm.expect(response.CustomField).is.an('array');\r","});\r","\r","pm.test(\"CustomField validation\", () => {\r","    if (response.CustomField.length > 0) {\r","        pm.expect(response.CustomField[0]).to.have.keys(\"uuid\", \"type\", \"name\", \"description\",\"options\",\"voting_boards\"  );\r","    } else {\r","        pm.expect(response.CustomField).to.be.empty;\r","    }\r","});\r","\r","// Проверка типов данных для Board\r","pm.test(\"Board fields type validation\", () => {\r","    const response = pm.response.json();\r","    if (response.Board.length > 0) {\r","        response.Board.forEach(board => {\r","            pm.expect(board.uuid).to.be.a('string');\r","            pm.expect(board.workspace_id).to.be.a('number');\r","            pm.expect(board.platform_id).to.be.a('number');\r","            pm.expect(board.is_active).to.be.a('boolean');\r","            pm.expect(board.public_alias).to.satisfy(value => value === null || typeof value === 'string');\r","            pm.expect(board.name).to.be.a('string');\r","            pm.expect(board.emoji).to.be.a('string');\r","            pm.expect(board.description).to.be.a('string');\r","            pm.expect(board.top_priority).to.be.a('number');\r","            pm.expect(board.is_public).to.be.a('boolean');\r","            pm.expect(board.owner_id).to.be.a('number');\r","            pm.expect(board.notifications).to.be.an('object');\r","            pm.expect(board.settings).to.be.an('object');\r","            pm.expect(board.voting_settings).to.be.an('object');\r","            pm.expect(board.release_note_settings).to.be.an('object');\r","            pm.expect(board.last_updated).to.satisfy(value => value === null || typeof value === 'string');\r","            pm.expect(board.remove_date).to.satisfy(value => value === null || typeof value === 'string');\r","            pm.expect(board.links).to.be.an('object');\r","            pm.expect(board.keep_demo_issues).to.be.a('boolean');\r","            pm.expect(board.form_tracker).to.satisfy(value => value === null || typeof value === 'string');\r","            pm.expect(board.form_messenger).to.satisfy(value => value === null || typeof value === 'string');\r","        });\r","    }\r","});\r","\r","// Проверка UUID формата\r","pm.test(\"Board UUID format validation\", () => {\r","    if (response.Board.length > 0) {\r","        const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r","        response.Board.forEach(board => {\r","            pm.expect(board.uuid).to.match(uuidRegex, \"UUID should be in valid format\");\r","        });\r","    }\r","});\r","\r","// Проверка вложенных объектов Board\r","pm.test(\"Board nested objects structure\", () => {\r","    const response = pm.response.json();\r","    if (response.Board.length > 0) {\r","        const board = response.Board[0];\r","        \r","        // notifications object\r","        pm.expect(board.notifications).to.be.an('object');\r","        pm.expect(board.notifications).to.have.all.keys('offset', 'time');\r","        pm.expect(board.notifications.offset).to.be.a('number');\r","        pm.expect(board.notifications.time).to.be.a('string');\r","        \r","        // settings object\r","        pm.expect(board.settings).to.be.an('object');\r","        pm.expect(board.settings).to.have.all.keys('formula', 'is_shared', 'hideScores', 'resetVotes','autoSprints','blocksOrder','closedNotes', 'devCycleDay', 'alignmentRed', 'formulaRound','devCycleWeeks','votesLifetime','customVoteMode','matrixSettings', 'alignmentYellow','keycloakGroupId','considerBlockers','resetVotesByRole','rewardingMessage','userAlignmentRed', 'disableEvaluation','descriptionTemplate', 'summaryAlignmentRed','userAlignmentYellow','summaryAlignmentYellow','votingCommentsAssigneeId','customVoteApproveRequired' );\r","        \r","        // voting_settings object\r","        pm.expect(board.voting_settings).to.be.an('object');\r","        pm.expect(board.voting_settings).to.have.all.keys('name', 'emoji', 'enabled', 'language', 'is_private', 'description', 'votesLabels', 'access_domains', 'email_reply_to', 'author_restrict', 'restrict_access', 'multiple_upvotes', 'dashboard_visible', 'ideas_email_alias', 'slack_new_actions', 'ideas_email_enabled', 'card_display_upvotes', 'description_template', 'chatgpt_idea_creation', 'widget_auto_subscribe', 'email_reply_to_enabled', 'chatgpt_idea_translation', 'chatgpt_announce_creation', 'email_reply_to_check_date', 'open_changelog_by_default', 'email_reply_to_check_status', 'description_template_enabled', 'board_description_template');\r","\r","        // release_note_settings object\r","        pm.expect(board.release_note_settings).to.be.an('object');\r","        pm.expect(board.release_note_settings).to.have.all.keys('day', 'time', 'interval', 'interval_type', 'auto_gen_enabled');\r","        \r","        // votes_reset_schedule object\r","        pm.expect(board.votes_reset_schedule).to.be.an('object');\r","        pm.expect(board.votes_reset_schedule).to.have.all.keys('time', 'offset');\r","        \r","        // links object\r","        pm.expect(board.links).to.be.an('object');\r","        pm.expect(board.links).to.include.all.keys('url', 'voting', 'ideas_email', 'change_owner_url');\r","    }\r","});\r","\r","// Проверка Criterion scale values\r","// pm.test(\"Criterion scale validation\", () => {\r","//     if (response.Criterion.length > 0) {\r","//         response.Criterion.forEach(criterion => {\r","//             pm.expect(criterion.scale_min).to.be.a('number');\r","//             pm.expect(criterion.scale_max).to.be.a('number');\r","//             pm.expect(criterion.scale_max).to.be.above(criterion.scale_min, \"Scale max should be greater than scale min\");\r","\r","//         });\r","//     }\r","// });\r","\r","// Проверка email в links\r","pm.test(\"Board links email validation\", () => {\r","    if (response.Board.length > 0) {\r","        const links = response.Board[0].links;\r","        if (links.ideas_email) {\r","            const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r","            pm.expect(links.ideas_email).to.match(emailRegex, \"Ideas email should be valid email format\");\r","        }\r","    }\r","});\r","\r","// Проверка URL в links\r","pm.test(\"Board links URL validation\", () => {\r","    if (response.Board.length > 0) {\r","        const links = response.Board[0].links;\r","        ['url', 'voting', 'change_owner_url'].forEach(urlField => {\r","            if (links[urlField]) {\r","                pm.expect(links[urlField]).to.match(/^https?:\\/\\//, `${urlField} should be valid URL`);\r","            }\r","        });\r","    }\r","});\r","\r","// Проверка workspace_id консистентности\r","pm.test(\"Workspace ID consistency\", () => {\r","    if (response.Board.length > 0) {\r","        const workspaceId = response.Board[0].workspace_id;\r","        \r","        // Проверяем что все связанные сущности имеют тот же workspace_id\r","        if (response.Criterion.length > 0) {\r","            response.Criterion.forEach(criterion => {\r","                pm.expect(criterion.workspace_id).to.equal(workspaceId, \"Criterion should have same workspace_id as Board\");\r","            });\r","        }\r","        \r","        if (response.BoardCriterion.length > 0) {\r","            response.BoardCriterion.forEach(bc => {\r","                pm.expect(bc.workspace_id).to.equal(workspaceId, \"BoardCriterion should have same workspace_id as Board\");\r","            });\r","        }\r","    }\r","});\r","\r",""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"7f126195-5cfc-4dd8-aeeb-674e73743c91","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    const firstRequest = {\r","    url: 'https://stage-admin.ducalis.io/users/login?id=9770&rand=422310174',\r","    method: 'GET',\r","    header: [\r","        {\r","            key: 'Content-type',\r","            value: 'text/html'\r","        },\r","        {\r","            key: 'X-Skip-Dev-Auth',\r","            value: pm.variables.get('stage_login')\r","            }\r","        ]\r","    };\r","    \r","    pm.sendRequest(firstRequest, function (err, response) {\r","        if (err) {\r","            console.log('First request error:', err);\r","        } else {\r","            console.log('First response status:', response.status);\r","            console.log('First response body:', response.text());\r","            \r","            // Второй запрос после завершения первого\r","            const secondRequest = {\r","                url: 'https://stage.ducalis.io/rest/organization/change?id=2637',\r","                method: 'GET',\r","                header: [\r","                    {\r","                        key: 'Content-Type',\r","                        value: 'application/x-www-form-urlencoded'\r","                    },\r","                    {\r","                        key: 'X-Skip-Dev-Auth',\r","                        value: pm.variables.get('stage_login')\r","                    }\r","                ]\r","            };\r","            \r","            pm.sendRequest(secondRequest, function (err, response) {\r","                if (err) {\r","                    console.log('Second request error:', err);\r","                } else {\r","                    console.log('Second response status:', response.status);\r","                    console.log('Second response body:', response.text());\r","                }\r","            });\r","        }\r","    });\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"dcd2abd0-6940-4a18-aa2f-2271d93df84d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/storage/boards","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["storage","boards"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"70d5fbf4-1d3d-4df6-9d68-7e5d561e0260","name":"Get All Boards","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/storage/boards"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"Board\": [\n        {\n            \"uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"workspace_id\": 6901,\n            \"platform_id\": 196,\n            \"is_active\": true,\n            \"public_alias\": \"workspace-2-feedback\",\n            \"name\": \"Feature Planning\",\n            \"emoji\": \"💡\",\n            \"description\": \"<h1><strong>How to Collect Users’ Feedback and Share Roadmap</strong></h1><p>Read and follow this short list to set up Ducalis quickly. &nbsp;</p><p></p><p><strong>Step 1 </strong>. Watch&nbsp; <a href=\\\"https://youtu.be/A0H8iwDkPCY?si=OU-bJrb5hHJ8mAIu\\\" target=\\\"_blank\\\">video overview.</a></p><p><strong>Step 2.&nbsp; </strong><a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"/board/01971623-62bd-8bc7-8337-4a09d565519f/public-ideas?dialog=/settings/voting/appearance\\\">Customize </a>&nbsp;logo, colors, language and theme.&nbsp;</p><p><strong>Step 3. </strong>&nbsp; <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"/board/01971623-62bd-8bc7-8337-4a09d565519f/description?dialog=/settings/board/01971623-62bd-8bc7-8337-4a09d565519f/sync\\\">Connect tracker </a>and create ideas from your&nbsp;backlog issues&nbsp;automatically with AI.</p><p><em>Tip! </em>Another way to create ideas – go to <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"/board/01971623-62bd-8bc7-8337-4a09d565519f/public-ideas\\\">Voting board </a>&nbsp;and create&nbsp;public ideas manually, or&nbsp; <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"/board/01971623-62bd-8bc7-8337-4a09d565519f/public-ideas?dialog=/settings/board/01971623-62bd-8bc7-8337-4a09d565519f/import-export\\\">import feedback </a>.</p><p><strong>Step 4 </strong>. Set up your own voting board <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://ducalis.io/?dialog=/settings/voting/domain\\\">domain </a><em>.</em></p><p><strong>Step 5.&nbsp; </strong>Set up your <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://ducalis.io/?dialog=/settings/voting/email-domain\\\">email domain</a>&nbsp;to send notifications.&nbsp;</p><p></p><p><em>Tip! </em>After working with this list, you can delete it and write your own board description.&nbsp;</p><br/><br/><h1 data-pm-slice=\\\"1 1 []\\\"><strong>How to import issues from Jira Cloud</strong></h1><p><strong>Step 1. </strong>Open the board &gt;<strong> </strong>Click<strong> </strong><a href=\\\"/board/01971623-62bd-8bc7-8337-4a09d565519f/description?dialog=/settings/board/01971623-62bd-8bc7-8337-4a09d565519f/sync\\\" target=\\\"_blank\\\">Connect</a> in the left bottom corner.</p><p><strong>Step 2.</strong> Click <a href=\\\"https://ducalis.io/?dialog=/settings/board/01971623-62bd-8bc7-8337-4a09d565519f/sync\\\" target=\\\"_blank\\\">Connect Issue Tracker</a>.</p><p><strong>Step 3.</strong> Choose <a href=\\\"https://ducalis.io/integration/01971623-62bd-8bc7-8337-4a09d565519f\\\" target=\\\"_blank\\\">Jira Cloud</a> and filter issues you need.</p><p><strong>Step 4.</strong> Click Import to finish it.&nbsp;</p><p></p>\",\n            \"top_priority\": 3,\n            \"is_public\": true,\n            \"owner_id\": 4,\n            \"notifications\": {\n                \"offset\": 3,\n                \"time\": \"15:00\"\n            },\n            \"settings\": {\n                \"formula\": \"avg\",\n                \"is_shared\": false,\n                \"hideScores\": false,\n                \"resetVotes\": false,\n                \"blocksOrder\": {\n                    \"summary\": 1,\n                    \"public-ideas\": 0\n                },\n                \"closedNotes\": [],\n                \"devCycleDay\": 1,\n                \"alignmentRed\": 10,\n                \"formulaRound\": true,\n                \"devCycleWeeks\": 1,\n                \"votesLifetime\": 4,\n                \"customVoteMode\": \"all\",\n                \"matrixSettings\": null,\n                \"alignmentYellow\": 30,\n                \"keycloakGroupId\": null,\n                \"considerBlockers\": false,\n                \"resetVotesByRole\": false,\n                \"rewardingMessage\": \"Nailed It! 😎\",\n                \"userAlignmentRed\": 10,\n                \"disableEvaluation\": false,\n                \"descriptionTemplate\": \"<p><strong>Problem:</strong></p><p></p><p><strong>Solution:</strong></p><p></p><p><strong>Comments:</strong></p><p></p>\",\n                \"summaryAlignmentRed\": 10,\n                \"userAlignmentYellow\": 30,\n                \"summaryAlignmentYellow\": 30,\n                \"votingCommentsAssigneeId\": null,\n                \"customVoteApproveRequired\": false\n            },\n            \"voting_settings\": {\n                \"name\": \"Workspace 2 Feedback\",\n                \"emoji\": \"👂\",\n                \"enabled\": true,\n                \"language\": \"en\",\n                \"is_private\": false,\n                \"votesLabels\": [\n                    \"😐 Good if you do that someday\",\n                    \"👍 Nice to have. Use it occasionally\",\n                    \"🤩 It will make me use the product more often\",\n                    \"😍 I Would love to have it\",\n                    \"😖 Blocks my product usage\"\n                ],\n                \"access_domains\": [],\n                \"email_reply_to\": null,\n                \"author_restrict\": false,\n                \"restrict_access\": false,\n                \"multiple_upvotes\": true,\n                \"dashboard_visible\": true,\n                \"ideas_email_alias\": \"workspace-2-workspace-2-feedback\",\n                \"slack_new_actions\": false,\n                \"ideas_email_enabled\": true,\n                \"card_display_upvotes\": true,\n                \"description_template\": \"<p><strong>What would you like to be able to do?</strong></p><p></p><p><strong>How would that help you?</strong></p><p></p>\",\n                \"chatgpt_idea_creation\": true,\n                \"widget_auto_subscribe\": false,\n                \"email_reply_to_enabled\": true,\n                \"chatgpt_idea_translation\": false,\n                \"chatgpt_announce_creation\": true,\n                \"email_reply_to_check_date\": null,\n                \"open_changelog_by_default\": false,\n                \"email_reply_to_check_status\": null,\n                \"description_template_enabled\": true\n            },\n            \"release_note_settings\": {\n                \"day\": 2,\n                \"time\": \"15:00\",\n                \"interval\": 1,\n                \"interval_type\": \"week\",\n                \"auto_gen_enabled\": true\n            },\n            \"last_updated\": null,\n            \"votes_reset_schedule\": {\n                \"time\": \"10:00\",\n                \"offset\": 1\n            },\n            \"remove_date\": null,\n            \"voting_users_import_running\": false,\n            \"links\": {\n                \"url\": \"https://ducalis.loc/board/01971623-62bd-8bc7-8337-4a09d565519f\",\n                \"voting\": \"https://workspace-2.ducalis.loc/workspace-2-feedback\",\n                \"ideas_email\": \"a+test-ideas-workspace-2-workspace-2-feedback@ducalis.io\",\n                \"change_owner_url\": \"https://ducalis.loc/board/change-owner?board_uuid=01971623-62bd-8bc7-8337-4a09d565519f\"\n            },\n            \"keep_demo_issues\": false,\n            \"form_tracker\": \"jira_cloud\"\n        }\n    ],\n    \"BoardUser\": [\n        {\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"user_id\": 4\n        }\n    ],\n    \"BoardFacilitator\": [],\n    \"Criterion\": [\n        {\n            \"id\": 29002,\n            \"name\": \"Impact\",\n            \"description\": \"<p>How big is the value for the main business objective?</p><p>1 — No Impact</p><p>2 — Minimal</p><p>3 — Low</p><p>5 — Moderate</p><p>8 — Considerable</p><p>13 — Very High</p><p>21 — Crucial</p><p></p><p>⚖️ ✍️ <em>Edit this criterion under your needs. </em><a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://help.ducalis.io/knowledge-base/criteria/\\\"><em>Learn more</em></a><em>.</em></p>\",\n            \"scale_type\": \"series\",\n            \"scale_min\": 1,\n            \"scale_max\": 21,\n            \"scale_series\": \"1,2,3,5,8,13,21\",\n            \"is_custom\": false,\n            \"custom_platform_id\": null,\n            \"custom_field_name\": null,\n            \"archived\": false,\n            \"created\": \"2025-05-28 09:05:09\",\n            \"type\": \"value\",\n            \"workspace_id\": 6901\n        },\n        {\n            \"id\": 29003,\n            \"name\": \"Effort\",\n            \"description\": \"<p>How many resources will the implementation require?</p><p>1 — No Effort</p><p>2 — Minimal</p><p>3 — Low</p><p>5 — Moderate</p><p>8 — Considerable</p><p>13 — Very High</p><p>21 — Crucial</p><p></p><p>⚖️ ✍️ <em>Edit this criterion under your needs. </em><a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://help.ducalis.io/knowledge-base/criteria/\\\"><em>Learn more</em></a><em>.</em></p>\",\n            \"scale_type\": \"series\",\n            \"scale_min\": 1,\n            \"scale_max\": 21,\n            \"scale_series\": \"1,2,3,5,8,13,21\",\n            \"is_custom\": false,\n            \"custom_platform_id\": null,\n            \"custom_field_name\": null,\n            \"archived\": false,\n            \"created\": \"2025-05-28 09:05:09\",\n            \"type\": \"effort\",\n            \"workspace_id\": 6901\n        }\n    ],\n    \"BoardCriterion\": [\n        {\n            \"workspace_id\": 6901,\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"criterion_id\": 29002,\n            \"position\": 1,\n            \"reset_votes\": false,\n            \"votes_lifetime\": null,\n            \"coefficient\": 1,\n            \"id\": \"01971623-62bd-8bc7-8337-4a09d565519f_29002_6901\"\n        },\n        {\n            \"workspace_id\": 6901,\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"criterion_id\": 29003,\n            \"position\": 2,\n            \"reset_votes\": false,\n            \"votes_lifetime\": null,\n            \"coefficient\": 1,\n            \"id\": \"01971623-62bd-8bc7-8337-4a09d565519f_29003_6901\"\n        }\n    ],\n    \"CriterionUser\": [\n        {\n            \"criterion_id\": 29002,\n            \"user_id\": 4,\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"created\": \"2025-05-28 09:05:09\"\n        },\n        {\n            \"criterion_id\": 29003,\n            \"user_id\": 4,\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"created\": \"2025-05-28 09:05:09\"\n        }\n    ],\n    \"CriterionFacilitator\": [],\n    \"Sprint\": [\n        {\n            \"id\": 140994,\n            \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n            \"name\": \"Sprint 1\",\n            \"starts_at\": \"2025-05-28 09:05:07\",\n            \"ends_at\": \"2025-06-09 09:05:07\",\n            \"reveal_at\": \"2025-06-06 12:00:00\",\n            \"hide_scores\": false,\n            \"disable_evaluation\": false\n        }\n    ],\n    \"PlatformFilterFactory\": [],\n    \"AbstractBoardSyncerModel\": [],\n    \"AbstractReportSyncerModel\": [],\n    \"IdeaStatusTrigger\": []\n}"}],"_postman_id":"dcd2abd0-6940-4a18-aa2f-2271d93df84d"},{"name":"Get Board Voting Users","event":[{"listen":"prerequest","script":{"id":"6e2b5243-0a89-41ec-a5e2-324327a820b9","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","//Add random example with voting company name    \r","const randomQuery = [\"Nadine\", \"author1@email.com\", \"Mike Rhodes\"];\r","const randomValue = randomQuery[Math.floor(Math.random() * randomQuery.length)];\r","pm.environment.set(\"voting_user_name\", randomValue);\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}\r",""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"e94cae8f-d20e-461b-8b06-670bd4962966","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","\r","// Test for each property in the response\r","const expectedKeys = [\r","    \"id\",\r","    \"is_active\",\r","    \"email\",\r","    \"name\",\r","    \"avatar\",\r","    \"lang\",\r","    \"created\",\r","    \"created_source\",\r","    \"company\",\r","    \"release_notes_subscribed_at\",\r","    \"release_notes_unsubscribed_at\",\r","    \"all_unsubscribed_at\",\r","    \"has_fake_email\",\r","    \"opt_in\",\r","    \"opt_in_date\"\r","];\r","\r","// Check each property exists and has the correct type\r","response.forEach(user => {\r","    pm.test(`User ID exists and is a number`, () => {\r","        pm.expect(user.id).to.exist;\r","        pm.expect(user.id).to.be.a('number');\r","    });\r","\r","    pm.test(`User is_active can be null or a boolean`, () => {\r","        pm.expect(user.is_active).to.satisfy(active => active === null || typeof active === 'boolean');\r","    });\r","\r","    pm.test(`User email exists and is a string`, () => {\r","        pm.expect(user.email).to.exist;\r","        pm.expect(user.email).to.be.a('string');\r","    });\r","\r","    pm.test(`User name exists and is a string`, () => {\r","        pm.expect(user.name).to.exist;\r","        pm.expect(user.name).to.be.a('string');\r","    });\r","\r","    pm.test(`User avatar exists and is a string`, () => {\r","        pm.expect(user.avatar).to.exist;\r","        pm.expect(user.avatar).to.be.a('string');\r","    });\r","\r","    pm.test(`User lang can be null or a string`, () => {\r","        pm.expect(user.lang).to.satisfy(lang => lang === null || typeof lang === 'string');\r","    });\r","\r","    pm.test(`User created exists and is a string`, () => {\r","        pm.expect(user.created).to.exist;\r","        pm.expect(user.created).to.be.a('string');\r","    });\r","\r","    pm.test(`User created_source can be null or a string`, () => {\r","        pm.expect(user.created_source).to.satisfy(src => src === null || typeof src === 'string');\r","    });\r","\r","    pm.test(`User company can be null or a string`, () => {\r","        pm.expect(user.company).to.satisfy(comp => comp === null || typeof comp === 'string');\r","    });\r","\r","    pm.test(`User release_notes_subscribed_at can be null or a string`, () => {\r","        pm.expect(user.release_notes_subscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","    });\r","\r","    pm.test(`User release_notes_unsubscribed_at can be null or a string`, () => {\r","        pm.expect(user.release_notes_unsubscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","    });\r","\r","    pm.test(`User all_unsubscribed_at can be null or a string`, () => {\r","        pm.expect(user.all_unsubscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","    });\r","\r","    pm.test(`User has_fake_email exists and is a boolean`, () => {\r","        pm.expect(user.has_fake_email).to.exist;\r","        pm.expect(user.has_fake_email).to.be.a('boolean');\r","    });\r","\r","    pm.test(`User opt_in can be null or a boolean`, () => {\r","        pm.expect(user.opt_in).to.satisfy(opt => opt === null || typeof opt === 'boolean');\r","    });\r","\r","    pm.test(`User opt_in_date can be null or a string`, () => {\r","        pm.expect(user.opt_in_date).to.satisfy(date => date === null || typeof date === 'string');\r","    });\r","});\r","// let voter = 121563;\r","// pm.test(`User ${voter} exists in the response`, () => {\r","//     let userFound = false;\r","    \r","//     for (let i = 0; i < response.length; i++) {\r","//         if (response[i].id === voter) {\r","//             userFound = true;\r","//             break;\r","//         }\r","//     }\r","    \r","//     pm.expect(userFound).to.be.true;\r","// });\r","\r","pm.environment.set(\"voting_user_name\", \"\");"],"type":"text/javascript","packages":{}}}],"id":"5ea455b6-cfdc-4497-a54e-3f813f77360b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-users"],"host":["https://ducalis.io"],"query":[{"disabled":true,"description":{"content":"<p>Voting user Email,Name or Company name</p>\n","type":"text/plain"},"key":"query","value":"{{voting_user_name}}"}],"variable":[]}},"response":[{"id":"a33a9cad-8537-4b33-83c5-6c8c4cdf9320","name":"All Voting Users","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users?query=","host":["https://ducalis.io"],"path":["rest","boards","your_board_uuid_here","voting-users"],"query":[{"key":"query","value":"","description":"Voting user Email,Name or Company name"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"},{"key":"X-Pagination-Total-Count","value":"1"},{"key":"X-Pagination-Page-Count","value":"1"},{"key":"X-Pagination-Current-Page","value":"1"},{"key":"X-Pagination-Per-Page","value":"100"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 120004,\n        \"is_active\": true,\n        \"email\": \"p@example.com\",\n        \"name\": \"Patrick\",\n        \"avatar\": \"https://example.com/avatar.png\",\n        \"lang\": \"en\",\n        \"created\": \"2025-05-28T09:04:52+00:00\",\n        \"created_source\": null,\n        \"company\": null,\n        \"release_notes_subscribed_at\": \"2025-05-28T09:05:09+00:00\",\n        \"release_notes_unsubscribed_at\": null,\n        \"all_unsubscribed_at\": null,\n        \"has_fake_email\": false,\n        \"opt_in\": true,\n        \"opt_in_date\": \"2025-05-28T09:04:52+00:00\"\n    }\n]"}],"_postman_id":"5ea455b6-cfdc-4497-a54e-3f813f77360b"},{"name":"Add Voting User","event":[{"listen":"prerequest","script":{"id":"aef8cbc5-4e13-4af6-8cad-8e8a284e81a0","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","    pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random email and set it to environment variable\r","    const randomInt = pm.variables.replaceIn('966');\r","    const randomEmail = `elledanili+${randomInt}@ducalis.io`;\r","    pm.environment.set(\"voting_user_email\", randomEmail);\r","    console.log('Voting user email:', pm.environment.get('voting_user_email'));\r","\r","    // Generate random name and set it to environment variable\r","    const randomName = pm.variables.replaceIn('Leopold');\r","    pm.environment.set(\"voting_user_name\", randomName);\r","    console.log('Voting user name:', pm.environment.get('voting_user_name'));\r","\r","    // Prepare the first request to create a voting user\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/voting-users',\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'email', value: pm.environment.get('voting_user_email') },\r","                { key: 'name', value: pm.environment.get('voting_user_name') }\r","            ]\r","        }\r","    };\r","\r","// Send the request to create a voting user\r","\r","pm.sendRequest(firstRequest, function (err, res) { \r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 201) {  \r","            try {\r","                var jsonData = res.json();  \r","                var voting_user_id = jsonData.id;\r","                pm.environment.set(\"voting_user_id\", voting_user_id);\r","                console.log('Voting user ID is:', voting_user_id);\r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"71992dc7-216a-45e8-8546-17ba84c273c3","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","// Test for each property in the response\r","const expectedKeys = [\r","    \"id\",\r","    \"is_active\",\r","    \"email\",\r","    \"name\",\r","    \"avatar\",\r","    \"lang\",\r","    \"created\",\r","    \"created_source\",\r","    \"company\",\r","    \"release_notes_subscribed_at\",\r","    \"release_notes_unsubscribed_at\",\r","    \"all_unsubscribed_at\",\r","    \"has_fake_email\",\r","    \"opt_in\",\r","    \"opt_in_date\"\r","];\r","\r","// Check each property exists and has the correct type\r","pm.test(`Response is an object with expected properties`, () => {\r","    expectedKeys.forEach(key => {\r","        pm.expect(response).to.have.property(key);\r","    });\r","});\r","\r","pm.test(`User ID exists and is a number`, () => {\r","    pm.expect(response.id).to.exist;\r","    pm.expect(response.id).to.be.a('number');\r","});\r","\r","pm.test(`User is_active exists and is a boolean`, () => {\r","    pm.expect(response.is_active).to.exist;\r","    pm.expect(response.is_active).to.be.a('boolean');\r","});\r","\r","pm.test(`User email exists and is a string`, () => {\r","    pm.expect(response.email).to.exist;\r","    pm.expect(response.email).to.be.a('string');\r","});\r","\r","// Check if the response email matches the voting_user_email variable\r","pm.test(`User email is equal to voting_user_email`, () => {\r","    pm.expect(response.email).to.equal(pm.environment.get('voting_user_email'));\r","});\r","\r","pm.test(`User name exists and is a string`, () => {\r","    pm.expect(response.name).to.exist;\r","    pm.expect(response.name).to.be.a('string');\r","});\r","\r","pm.test(`User name is equal to voting_user_name`, () => {\r","    pm.expect(response.name).to.equal(pm.environment.get('voting_user_name'));\r","});\r","\r","pm.test(`User avatar exists and is a string`, () => {\r","    pm.expect(response.avatar).to.exist;\r","    pm.expect(response.avatar).to.be.a('string');\r","});\r","\r","pm.test(`User lang can be null or a string`, () => {\r","    pm.expect(response.lang).to.satisfy(lang => lang === null || typeof lang === 'string');\r","});\r","\r","pm.test(`User created exists and is a string`, () => {\r","    pm.expect(response.created).to.exist;\r","    pm.expect(response.created).to.be.a('string');\r","});\r","\r","pm.test(`User created_source can be null or a string`, () => {\r","    pm.expect(response.created_source).to.satisfy(src => src === null || typeof src === 'string');\r","});\r","\r","pm.test(`User company can be null or a string`, () => {\r","    pm.expect(response.company).to.satisfy(comp => comp === null || typeof comp === 'string');\r","});\r","\r","pm.test(`User release_notes_subscribed_at can be null or a string`, () => {\r","    pm.expect(response.release_notes_subscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","});\r","\r","pm.test(`User release_notes_unsubscribed_at can be null or a string`, () => {\r","    pm.expect(response.release_notes_unsubscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","});\r","\r","pm.test(`User all_unsubscribed_at can be null or a string`, () => {\r","    pm.expect(response.all_unsubscribed_at).to.satisfy(date => date === null || typeof date === 'string');\r","});\r","\r","pm.test(`User has_fake_email exists and is a boolean`, () => {\r","    pm.expect(response.has_fake_email).to.exist;\r","    pm.expect(response.has_fake_email).to.be.a('boolean');\r","});\r","\r"," pm.test(`User opt_in can be null or a boolean`, () => {\r","        pm.expect(response.opt_in).to.satisfy(opt => opt === null || typeof opt === 'boolean');\r","});\r","\r","pm.test(`User opt_in_date can be null or a string`, () => {\r","    pm.expect(response.opt_in_date).to.satisfy(date => date === null || typeof date === 'string');\r","});\r","\r","// Create the request to delete a created voting user\r","const deleteUserRequestConfig = {\r","    url: 'https://stage.ducalis.io/rest/voting-users/' + pm.environment.get('voting_user_id'),\r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a voting user\r","pm.sendRequest(deleteUserRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Voting user deleted successfully');\r","            console.log('Status code:', res.code);\r","\r","            pm.environment.unset(\"voting_user_id\");\r","            console.log('Voting user ID cleared from environment');\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});"],"type":"text/javascript","packages":{}}}],"id":"ae940bc8-8e93-46b4-a7a7-dc916c751165","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"{{voting_user_email}}","type":"text","description":"<p>User Email. Required</p>\n"},{"key":"name","value":"{{voting_user_name}}","description":"<p>User Name. Required</p>\n","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users//add","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-users","","add"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"8ea48c97-6f6a-4054-bf4a-dabee1b8aee8","name":"Add Voting User","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"","type":"text","description":"User Email. Required"},{"key":"name","value":"","description":"User Name. Required","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users//add"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 120006,\n    \"is_active\": true,\n    \"email\": \"c@exmaple.com\",\n    \"name\": \"Caren\",\n    \"avatar\": \"https://ducalis.loc/images/avatars/CA_FFFFFF_426ef0.png\",\n    \"lang\": null,\n    \"created\": \"2025-05-30T06:00:39+00:00\",\n    \"created_source\": \"api\",\n    \"company\": null,\n    \"release_notes_subscribed_at\": null,\n    \"release_notes_unsubscribed_at\": null,\n    \"all_unsubscribed_at\": null,\n    \"has_fake_email\": false,\n    \"opt_in\": null,\n    \"opt_in_date\": null\n}"}],"_postman_id":"ae940bc8-8e93-46b4-a7a7-dc916c751165"}],"id":"755c8a3b-832a-4cc5-912f-adc683e33e81","_postman_id":"755c8a3b-832a-4cc5-912f-adc683e33e81","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Voting Users","item":[{"name":"Get Voting Users","event":[{"listen":"prerequest","script":{"id":"05d9d9a2-d001-4fdf-9cf4-776cc55e9b9a","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    //Add random example with voting company name    \r","const randomQuery = [\"Елена Суверева\", \"test.org.suv@gmail.com\", \"Ivan\",\"ivan@emailsoldiers.com\", \"Yaosi\" ];\r","const randomValue = randomQuery[Math.floor(Math.random() * randomQuery.length)];\r","pm.environment.set(\"voting_user_name\", randomValue);\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"f12840ef-47d2-4a32-b0fa-e58e87e1cbea","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response body is an array\", () => {\r","    pm.expect(response).to.be.an('array');\r","}); \r","\r","pm.test(`User ID exists and is a number`, () => {\r","        pm.expect(response[0].id).to.exist;\r","        pm.expect(response[0].id).to.be.a('number');\r","    });\r","\r","\r","    pm.test(`User email exists and is a string`, () => {\r","        pm.expect(response[0].email).to.exist;\r","        pm.expect(response[0].email).to.be.a('string');\r","    });\r","\r","    pm.test(`User name exists and is a string`, () => {\r","        pm.expect(response[0].name).to.exist;\r","        pm.expect(response[0].name).to.be.a('string');\r","    });\r","\r","    pm.test(`User avatar exists and is a string`, () => {\r","        pm.expect(response[0].avatar).to.exist;\r","        pm.expect(response[0].avatar).to.be.a('string');\r","    });\r","\r","\r","    pm.test(`User created exists and is a string`, () => {\r","        pm.expect(response[0].created).to.exist;\r","        pm.expect(response[0].created).to.be.a('string');\r","    });\r","\r","\r","    pm.test(`User company_name can be null or a string`, () => {\r","        pm.expect(response[0].company_name).to.satisfy(comp => comp === null || typeof comp === 'string');\r","    });\r","\r","    pm.test('Response to have commens_count', () => {\r","        pm.expect(response[0].comments_count).to.exist;\r","        pm.expect(response[0].comments_count).to.be.a('number');\r","    });\r","\r","    pm.test('Response to have votes_count', () => {\r","    pm.expect(response[0].votes_count).to.exist;\r","        pm.expect(response[0].votes_count).to.be.a('number');\r","    });\r","\r","    pm.test('Response to have ideas_count', () => {\r","    pm.expect(response[0].ideas_count).to.exist;\r","    pm.expect(response[0].ideas_count).to.be.a('number');\r","    });\r","\r","    pm.test('Response to have has_subscription', () => {\r","    pm.expect(response[0].has_subscription).to.exist;\r","    pm.expect(response[0].has_subscription).to.be.a('boolean');\r","    });\r","\r","pm.test('Response to have subscribed_boards', () => {\r","    response.forEach(user => {\r","        pm.expect(user.subscribed_boards).to.satisfy(subs => subs === null || Array.isArray(subs));\r","    });\r","});\r","pm.test('Response to have accessible_boards', () => {\r","    response.forEach(user => {\r","        pm.expect(user.accessible_boards).to.satisfy(subs => subs === null || Array.isArray(subs));\r","    });\r","});\r","\r","\r","\r"," \r","// let voter = 121563;\r","// pm.test(`User ${voter} exists in the response`, () => {\r","//     let userFound = false;\r","    \r","//     for (let i = 0; i < response.length; i++) {\r","//         if (response[i].id === voter) {\r","//             userFound = true;\r","//             break;\r","//         }\r","//     }\r","    \r","//     pm.expect(userFound).to.be.true;\r","// });\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"7d7240ce-5052-453d-a85d-89f5b8de7928","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://ducalis.io/storage/voting-users","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["storage","voting-users"],"host":["https://ducalis.io"],"query":[{"disabled":true,"key":"query","value":"{{voting_user_name}}"}],"variable":[]}},"response":[{"id":"b67436df-885c-4f9e-a08f-c30e3a09be5c","name":"Get Voting Users","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://ducalis.io/storage/voting-users","host":["https://ducalis.io"],"path":["storage","voting-users"],"query":[{"key":"query","value":"{{voting_user_name}}","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Fri, 22 Aug 2025 13:07:01 GMT"},{"key":"Content-Type","value":"application/json; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.3.17"},{"key":"X-Version","value":"253.0"},{"key":"Vary","value":"Accept"},{"key":"X-Rate-Limit-Limit","value":"500"},{"key":"X-Rate-Limit-Remaining","value":"499"},{"key":"X-Rate-Limit-Reset","value":"0"},{"key":"X-Pagination-Total-Count","value":"7160"},{"key":"X-Pagination-Page-Count","value":"7160"},{"key":"X-Pagination-Current-Page","value":"1"},{"key":"X-Pagination-Per-Page","value":"1"},{"key":"Link","value":"<https://ducalis.loc/storage/voting-users?per-page=1&page=1>; rel=self, <https://ducalis.loc/storage/voting-users?per-page=1&page=1>; rel=first, <https://ducalis.loc/storage/voting-users?per-page=1&page=7160>; rel=last, <https://ducalis.loc/storage/voting-users?per-page=1&page=2>; rel=next"},{"key":"X-Debug-Tag","value":"68a86b74dab14"},{"key":"X-Debug-Duration","value":"523"},{"key":"X-Debug-Link","value":"https://ducalis.loc/debug/default/view?tag=68a86b74dab14"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"id\": 80009,\n        \"name\": \"Patrick Lindberg\",\n        \"email\": \"p@example.com\",\n        \"avatar\": \"https://example.com/avatar.png\",\n        \"company_name\": \"Example\",\n        \"created\": \"2024-01-07\",\n        \"comments_count\": 0,\n        \"votes_count\": 5,\n        \"ideas_count\": 2,\n        \"has_subscription\": false,\n        \"subscribed_boards\": null,\n        \"accessible_boards\": [\n            \"01973445-bbba-8cb8-99f2-s36dc1a09e18\"\n        ],\n        \"vcf_last_activity\": \"2025-05-21 16:59:10\",\n        \"vcf_voted_ideas\": 5,\n        \"vcf_trackers\": null,\n        \"vcf_total_spend\": 2133.37,\n        \"vcf_sign_up_date\": \"2021-11-19 10:38:11\",\n        \"vcf_users\": 1,\n        \"vcf_paying_now\": true,\n        \"vcf_mrr\": 16,\n        \"vcf_plan_name\": \"Business\",\n        \"vcf_annual_plan\": true,\n        \"vcf_subscription_start\": \"2021-11-19 10:38:12\"\n    }\n]"}],"_postman_id":"7d7240ce-5052-453d-a85d-89f5b8de7928"},{"name":"Create Voting User","event":[{"listen":"prerequest","script":{"id":"b909e0b8-8a33-4bf8-be2e-26e3b89f8b74","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random email and set it to environment variable\r","    const randomInt = pm.variables.replaceIn('941');\r","    const randomEmail = `elledanili+${randomInt}@ducalis.io`;\r","    pm.environment.set(\"voting_user_email\", randomEmail);\r","    console.log('Voting user email:', pm.environment.get('voting_user_email'));\r","    \r","    // Generate random name and set it to environment variable\r","    const randomName = pm.variables.replaceIn('Kailee');\r","    pm.environment.set(\"voting_user_name\", randomName);\r","    console.log('Voting user name:', pm.environment.get('voting_user_name'));\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"9935c535-24b3-4fd4-9e4e-0661c4d7960c","exec":["const response = pm.response.json();\r","const voting_user_id = response.id;\r","pm.environment.set(\"voting_user_id\", voting_user_id);\r","\r","pm.test(\"Status code is 201\", () => {\r","    pm.response.to.have.status(201);\r","});\r","\r","pm.test(\"Response Body is an object\", function () {\r","    pm.response.to.be.an(\"object\");\r","});\r","pm.test(\"Response body has all of the keys\", function () {\r","    const expectedKeys = [  \r","        \"id\", \"is_active\", \"email\", \"name\", \"avatar\", \"lang\", \"created\", \"created_source\", \"company\", \"release_notes_subscribed_at\", \"release_notes_unsubscribed_at\", \"all_unsubscribed_at\", \"has_fake_email\", \"opt_in\", \"opt_in_date\"];\r","    const keys = Object.keys(response);\r","    pm.expect(keys).to.have.members(expectedKeys);\r","});\r","\r","pm.test(`User email is equal to voting_user_email`, () => {\r","    pm.expect(response.email).to.equal(pm.environment.get('voting_user_email'));\r","});\r","pm.test(`User name is equal to voting_user_name`, () => {\r","    pm.expect(response.name).to.equal(pm.environment.get('voting_user_name'));\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"e8dae721-81b9-4dc9-b1fd-2480a5de2c93","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"{{voting_user_email}}","type":"text","description":"<p>User Email. Required</p>\n"},{"key":"name","value":"{{voting_user_name}}","description":"<p>User Name</p>\n","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/voting-users","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","voting-users"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"cb7185b7-5033-45cd-a820-74e0d0619da9","name":"Create Voting User","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"c@exmaple.com","type":"text","description":"User Email. Required"},{"key":"name","value":"Caren","description":"User Name. Required","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 120006,\n    \"is_active\": true,\n    \"email\": \"c@exmaple.com\",\n    \"name\": \"Caren\",\n    \"avatar\": \"https://ducalis.loc/images/avatars/CA_FFFFFF_426ef0.png\",\n    \"lang\": null,\n    \"created\": \"2025-05-30T06:00:39+00:00\",\n    \"created_source\": \"api\",\n    \"company\": null,\n    \"release_notes_subscribed_at\": null,\n    \"release_notes_unsubscribed_at\": null,\n    \"all_unsubscribed_at\": null,\n    \"has_fake_email\": false,\n    \"opt_in\": null,\n    \"opt_in_date\": null\n}"}],"_postman_id":"e8dae721-81b9-4dc9-b1fd-2480a5de2c93"},{"name":"Subscribe Voting User","event":[{"listen":"test","script":{"id":"ae9c9d7d-508c-4d7e-960f-b305e1ece51e","exec":["pm.test(\"Status code is 204\", function () {\r","    pm.response.to.have.status(204);\r","});\r","\r","// Prepare request to get a voting user\r","const getRequest = {\r","    url: 'https://stage.ducalis.io/storage/voting-users?per-page=150',\r","    method: 'GET',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    },\r","};\r","\r","// Send the request to get voting users\r","pm.sendRequest(getRequest, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 200) {\r","            try {\r","                var jsonData = res.json();\r","                console.log('Full response:', jsonData);\r","                \r","                var targetUserId = pm.variables.get('voting_user_id');\r","                console.log('Looking for user ID:', targetUserId);\r","                \r","                var foundUser = null;\r","                \r","                if (Array.isArray(jsonData)) {\r","                    foundUser = jsonData.find(user => user.id == targetUserId);\r","                }\r","    \r","                else if (jsonData.data && Array.isArray(jsonData.data)) {\r","                    foundUser = jsonData.data.find(user => user.id == targetUserId);\r","                }\r","                else if (jsonData.users && Array.isArray(jsonData.users)) {\r","                    foundUser = jsonData.users.find(user => user.id == targetUserId);\r","                }\r","                \r","                if (foundUser) {\r","                    console.log('Found user:', foundUser);\r","                    pm.variables.set('found_voting_user', JSON.stringify(foundUser));\r","                    \r","                    //  board_uuid в subscribed_boards\r","                    var targetBoardUuid = pm.variables.get('board_uuid');\r","                    console.log('Looking for board UUID:', targetBoardUuid);\r","                    \r","                    pm.test(\"User found with correct ID\", function () {\r","                        pm.expect(foundUser.id).to.equal(targetUserId);\r","                    });\r","                    \r","                    pm.test(\"User has subscribed_boards array\", function () {\r","                        pm.expect(foundUser).to.have.property('subscribed_boards');\r","                        pm.expect(foundUser.subscribed_boards).to.be.an('array');\r","                    });\r","                    \r","                    pm.test(\"Board UUID exists in subscribed_boards\", function () {\r","                        pm.expect(foundUser.subscribed_boards).to.include(targetBoardUuid);\r","                    });\r","                    \r","                    console.log('User subscribed_boards:', foundUser.subscribed_boards);\r","                    \r","                } else {\r","                    console.log('User with ID', targetUserId, 'not found');\r","                    \r","                    pm.test(\"User found\", function () {\r","                        pm.expect(foundUser, 'User with ID ' + targetUserId + ' should be found').to.exist;\r","                    });\r","                }\r","                \r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r",""],"type":"text/javascript","packages":{}}},{"listen":"prerequest","script":{"id":"aea12415-9022-488a-aa29-eb6b99c3d38b","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random email and set it to environment variable\r","    const randomInt = pm.variables.replaceIn('118');\r","    const randomEmail = `elledanili+${randomInt}@ducalis.io`;\r","    pm.environment.set(\"voting_user_email\", randomEmail);\r","    console.log('Voting user email:', pm.environment.get('voting_user_email'));\r","    \r","    // Generate random name and set it to environment variable\r","    const randomName = pm.variables.replaceIn('Dock');\r","    pm.environment.set(\"voting_user_name\", randomName);\r","    console.log('Voting user name:', pm.environment.get('voting_user_name'));\r","\r","    // Prepare the first request to create a voting user\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/voting-users',\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'email', value: pm.environment.get('voting_user_email') },\r","                { key: 'name', value: pm.environment.get('voting_user_name') }\r","            ]\r","        }\r","    };\r","\r","// Send the request to create a voting user\r","\r","pm.sendRequest(firstRequest, function (err, res) { \r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 201) {  \r","            try {\r","                var jsonData = res.json();  \r","                var voting_user_id = jsonData.id;\r","                pm.environment.set(\"voting_user_id\", voting_user_id);\r","                console.log('Voting user ID is:', voting_user_id);\r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}}],"id":"3bfce9d8-b51c-4822-b6ae-8ace7f426b18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"voting_user_ids[]","value":"","type":"text","description":"<p>Required. List of voting users ids. List max size is 100 ids </p>\n"},{"key":"board_uuids[]","value":"your_board_uuid_here","description":"<p>Required. List of boards UUIDs. List max size is 100 UUIDs </p>\n","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/voting-users/subscribe","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","voting-users","subscribe"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"956adafd-753f-4d33-a8dc-4eef00ab4e30","name":"Create Voting User","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"c@exmaple.com","type":"text","description":"User Email. Required"},{"key":"name","value":"Caren","description":"User Name. Required","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 120006,\n    \"is_active\": true,\n    \"email\": \"c@exmaple.com\",\n    \"name\": \"Caren\",\n    \"avatar\": \"https://ducalis.loc/images/avatars/CA_FFFFFF_426ef0.png\",\n    \"lang\": null,\n    \"created\": \"2025-05-30T06:00:39+00:00\",\n    \"created_source\": \"api\",\n    \"company\": null,\n    \"release_notes_subscribed_at\": null,\n    \"release_notes_unsubscribed_at\": null,\n    \"all_unsubscribed_at\": null,\n    \"has_fake_email\": false,\n    \"opt_in\": null,\n    \"opt_in_date\": null\n}"}],"_postman_id":"3bfce9d8-b51c-4822-b6ae-8ace7f426b18"},{"name":"Unsubscribe Voting User","event":[{"listen":"prerequest","script":{"id":"b909e0b8-8a33-4bf8-be2e-26e3b89f8b74","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // // Generate random email and set it to environment variable\r","    // const randomInt = pm.variables.replaceIn('1');\r","    // const randomEmail = `elledanili+${randomInt}@ducalis.io`;\r","    // pm.environment.set(\"voting_user_email\", randomEmail);\r","    // console.log('Voting user email:', pm.environment.get('voting_user_email'));\r","    \r","    // // Generate random name and set it to environment variable\r","    // const randomName = pm.variables.replaceIn('Beth');\r","    // pm.environment.set(\"voting_user_name\", randomName);\r","    // console.log('Voting user name:', pm.environment.get('voting_user_name'));\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"9935c535-24b3-4fd4-9e4e-0661c4d7960c","exec":["pm.test(\"Status code is 204\", function () {\r","    pm.response.to.have.status(204);\r","});\r","// Prepare request to get a voting user\r","const getRequest = {\r","    url: 'https://stage.ducalis.io/storage/voting-users?per-page=150',\r","    method: 'GET',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    },\r","};\r","\r","// Send the request to get voting users\r","pm.sendRequest(getRequest, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 200) {\r","            try {\r","                var jsonData = res.json();\r","                console.log('Full response:', jsonData);\r","                \r","                var targetUserId = pm.variables.get('voting_user_id');\r","                console.log('Looking for user ID:', targetUserId);\r","                \r","                var foundUser = null;\r","                \r","                if (Array.isArray(jsonData)) {\r","                    foundUser = jsonData.find(user => user.id == targetUserId);\r","                }\r","  \r","                else if (jsonData.data && Array.isArray(jsonData.data)) {\r","                    foundUser = jsonData.data.find(user => user.id == targetUserId);\r","                }\r","                else if (jsonData.users && Array.isArray(jsonData.users)) {\r","                    foundUser = jsonData.users.find(user => user.id == targetUserId);\r","                }\r","                \r","                if (foundUser) {\r","                    console.log('Found user:', foundUser);\r","                    pm.variables.set('found_voting_user', JSON.stringify(foundUser));\r","                    \r","                    //  board_uuid в subscribed_boards\r","                    var targetBoardUuid = pm.variables.get('board_uuid');\r","                    console.log('Looking for board UUID:', targetBoardUuid);\r","                    \r","                    pm.test(\"User found with correct ID\", function () {\r","                        pm.expect(foundUser.id).to.equal(targetUserId);\r","                    });\r","                    \r","                    pm.test(\"User has null in subscribed_boards\", function () {\r","                        pm.expect(foundUser).to.have.property('subscribed_boards');\r","                        pm.expect(foundUser.subscribed_boards).to.be.a.null;\r","                    });\r","                    \r","                    \r","                    console.log('User subscribed_boards:', foundUser.subscribed_boards);\r","                    \r","                } else {\r","                    console.log('User with ID', targetUserId, 'not found');\r","                    \r","                    pm.test(\"User found\", function () {\r","                        pm.expect(foundUser, 'User with ID ' + targetUserId + ' should be found').to.exist;\r","                    });\r","                }\r","                \r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});"],"type":"text/javascript","packages":{}}}],"id":"4e963026-ab80-4803-9f7c-b001a1386f46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"voting_user_ids[]","value":"","type":"text","description":"<p>Required. List of voting users ids. List max size is 100 ids </p>\n"},{"key":"board_uuids[]","value":"your_board_uuid_here","description":"<p>Required. List of boards UUIDs. List max size is 100 UUIDs </p>\n","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/voting-users/unsubscribe","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","voting-users","unsubscribe"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"2d1cec51-ec84-441d-ba63-3f8de30d0294","name":"Create Voting User","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"c@exmaple.com","type":"text","description":"User Email. Required"},{"key":"name","value":"Caren","description":"User Name. Required","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 120006,\n    \"is_active\": true,\n    \"email\": \"c@exmaple.com\",\n    \"name\": \"Caren\",\n    \"avatar\": \"https://ducalis.loc/images/avatars/CA_FFFFFF_426ef0.png\",\n    \"lang\": null,\n    \"created\": \"2025-05-30T06:00:39+00:00\",\n    \"created_source\": \"api\",\n    \"company\": null,\n    \"release_notes_subscribed_at\": null,\n    \"release_notes_unsubscribed_at\": null,\n    \"all_unsubscribed_at\": null,\n    \"has_fake_email\": false,\n    \"opt_in\": null,\n    \"opt_in_date\": null\n}"}],"_postman_id":"4e963026-ab80-4803-9f7c-b001a1386f46"},{"name":"Update Voting User","event":[{"listen":"prerequest","script":{"id":"cdd5ea1f-e329-4fed-bf21-28ce6c7e63c9","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"d202c136-76ad-4895-9885-3179934d653d","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","pm.test(`User name is changed`, () => {\r","    pm.expect(response.name).to.equal(\"Caren\");\r","});"],"type":"text/javascript","packages":{}}}],"id":"3cfc094a-65e6-499a-b881-83d38e13502d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"","type":"text","description":"<p>User Email</p>\n","disabled":true},{"key":"name","value":"Caren","description":"<p>User Name</p>\n","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/voting-users/","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","voting-users",""],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"91641856-ede8-42c2-8794-411d08e34e6c","name":"Update Voting User","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Caren","description":"User Name","type":"text","uuid":"abc20a8d-1d55-4248-9a0c-db0871d3b530"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-users"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 120006,\n    \"is_active\": true,\n    \"email\": \"c@exmaple.com\",\n    \"name\": \"Caren\",\n    \"avatar\": \"https://ducalis.loc/images/avatars/CA_FFFFFF_426ef0.png\",\n    \"lang\": null,\n    \"created\": \"2025-05-30T06:00:39+00:00\",\n    \"created_source\": \"api\",\n    \"company\": null,\n    \"release_notes_subscribed_at\": null,\n    \"release_notes_unsubscribed_at\": null,\n    \"all_unsubscribed_at\": null,\n    \"has_fake_email\": false,\n    \"opt_in\": null,\n    \"opt_in_date\": null\n}"}],"_postman_id":"3cfc094a-65e6-499a-b881-83d38e13502d"},{"name":"Delete Voting User","event":[{"listen":"prerequest","script":{"id":"e1ac02f4-7a9a-45c8-bcae-dc712e9fc8a1","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"997e4012-dd20-4bae-8632-b88ad32fe7e5","exec":["pm.test(\"Status code is 204\", () => {\r","    pm.response.to.have.status(204);\r","});"],"type":"text/javascript","packages":{}}}],"id":"b18dec7b-3b92-4ac3-81e9-d13f3d9c9b32","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://ducalis.io/rest/voting-users/","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 100. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","voting-users",""],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"22a2d8ee-a29e-476a-8d74-0f4889088c75","name":"Delete Voting User","originalRequest":{"method":"DELETE","header":[],"url":"https://ducalis.io/rest/voting-users/"},"status":"No Content","code":204,"_postman_previewlanguage":"html","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"b18dec7b-3b92-4ac3-81e9-d13f3d9c9b32"}],"id":"c8afc13c-2081-4de4-a794-2fc25ff4a1a9","_postman_id":"c8afc13c-2081-4de4-a794-2fc25ff4a1a9","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Ideas","item":[{"name":"Get All Ideas","event":[{"listen":"prerequest","script":{"id":"b248b029-2bf9-425b-a79e-3d66d394b6d0","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"59be9df8-1349-4172-92a7-8991c37cbd8c","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","pm.test(\"Response body is array\", function () {\r","    pm.expect(response).to.be.an('array');\r","});\r","const expectedKeys = [\r","    \"_links\", \"allow_voting\", \"announce_hidden\", \"announce_id\", \"announce_text_status\", \"author\", \"board_uuid\", \"comments\", \"created\", \"customFields\", \"description\", \"has_announce\", \"id\", \"is_demo\", \"issue_id\", \"label_ids\", \"last_status_update\", \"last_update\", \"mentionsUsers\", \"name\", \"parent_id\", \"source\", \"status_id\", \"text_status\", \"updated\", \"votersCount\", \"votersData\",\"votesCount\"\r","];\r","pm.test(\"Each item in the array has the expected keys\", function () {           \r","    response.forEach(item => {\r","        pm.expect(item).to.have.all.keys(expectedKeys);\r","    });\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"8adcc114-b5b0-4d4f-880a-855de8d80d8f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/storage/ideas?board=your_board_uuid_here","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to 50. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["storage","ideas"],"host":["https://ducalis.io"],"query":[{"key":"board","value":"your_board_uuid_here"}],"variable":[]}},"response":[{"id":"625c00b8-ebd3-40ab-8c61-8ae3ff3ff2a5","name":"Get All Ideas","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Idea","type":"text","uuid":"8c43e584-7d4c-405a-9ab2-13bcc72b6df8"},{"key":"description","value":"Idea description","type":"text","uuid":"bf3058ed-c2e3-46f2-a42e-4f9ccca5d396"},{"key":"voting_user_id","value":"68","description":"Optional. Current token user used by default","type":"text","uuid":"e3742933-0e73-4f84-8226-6d0af894ffbf"},{"key":"status_id","value":"","description":"Optional. Status id from https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&source=copy-link&creator=26410287&active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817","type":"text","uuid":"43b0be4e-a891-4497-bd25-70c7aff473e5"}]},"url":{"raw":"https://ducalis.io/storage/ideas?board=your_board_uuid_here","host":["https://ducalis.io"],"path":["storage","ideas"],"query":[{"key":"board","value":"your_board_uuid_here"}]}},"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"[]"}],"_postman_id":"8adcc114-b5b0-4d4f-880a-855de8d80d8f"},{"name":"Create Idea","event":[{"listen":"prerequest","script":{"id":"2c1ceda3-9532-4684-9311-7d3152852300","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","    pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate Idea name and set it to environment variable\r","    const randomNoun = pm.variables.replaceIn('pixel');\r","    const randomIdeaName = `Idea+${randomNoun}`;\r","    pm.environment.set(\"idea_name\", randomIdeaName);\r","    console.log('Idea name:', pm.environment.get('idea_name'));\r","\r","    // Generate Idea description and set it to environment variable\r","    const randomAdjective = pm.variables.replaceIn('wireless');\r","    const randomIdeaDescription = `${randomAdjective} idea description`;\r","    pm.environment.set(\"idea_description\", randomIdeaDescription);\r","    console.log('Idea description:', pm.environment.get('idea_description'));\r","\r"," const board_uuid = pm.environment.get(\"board_uuid\");\r","    // Prepare request to create idea status\r","    const firstRequest = {\r","        url: `https://stage.ducalis.io/rest/boards/${board_uuid}/idea-statuses`,\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'name', value: `Status+${randomNoun}` }\r","            ]\r","        }\r","    };\r","\r","    // Send the request to create a voting user\r","    pm.sendRequest(firstRequest, function (err, res) { \r","        if (err) {\r","            console.log('Error:', err);\r","        } else {\r","            if (res.code === 200) {  \r","                try {\r","                    var jsonData = res.json();  \r","                    var status_id = jsonData.id;\r","                    pm.environment.set(\"status_id\", status_id);\r","                    console.log('Voting Statud ID is:', status_id);\r","                } catch (e) {\r","                    console.log('Error parsing JSON:', e);\r","                    console.log('Response body:', res.text());\r","                }\r","            } else {\r","                console.log('Request failed with status:', res.code);\r","                console.log('Response body:', res.text());\r","            }\r","        }\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}\r",""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"f1c5cd61-5f4b-4449-83e6-eb51f831305e","exec":["const response = pm.response.json();\r","let idea_id = response.id;\r","pm.environment.set(\"idea_id\", idea_id);\r","\r","pm.test(\"Status code is 201\", () => {\r","    pm.response.to.have.status(201);\r","});\r","pm.test(\"Response body is an object\", function () {\r","    pm.expect(response).to.be.a('object');\r","});\r","pm.test(\"Response has property id\", function () {\r","    pm.expect(response).to.have.property('id').that.is.a('number');\r","});\r","\r","pm.test(\"ID is not NULL\", function () {\r","    pm.expect(response.id).is.not.null;\r","});\r","pm.test(\"Response body contains the correct idea name\", () => {\r","    pm.expect(response.name).to.eql(pm.environment.get(\"idea_name\"));\r","});\r","\r","pm.test(\"Response body contains the correct description\", () => {\r","    pm.expect(response.description).to.eql(pm.environment.get(\"idea_description\"));\r","});\r","\r","pm.test(\"Response has property last_status_update\", function () {\r","    pm.expect(response).to.have.property('last_status_update').that.is.a('string');\r","});\r","pm.test(\"Response has property _links\", function () {\r","    pm.expect(response).to.have.property('_links').that.is.a('object');\r","});\r","pm.test(\"Property _links has 2 keys\", function () {\r","    pm.expect(response._links).to.have.all.keys(\"internalUrl\",\"votingUrl\" );\r","});\r","pm.test(\"internalUrl is correct link\", function () {\r","    const urlRegexp = new RegExp(`^https:\\\\/\\\\/stage\\\\.ducalis\\\\.io\\\\/idea\\\\/${idea_id}$`);\r","   pm.expect(response._links.internalUrl).to.match(urlRegexp);\r","});\r","\r","pm.test(\"Response body correct allow_voting\", () => {\r","    pm.expect(response.allow_voting).to.eql(true);\r","});\r","\r","pm.test(\"Response body contains correct status id\", () => {\r","    pm.expect(response.status_id).to.eql(pm.environment.get(\"status_id\"));  \r","});\r","\r","pm.test(\"Response boody contains all of the keys\", () => {\r","    const expectedKeys = [\"_links\", \"allow_voting\", \"announce_hidden\", \"announce_id\", \"announce_text_status\", \"author\", \"board_uuid\", \"comments\", \"created\",\"customFields\", \"description\", \"has_announce\", \"id\", \"is_demo\", \"issue_id\", \"label_ids\", \"last_status_update\", \"last_update\", \"mentionsUsers\", \"name\", \"parent_id\", \"source\", \"status_id\", \"text_status\", \"updated\", \"votersCount\", \"votersData\" , \"votesCount\"];\r","    const actualKeys = Object.keys(response);\r","    pm.expect(actualKeys).to.have.members(expectedKeys);\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"09727e6b-9d71-44e4-8cd3-a5896b448200","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"{{idea_name}}","type":"text","uuid":"8c43e584-7d4c-405a-9ab2-13bcc72b6df8"},{"key":"description","value":"{{idea_description}}","type":"text","uuid":"bf3058ed-c2e3-46f2-a42e-4f9ccca5d396"},{"key":"voting_user_id","value":"","description":"<p>Optional. Current token user used by default. You must create or finv voting user in <a href=\"https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817\">https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817</a></p>\n","type":"text","uuid":"e3742933-0e73-4f84-8226-6d0af894ffbf","disabled":true},{"key":"status_id","value":"","description":"<p>Optional. Status id from <a href=\"https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817\">https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817</a></p>\n","type":"text","uuid":"43b0be4e-a891-4497-bd25-70c7aff473e5"},{"key":"allow_voting","value":"1","description":"<p>Optional. Publish idea. Default is 0 (unpublished)</p>\n","type":"text","uuid":"3d0392cb-310d-407c-b8a4-109764871366"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"622dce83-02e5-4eb8-8a1b-3bbd5db5cc41","name":"Create Idea","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Idea","type":"text","uuid":"8c43e584-7d4c-405a-9ab2-13bcc72b6df8"},{"key":"description","value":"Idea description","type":"text","uuid":"bf3058ed-c2e3-46f2-a42e-4f9ccca5d396"},{"key":"voting_user_id","value":"","description":"Optional. Current token user used by default. You must create or finv voting user in https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&source=copy-link&creator=26410287&active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817","type":"text","uuid":"e3742933-0e73-4f84-8226-6d0af894ffbf"},{"key":"status_id","value":"","description":"Optional. Status id from https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&source=copy-link&creator=26410287&active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817","type":"text","uuid":"43b0be4e-a891-4497-bd25-70c7aff473e5"},{"key":"allow_voting","value":"1","description":"Optional. Publish idea. Default is 0 (unpublished)","type":"text","uuid":"3d0392cb-310d-407c-b8a4-109764871366"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62581\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62581\"\n    },\n    \"allow_voting\": true,\n    \"announce_hidden\": null,\n    \"announce_id\": null,\n    \"announce_text_status\": null,\n    \"author\": {\n        \"id\": 120006,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": false,\n        \"organizations\": null\n    },\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"comments\": [],\n    \"created\": \"2025-06-02T10:29:55+00:00\",\n    \"description\": \"Idea description\",\n    \"has_announce\": false,\n    \"id\": 62581,\n    \"is_demo\": null,\n    \"issue_id\": null,\n    \"label_ids\": [],\n    \"last_status_update\": \"2025-06-02T10:29:55+00:00\",\n    \"last_update\": \"2025-06-02T10:29:55+00:00\",\n    \"mentionsUsers\": [],\n    \"name\": \"Idea\",\n    \"parent_id\": null,\n    \"source\": null,\n    \"status_id\": 69422,\n    \"text_status\": null,\n    \"updated\": 1748860195,\n    \"votersCount\": 0,\n    \"votersData\": [],\n    \"votesCount\": 0\n}"}],"_postman_id":"09727e6b-9d71-44e4-8cd3-a5896b448200"},{"name":"Update Idea","event":[{"listen":"prerequest","script":{"id":"dd39f466-a73e-480b-bc88-3f69c1e30978","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","        // Generate Idea name and set it to environment variable\r","    const randomNoun = pm.variables.replaceIn('monitor');\r","    const randomIdeaName = `Idea+${randomNoun}`;\r","    pm.environment.set(\"idea_name\", randomIdeaName);\r","    console.log('Idea name:', pm.environment.get('idea_name'));\r","\r","    // Generate Idea description and set it to environment variable\r","    const randomAdjective = pm.variables.replaceIn('cross-platform');\r","    const randomIdeaDescription = `${randomAdjective} idea description`;\r","    pm.environment.set(\"idea_description\", randomIdeaDescription);\r","    console.log('Idea description:', pm.environment.get('idea_description'));\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"f7b37f14-c8d7-4b44-87c5-b3c0c1b6cbb0","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","pm.test(\"Response body contains the correct idea name\", () => {\r","    pm.expect(response.name).to.eql(pm.environment.get(\"idea_name\"));\r","});\r","\r","pm.test(\"Response body contains the correct description\", () => {\r","    pm.expect(response.description).to.eql(pm.environment.get(\"idea_description\"));\r","});\r","\r","pm.test(\"Response body correct allow_voting\", () => {\r","    pm.expect(response.allow_voting).to.eql(false);\r","});"],"type":"text/javascript","packages":{}}}],"id":"d87c515c-4b2d-4252-8b4f-69dc0a0d50f5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"{{idea_name}}","type":"text"},{"key":"description","value":"{{idea_description}}","type":"text"},{"key":"voting_user_id","value":"54055","description":"<p>Optional. Current token user used by default. You must create or finv voting user in <a href=\"https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817\">https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817</a></p>\n","type":"text","uuid":"b7393e54-c596-4969-8b2f-12d95887dad2","disabled":true},{"key":"status_id","value":"51901","description":"<p>Status id from <a href=\"https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817\">https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&amp;source=copy-link&amp;creator=26410287&amp;active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817</a></p>\n","type":"text","uuid":"3002fc1f-7ffc-4223-b422-713d6635bd94","disabled":true},{"key":"allow_voting","value":"0","description":"<p>Optional. Publish idea. Default is 0 (unpublished)</p>\n","type":"text","uuid":"88623cf8-f9c7-4ce3-8582-9b56e992c3f4"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"aeabc555-4209-4b1f-8a05-17990b1f553c","name":"Update Idea","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Idea 2","type":"text"},{"key":"description","value":"Idea description","type":"text","disabled":true},{"key":"voting_user_id","value":"","description":"Optional. Current token user used by default. You must create or finv voting user in https://speeding-shadow-914343.postman.co/workspace/d98fa73d-1a2e-446e-bf40-b103c281685f/folder/26410287-c8afc13c-2081-4de4-a794-2fc25ff4a1a9?action=share&source=copy-link&creator=26410287&active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817","type":"text","uuid":"b7393e54-c596-4969-8b2f-12d95887dad2","disabled":true},{"key":"status_id","value":"","description":"Status id from https://speeding-shadow-914343.postman.co/workspace/Ducalis.io~d98fa73d-1a2e-446e-bf40-b103c281685f/request/26410287-f448fcaf-88d4-4d72-b387-96e9389f9752?action=share&source=copy-link&creator=26410287&active-environment=6b568e6c-7b67-4958-9957-bb8acbe32817","type":"text","uuid":"3002fc1f-7ffc-4223-b422-713d6635bd94","disabled":true},{"key":"allow_voting","value":"","description":"Optional. Publish idea. Default is 0 (unpublished)","type":"text","uuid":"88623cf8-f9c7-4ce3-8582-9b56e992c3f4","disabled":true}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62580\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62580\"\n    },\n    \"allow_voting\": true,\n    \"announce_hidden\": null,\n    \"announce_id\": null,\n    \"announce_text_status\": null,\n    \"author\": {\n        \"id\": 120006,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": false,\n        \"organizations\": null\n    },\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"comments\": [],\n    \"created\": \"2025-06-02T10:28:57+00:00\",\n    \"description\": \"Idea description\",\n    \"has_announce\": false,\n    \"id\": 62580,\n    \"is_demo\": false,\n    \"issue_id\": null,\n    \"label_ids\": [],\n    \"last_status_update\": \"2025-06-02T10:28:57+00:00\",\n    \"last_update\": \"2025-06-02T10:32:43+00:00\",\n    \"mentionsUsers\": [],\n    \"name\": \"Idea 2\",\n    \"parent_id\": null,\n    \"source\": null,\n    \"status_id\": 69422,\n    \"text_status\": \"ready\",\n    \"updated\": 1748860363,\n    \"votersCount\": 0,\n    \"votersData\": [],\n    \"votesCount\": 0\n}"}],"_postman_id":"d87c515c-4b2d-4252-8b4f-69dc0a0d50f5"},{"name":"Delete Idea","event":[{"listen":"prerequest","script":{"id":"70f701de-3fdb-4fd3-bc9c-fc84506b04dc","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"691c64ed-d4b9-4407-b3eb-9e5d5ef3b8c6","exec":["pm.test(\"Status code is 204\", () => {\r","    pm.response.to.have.status(204);\r","});\r","\r","// Create the request to delete a status \r","const deleteStatusRequestConfig = {\r","    url: pm.environment.get('https://ducalis.io') + '/rest/boards/' + pm.environment.get('your_board_uuid_here') + '/idea-statuses/' + pm.environment.get(''), \r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a idea status\r","pm.sendRequest(deleteStatusRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Status deleted successfully');\r","            console.log('Status code:', res.code);\r","\r","            pm.environment.unset(\"status_id\");\r","            console.log('Idea Status ID cleared from environment');\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"341dcd9a-77b0-4abc-832d-5750746665f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"e2b15497-72a3-4949-91b5-607480c23163","name":"Delete Idea","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here"},"status":"No Content","code":204,"_postman_previewlanguage":"html","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"341dcd9a-77b0-4abc-832d-5750746665f6"},{"name":"Add Label to Idea","event":[{"listen":"prerequest","script":{"id":"530df139-39d1-4f8e-96c7-9a0b6fa0ca77","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","    \r","    pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Prepare the first request to create idea\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/boards/' + pm.environment.get('board_uuid') + '/ideas',\r","        method: 'POST',\r","        header: [\r","            {\r","                key: 'Content-Type',\r","                value: 'application/x-www-form-urlencoded'\r","            },\r","            {\r","                key: 'X-Skip-Dev-Auth',\r","                value: pm.variables.get('stage_login')\r","            }\r","        ],\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'name', value: \"Test Idea 1\" },\r","                { key: 'allow_voting', value: 1 }\r","            ]\r","        }\r","    };\r","\r","    // Send the request to create a idea\r","    pm.sendRequest(firstRequest, function (err, res) {  \r","        if (err) {\r","            console.log('Error:', err);\r","        } else {\r","            if (res.code === 201) {  \r","                try {\r","                    var jsonData = res.json();  \r","                    var idea_id = jsonData.id;\r","                    pm.environment.set(\"idea_id\", idea_id);\r","                    console.log('Idea ID is:', idea_id);\r","                } catch (e) {\r","                    console.log('Error parsing JSON:', e);\r","                    console.log('Response body:', res.text());\r","                }\r","            } else {\r","                console.log('Request failed with status:', res.code);\r","                console.log('Response body:', res.text());\r","            }\r","        }\r","\r","        // Prepare the second request to add label to the idea\r","        const secondRequest = {\r","            url: pm.environment.get('base_url') + '/rest/boards/' + pm.environment.get('board_uuid') + '/voting-issue-label',\r","            method: 'GET',\r","            header: [\r","                {\r","                    key: 'Content-Type',\r","                    value: 'application/x-www-form-urlencoded'\r","                },\r","                {\r","                    key: 'X-Skip-Dev-Auth',\r","                    value: pm.variables.get('stage_login')\r","                }\r","            ]\r","        };\r","\r","        pm.sendRequest(secondRequest, function (err, res) {  \r","            if (err) {\r","                console.log('Error:', err);\r","            } else {\r","                if (res.code === 200) {  \r","                    try {\r","                        var response = res.json();  \r","                        let label_id = response[1].id;\r","                        pm.environment.set(\"label_id\", label_id);\r","                        console.log('Label ID is:', label_id);\r","                    } catch (e) {\r","                        console.log('Error parsing JSON:', e);\r","                        console.log('Response body:', res.text());\r","                    }\r","                } else {\r","                    console.log('Request failed with status:', res.code);\r","                    console.log('Response body:', res.text());\r","                }\r","            }        \r","        });\r","    });\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"07619f17-aa77-4c44-95c0-7eb16f3ccadf","exec":["const response = pm.response.json();\r","const label_id = pm.request.url.toString().split('/').slice(-1)[0]; // Extracting label_id from the request URL\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Check label_ids is an array\", () => {\r","    pm.expect(response.label_ids).to.be.an('array');\r","});\r","pm.test(\"Check label_ids contains the added label_id\", () => {\r","    const label_id = Number(pm.environment.get(\"label_id\"));\r","    pm.expect(response.label_ids).to.include(label_id);\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"c3f12418-ee40-4997-9dc1-723f32e656fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/labels/your_label_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","labels","your_label_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"6efa2358-d5e2-4928-a5b8-1fac5871f8c7","name":"Add Label to Idea","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/labels/your_label_id_here"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 62582,\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"parent_id\": null,\n    \"status_id\": 69422,\n    \"allow_voting\": true,\n    \"text_status\": \"ready\",\n    \"name\": \"Idea\",\n    \"description\": \"Idea description\",\n    \"is_demo\": false,\n    \"created\": \"2025-06-02T10:34:07+00:00\",\n    \"last_status_update\": \"2025-06-02T10:34:07+00:00\",\n    \"last_update\": \"2025-06-02T10:39:27+00:00\",\n    \"label_ids\": [\n        10959\n    ],\n    \"author\": {\n        \"id\": 120006,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": false,\n        \"organizations\": null\n    },\n    \"votesCount\": 0,\n    \"votersCount\": 0,\n    \"comments\": [],\n    \"votersData\": [],\n    \"mentionsUsers\": [],\n    \"issue_id\": null,\n    \"has_announce\": false,\n    \"announce_id\": null,\n    \"announce_hidden\": null,\n    \"announce_text_status\": null,\n    \"source\": null,\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62582\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62582\"\n    }\n}"}],"_postman_id":"c3f12418-ee40-4997-9dc1-723f32e656fa"},{"name":"Remove Label from Idea","event":[{"listen":"prerequest","script":{"id":"19d1c6ab-8656-4d58-bfec-193b20041209","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","   \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}\r","\r",""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"8792593e-aa5d-46d6-bf2b-ebf57bdef920","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","pm.test(\"Check label_ids is empty\", () => {   \r","    pm.expect(response.label_ids).to.be.an('array');\r","    pm.expect(response.label_ids).to.be.empty;\r","});\r","\r","// Create the request to delete an idea\r","const deleteIdeaRequestConfig = {\r","    url: 'https://stage.ducalis.io/rest/boards/'+pm.environment.get('board_uuid') + '/ideas/' + pm.environment.get('idea_id'),\r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a voting user\r","pm.sendRequest(deleteIdeaRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Voting idea deleted successfully');\r","            console.log('Status code:', res.code);\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});"],"type":"text/javascript","packages":{}}}],"id":"e3908550-20b5-4846-9bb3-309716a8287e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/labels/your_label_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","labels","your_label_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"75f67cdc-0d9a-4d40-8b7c-ee8aa338acb6","name":"Remove Label from Idea","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/labels/your_label_id_here"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 62582,\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"parent_id\": null,\n    \"status_id\": 69422,\n    \"allow_voting\": true,\n    \"text_status\": \"ready\",\n    \"name\": \"Idea\",\n    \"description\": \"Idea description\",\n    \"is_demo\": false,\n    \"created\": \"2025-06-02T10:34:07+00:00\",\n    \"last_status_update\": \"2025-06-02T10:34:07+00:00\",\n    \"last_update\": \"2025-06-02T10:39:47+00:00\",\n    \"label_ids\": [],\n    \"author\": {\n        \"id\": 120006,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": false,\n        \"organizations\": null\n    },\n    \"votesCount\": 0,\n    \"votersCount\": 0,\n    \"comments\": [],\n    \"votersData\": [],\n    \"mentionsUsers\": [],\n    \"issue_id\": null,\n    \"has_announce\": false,\n    \"announce_id\": null,\n    \"announce_hidden\": null,\n    \"announce_text_status\": null,\n    \"source\": null,\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62582\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62582\"\n    }\n}"}],"_postman_id":"e3908550-20b5-4846-9bb3-309716a8287e"},{"name":"Vote for Idea","event":[{"listen":"prerequest","script":{"id":"5a6a6b35-7a21-4b9d-95ba-cc2979a5604f","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Prepare the first request to create idea\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/boards/' + pm.environment.get('board_uuid') + '/ideas',\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'name', value: \"Test Idea 1\" },\r","                { key: 'allow_voting', value: 1 }\r","            ]\r","        }\r","    };\r","\r","// Send the request to create a idea\r","\r","pm.sendRequest(firstRequest, function (err, res) {  \r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 201) {  \r","            try {\r","                var jsonData = res.json();  \r","                var idea_id = jsonData.id;\r","                pm.environment.set(\"idea_id\", idea_id);\r","                console.log('Idea ID is:', idea_id);\r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","    \r","    // Generate random email and set it to environment variable\r","    const randomInt = pm.variables.replaceIn('973');\r","    const randomEmail = `elledanili+${randomInt}@ducalis.io`;\r","    pm.environment.set(\"voting_user_email\", randomEmail);\r","    console.log('Voting user email:', pm.environment.get('voting_user_email'));\r","\r","    // Generate random name and set it to environment variable\r","    const randomName = pm.variables.replaceIn('Ona');\r","    pm.environment.set(\"voting_user_name\", randomName);\r","    console.log('Voting user name:', pm.environment.get('voting_user_name'));\r","\r","// Prepare the first request to create a voting user\r","    const secondRequest = {\r","        url: 'https://stage.ducalis.io/rest/voting-users',\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'email', value: pm.environment.get('voting_user_email') },\r","                { key: 'name', value: pm.environment.get('voting_user_name') }\r","            ]\r","        }\r","    };\r","\r","// Send the request to create a voting user\r","\r","pm.sendRequest(secondRequest, function (err, res) { \r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 201) {  \r","            try {\r","                var jsonData = res.json();  \r","                var voting_user_id = jsonData.id;\r","                pm.environment.set(\"voting_user_id\", voting_user_id);\r","                console.log('Voting user ID is:', voting_user_id);\r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r","\r","});\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"f2c2808c-dcde-4826-b83e-d655ade320d2","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Votes Count is correct\", () => {\r","    pm.response.votesCount === 1;\r","});\r","pm.test(\"Voters Count is correct\", () => {\r","    pm.response.votersCount === 1;\r","});\r","pm.test(\"Voters Data is correct\", () => {\r","    pm.expect(response.votersData).to.have.lengthOf(1);\r","});\r","\r","pm.test(\"Voters Data to have all properties\", () => {\r","    pm.expect(response.votersData[0]).to.have.property('count');\r","    pm.expect(response.votersData[0]).to.have.property('name');\r","    pm.expect(response.votersData[0]).to.have.property('email');\r","    pm.expect(response.votersData[0]).to.have.property('company');\r","    pm.expect(response.votersData[0]).to.have.property('avatar');\r","});\r","\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"3cad201a-d995-463a-8414-bfe8e76366ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"voting_user_id","value":"","description":"<p>Optional. Current token user used by default</p>\n","type":"text","uuid":"586d7af1-6d34-42a5-8910-fd592f0769c3"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/vote","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","vote"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"c1625f4a-8e44-4d0f-a1ad-09d68f002c83","name":"Vote for Idea","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"voting_user_id","value":"","description":"Optional. Current token user used by default","type":"text","uuid":"586d7af1-6d34-42a5-8910-fd592f0769c3"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/vote"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 62582,\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"parent_id\": null,\n    \"status_id\": 69422,\n    \"allow_voting\": true,\n    \"text_status\": \"ready\",\n    \"name\": \"Idea\",\n    \"description\": \"Idea description\",\n    \"is_demo\": false,\n    \"created\": \"2025-06-02T10:34:07+00:00\",\n    \"last_status_update\": \"2025-06-02T10:34:07+00:00\",\n    \"last_update\": \"2025-06-02T10:39:47+00:00\",\n    \"label_ids\": [],\n    \"author\": {\n        \"id\": 120006,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": false,\n        \"organizations\": null\n    },\n    \"votesCount\": 2,\n    \"votersCount\": 2,\n    \"comments\": [],\n    \"votersData\": [\n        {\n            \"count\": 1,\n            \"name\": \"Patrick\",\n            \"email\": \"shax@tendee.io\",\n            \"company\": null,\n            \"avatar\": \"https://lh3.googleusercontent.com/a-/AOh14Ggk8e4z3lGCL6NPlab0UehNE6_cPkAxAqQ4SK6a=s96-c\"\n        },\n        {\n            \"count\": 1,\n            \"name\": \"Caren\",\n            \"email\": \"c@exmaple.com\",\n            \"company\": null,\n            \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\"\n        }\n    ],\n    \"mentionsUsers\": [],\n    \"issue_id\": null,\n    \"has_announce\": false,\n    \"announce_id\": null,\n    \"announce_hidden\": null,\n    \"announce_text_status\": null,\n    \"source\": null,\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62582\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62582\"\n    }\n}"}],"_postman_id":"3cad201a-d995-463a-8414-bfe8e76366ce"},{"name":"Remove Vote","event":[{"listen":"prerequest","script":{"id":"4e260acc-315e-4202-b0c5-73662adf6e27","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"b1480345-1702-4e1c-a6f4-5605cce565ff","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","pm.test(\"Votes Count is correct\", () => {\r","    pm.response.votesCount === 0;\r","});\r","pm.test(\"Voters Count is correct\", () => {\r","    pm.response.votersCount === 0;\r","});\r","pm.test(\"Voters Data is correct\", () => {\r","    pm.expect(response.votersData).to.have.lengthOf(0);\r","});\r","\r","// Create the request to delete an idea\r","const deleteIdeaRequestConfig = {\r","    url: 'https://stage.ducalis.io/rest/boards/'+pm.environment.get('board_uuid') + '/ideas/' + pm.environment.get('idea_id'),\r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a voting user\r","pm.sendRequest(deleteIdeaRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Voting idea deleted successfully');\r","            console.log('Status code:', res.code);\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});"],"type":"text/javascript","packages":{}}}],"id":"8dc6c8f2-1143-49af-ad4d-61646dab982c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"voting_user_id","value":"","description":"<p>Optional. Current token user used by default</p>\n","type":"text","uuid":"102e671e-4cb8-438c-b9cb-ce2729eb0430"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/vote","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","vote"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"8dc6c8f2-1143-49af-ad4d-61646dab982c"},{"name":"Link Idea to the Issue","event":[{"listen":"prerequest","script":{"id":"2c1ceda3-9532-4684-9311-7d3152852300","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","    pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Prepare the first request to create idea\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/boards/' + pm.environment.get('board_uuid') + '/ideas',\r","        method: 'POST',\r","        header: [\r","            {\r","                key: 'Content-Type',\r","                value: 'application/x-www-form-urlencoded'\r","            },\r","            {\r","                key: 'X-Skip-Dev-Auth',\r","                value: pm.variables.get('stage_login')\r","            }\r","        ],\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'name', value: \"Test Idea 1\" },\r","                { key: 'allow_voting', value: 1 }\r","            ]\r","        }\r","    };\r","\r","    // Send the request to create a idea\r","    pm.sendRequest(firstRequest, function (err, res) {  \r","        if (err) {\r","            console.log('Error:', err);\r","        } else {\r","            if (res.code === 201) {  \r","                try {\r","                    var jsonData = res.json();  \r","                    var idea_id = jsonData.id;\r","                    pm.environment.set(\"idea_id\", idea_id);\r","                    console.log('Idea ID is:', idea_id);\r","                } catch (e) {\r","                    console.log('Error parsing JSON:', e);\r","                    console.log('Response body:', res.text());\r","                }\r","            } else {\r","                console.log('Request failed with status:', res.code);\r","                console.log('Response body:', res.text());\r","            }\r","       }\r"," });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}\r",""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"test","script":{"id":"f1c5cd61-5f4b-4449-83e6-eb51f831305e","exec":["const response = pm.response.json();","","pm.test(\"Status code is 200\", () => {","    pm.response.to.have.status(200);","});","","pm.test(\"Issue id is correct\", function () {","    pm.expect(response.issue_id, \"'issue_id' was not found in the response\").to.not.be.undefined;","    pm.expect(response.issue_id.toString()).to.eql(pm.environment.get(\"issue_for_linking\").toString());","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"f6e953ed-1487-4f41-a9d4-97a17c402280","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"issue_id","value":"","description":"<p>Issue internal_id field from <a href=\"https://documenter.getpostman.com/view/26410287/2sB2qfAeXj#cfb7c7d7-f852-47b8-ab94-c86b99ffce8a\">https://documenter.getpostman.com/view/26410287/2sB2qfAeXj#cfb7c7d7-f852-47b8-ab94-c86b99ffce8a</a> endpoint</p>\n","type":"text","uuid":"11eaf42c-e578-49fc-b1ef-b144a5a89395"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/issue-merge","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","issue-merge"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"9fb33399-7ca3-466d-aa31-1475384389fd","name":"Link idea to the issue","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"issue_id","value":"","description":"Issue internal_id field from https://documenter.getpostman.com/view/26410287/2sB2qfAeXj#cfb7c7d7-f852-47b8-ab94-c86b99ffce8a endpoint","type":"text","uuid":"11eaf42c-e578-49fc-b1ef-b144a5a89395"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/issue-merge"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Thu, 24 Jul 2025 14:08:26 GMT"},{"key":"Content-Type","value":"application/json; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.3.17"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"X-Version","value":"253.0"},{"key":"Vary","value":"Accept"},{"key":"X-Rate-Limit-Limit","value":"500"},{"key":"X-Rate-Limit-Remaining","value":"499"},{"key":"X-Rate-Limit-Reset","value":"0"},{"key":"X-Debug-Tag","value":"68823e5a10911"},{"key":"X-Debug-Duration","value":"249"},{"key":"X-Debug-Link","value":"https://ducalis.loc/debug/default/view?tag=68823e5a10911"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 63543,\n    \"board_uuid\": \"0198322e-24e4-8158-9643-bb0d1ded6562\",\n    \"parent_id\": null,\n    \"status_id\": 70394,\n    \"allow_voting\": true,\n    \"text_status\": \"ready\",\n    \"name\": \"About this roadmap\",\n    \"description\": \"<p>We're buzzing with joy to have you here and we want to make sure we build the best product possible for you.</p><p>This board will show you what's the current plan and it's also so you can <strong>vote, comment, and influence our roadmap</strong>.</p><h2><strong>So what's up with the statuses?</strong></h2><p><strong>Under Review 🧐</strong><br>Here is where we gather ideas. Some are ours. Some came from you. They all have potential, but we're still thinking about them - so your feedback is much appreciated.</p><p><strong>Planned 🤘</strong><br>We're quite sure we'll build these. Still, any special requests or comments on these cards can help.</p><p><strong>In Progress 👨🏻\\u200d💻</strong><br>Our team is already hard at work building these. We're quick, but still, throw.</p><p><strong>Done 🎉</strong><br>Woo-hoo! We've built and deployed these already. So feel free to enjoy these features and let us know what you think about them.</p><p></p>\",\n    \"is_demo\": true,\n    \"created\": \"2025-07-22T11:49:24+00:00\",\n    \"last_status_update\": \"2025-07-22T12:49:24+00:00\",\n    \"last_update\": \"2025-07-22T12:49:24+00:00\",\n    \"label_ids\": [],\n    \"author\": {\n        \"id\": 5293,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": true,\n        \"organizations\": [\n            \"Test\"\n        ]\n    },\n    \"votesCount\": 0,\n    \"votersCount\": 0,\n    \"comments\": [],\n    \"votersData\": [],\n    \"mentionsUsers\": [],\n    \"issue_id\": 3340818,\n    \"has_announce\": false,\n    \"announce_id\": null,\n    \"announce_hidden\": null,\n    \"announce_text_status\": null,\n    \"source\": null,\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62581\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62581\"\n    }\n}"}],"_postman_id":"f6e953ed-1487-4f41-a9d4-97a17c402280"},{"name":"Unlink Idea from backlog Issue","event":[{"listen":"prerequest","script":{"id":"2c1ceda3-9532-4684-9311-7d3152852300","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","    pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}\r",""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"f1c5cd61-5f4b-4449-83e6-eb51f831305e","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Issue id is null\", () => {\r","    pm.expect(response.issue_id).to.be.null;\r","    });\r","\r","\r","// Create the request to delete an idea\r","const deleteIdeaRequestConfig = {\r","    url: 'https://stage.ducalis.io/rest/boards/'+pm.environment.get('board_uuid') + '/ideas/' + pm.environment.get('idea_id'),\r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a voting user\r","pm.sendRequest(deleteIdeaRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Voting idea deleted successfully');\r","            console.log('Status code:', res.code);\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"674b4a3f-c8da-4405-a112-26697f222088","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/issue-merge","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","issue-merge"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"1e98a207-dd5e-4ff5-b6ec-e0d03f68a1fb","name":"Unlink Idea from backlog Issue","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/issue-merge"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Thu, 24 Jul 2025 14:08:12 GMT"},{"key":"Content-Type","value":"application/json; charset=UTF-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.3.17"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"X-Version","value":"253.0"},{"key":"Vary","value":"Accept"},{"key":"X-Rate-Limit-Limit","value":"500"},{"key":"X-Rate-Limit-Remaining","value":"499"},{"key":"X-Rate-Limit-Reset","value":"0"},{"key":"X-Debug-Tag","value":"68823e4c3265c"},{"key":"X-Debug-Duration","value":"275"},{"key":"X-Debug-Link","value":"https://ducalis.loc/debug/default/view?tag=68823e4c3265c"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 63543,\n    \"board_uuid\": \"0198322e-24e4-8158-9643-bb0d1ded6562\",\n    \"parent_id\": null,\n    \"status_id\": 70394,\n    \"allow_voting\": true,\n    \"text_status\": \"ready\",\n    \"name\": \"About this roadmap\",\n    \"description\": \"<p>We're buzzing with joy to have you here and we want to make sure we build the best product possible for you.</p><p>This board will show you what's the current plan and it's also so you can <strong>vote, comment, and influence our roadmap</strong>.</p><h2><strong>So what's up with the statuses?</strong></h2><p><strong>Under Review 🧐</strong><br>Here is where we gather ideas. Some are ours. Some came from you. They all have potential, but we're still thinking about them - so your feedback is much appreciated.</p><p><strong>Planned 🤘</strong><br>We're quite sure we'll build these. Still, any special requests or comments on these cards can help.</p><p><strong>In Progress 👨🏻\\u200d💻</strong><br>Our team is already hard at work building these. We're quick, but still, throw.</p><p><strong>Done 🎉</strong><br>Woo-hoo! We've built and deployed these already. So feel free to enjoy these features and let us know what you think about them.</p><p></p>\",\n    \"is_demo\": true,\n    \"created\": \"2025-07-22T11:49:24+00:00\",\n    \"last_status_update\": \"2025-07-22T12:49:24+00:00\",\n    \"last_update\": \"2025-07-22T12:49:24+00:00\",\n    \"label_ids\": [],\n    \"author\": {\n        \"id\": 5293,\n        \"name\": \"Caren\",\n        \"email\": \"c@exmaple.com\",\n        \"avatar\": \"/images/avatars/CA_FFFFFF_426ef0.png\",\n        \"is_member\": true,\n        \"organizations\": [\n            \"Test\"\n        ]\n    },\n    \"votesCount\": 0,\n    \"votersCount\": 0,\n    \"comments\": [],\n    \"votersData\": [],\n    \"mentionsUsers\": [],\n    \"issue_id\": null,\n    \"has_announce\": false,\n    \"announce_id\": null,\n    \"announce_hidden\": null,\n    \"announce_text_status\": null,\n    \"source\": null,\n    \"_links\": {\n        \"internalUrl\": \"https://ducalis.loc/idea/62581\",\n        \"votingUrl\": \"https://workspace-2.ducalis.loc/idea/62581\"\n    }\n}"}],"_postman_id":"674b4a3f-c8da-4405-a112-26697f222088"}],"id":"364bd7a4-58b9-42f1-977d-2c2f62aaa922","_postman_id":"364bd7a4-58b9-42f1-977d-2c2f62aaa922","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Labels","item":[{"name":"Get All Labels","event":[{"listen":"prerequest","script":{"id":"d847e3b4-95a9-4ff9-9b6a-309fee864832","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"88af20f1-8dba-4326-aa11-818c8e77d75c","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response body is an array\", () => {\r","    pm.expect(response).to.be.an('array');\r","});\r","\r","pm.test(\"Label object to have all of the keys\", () => {\r","    pm.expect(response[0]).to.have.all.keys('id', 'workspace_id', 'name', 'color', 'board_uuid', 'slug');\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"5de5cd9b-befb-4fc0-89ac-171a35d44865","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to <code>20</code>. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-issue-label"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"56df0152-a5b8-429f-9333-d19b4ed75535","name":"Get All Labels","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 10959,\n        \"workspace_id\": 6901,\n        \"name\": \"label 1\",\n        \"color\": \"red\",\n        \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n        \"slug\": \"label-1-10959\"\n    }\n]"}],"_postman_id":"5de5cd9b-befb-4fc0-89ac-171a35d44865"},{"name":"Create Label","event":[{"listen":"prerequest","script":{"id":"94420e8b-c036-487f-a351-48cfae31d5c2","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random label name and set it to environment variable\r","    const randomLabelName = pm.variables.replaceIn('application');\r","    pm.environment.set(\"label_name\", randomLabelName);\r","    console.log('Label name:', pm.environment.get('label_name'));\r","\r","    const colors = ['orange', 'brown', 'yellow', 'green'];\r","    const randomLabelColor = colors[Math.floor(Math.random() * colors.length)];\r","    pm.environment.set(\"label_color\", randomLabelColor);\r","    console.log('Label color:', pm.environment.get('label_color'));\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"429903cf-4477-45e4-8a64-5e12562d2a0b","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","let label_id = response.id;\r","pm.environment.set(\"label_id\", label_id);\r","\r","pm.test(\"Response body is an object\", () => {\r","    pm.expect(response).to.be.an('object');\r","});\r","\r","pm.test(\"Response body has the correct properties\", () => {\r","    pm.expect(response).to.have.property('id');\r","    pm.expect(response).to.have.property('workspace_id');\r","    pm.expect(response).to.have.property('name');\r","    pm.expect(response).to.have.property('color');\r","    pm.expect(response).to.have.property('board_uuid');\r","    pm.expect(response).to.have.property('slug');\r","});\r","\r","pm.test(\"Label name is correct\", () => {\r","    var label_name = pm.environment.get(\"label_name\");\r","    pm.expect(response.name).to.equal(label_name);\r","});\r","\r","pm.test(\"Label color is correct\", () => {\r","    var label_color = pm.environment.get(\"label_color\");\r","    pm.expect(response.color).to.equal(label_color);\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"0bae2433-3d73-49d0-ada5-945618abd23c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"<p>idea label name</p>\n","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"<p>label color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,</p>\n","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"},{"key":"","value":"","type":"text","uuid":"547575ac-ed6b-48e3-aca5-98c884b32aa8","disabled":true}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-issue-label"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"8a67de95-a2c2-4809-8479-25fd9cd0fa71","name":"Create Label","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"idea label name","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"label color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 10959,\n    \"workspace_id\": 6901,\n    \"name\": \"label 1\",\n    \"color\": \"red\",\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"slug\": \"label-1-10959\"\n}"}],"_postman_id":"0bae2433-3d73-49d0-ada5-945618abd23c"},{"name":"Update Label","event":[{"listen":"prerequest","script":{"id":"9694b15e-021c-43c4-9b4d-9f818d1b0a49","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random label name and set it to environment variable\r","    const randomLabelName = pm.variables.replaceIn('transmitter');\r","    pm.environment.set(\"label_name\", randomLabelName);\r","    console.log('Label name:', pm.environment.get('label_name'));\r","\r","    const colors = ['grass', 'violet', 'indigo', 'mint'];\r","    const randomLabelColor = colors[Math.floor(Math.random() * colors.length)];\r","    pm.environment.set(\"label_color\", randomLabelColor);\r","    console.log('Label color:', pm.environment.get('label_color'));\r","\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"28036f08-4c5e-4c5b-b20c-81572467f614","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Label name is correct\", () => {\r","    var label_name = pm.environment.get(\"label_name\");\r","    pm.expect(response.name).to.equal(label_name);\r","});\r","\r","pm.test(\"Label color is correct\", () => {\r","    var label_color = pm.environment.get(\"label_color\");\r","    pm.expect(response.color).to.equal(label_color);\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"546cf9ce-e271-48f4-a66f-d31892fde012","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"<p>idea label name</p>\n","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"<p>label color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,</p>\n","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label/your_label_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-issue-label","your_label_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"3b8375dc-0dd3-4ed4-aa21-89509bf55813","name":"Update Label","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"idea label name","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"label color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label/your_label_id_here"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 10959,\n    \"workspace_id\": 6901,\n    \"name\": \"label 1\",\n    \"color\": \"red\",\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"slug\": \"label-1-10959\"\n}"}],"_postman_id":"546cf9ce-e271-48f4-a66f-d31892fde012"},{"name":"Delete Label","event":[{"listen":"prerequest","script":{"id":"1e4dedd3-3f05-4284-bfa2-daefb48d6d25","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"5673e929-353b-4b89-91e5-6bbbde8b2c27","exec":["pm.test(\"Status code is 204\", () => {\r","    pm.response.to.have.status(204);\r","});"],"type":"text/javascript","packages":{}}}],"id":"5e8123d9-ec7b-4a61-b2ec-4c85e9280ced","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/voting-issue-label/your_label_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","voting-issue-label","your_label_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e8123d9-ec7b-4a61-b2ec-4c85e9280ced"}],"id":"4a97b02f-45b2-463b-87a8-784d0f4bcc27","_postman_id":"4a97b02f-45b2-463b-87a8-784d0f4bcc27","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Comments","item":[{"name":"Create Comment","event":[{"listen":"prerequest","script":{"id":"7db98b52-b752-46bd-8940-6eb45ddb0919","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    // Generate random comment and set it to environment variable\r","    const randomComment = pm.variables.replaceIn('You can't calculate the transmitter without programming the cross-platform XML bus!');\r","    pm.environment.set(\"idea_comment\", randomComment);\r","    console.log('Comment:', pm.environment.get('idea_comment'));\r","\r","    // Prepare the first request to create idea\r","    const firstRequest = {\r","        url: 'https://stage.ducalis.io/rest/boards/' + pm.environment.get('board_uuid') + '/ideas',\r","        method: 'POST',\r","        header: {\r","            'Content-Type': 'application/x-www-form-urlencoded',\r","            'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","        },\r","        body: {\r","            mode: 'urlencoded',\r","            urlencoded: [\r","                { key: 'name', value: \"Test Idea 1\" },\r","                { key: 'allow_voting', value: 1 }\r","            ]\r","        }\r","    };\r","\r","// Send the request to create a idea\r","\r","pm.sendRequest(firstRequest, function (err, res) {  \r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 201) {  \r","            try {\r","                var jsonData = res.json();  \r","                var idea_id = jsonData.id;\r","                pm.environment.set(\"idea_id\", idea_id);\r","                console.log('Idea ID is:', idea_id);\r","            } catch (e) {\r","                console.log('Error parsing JSON:', e);\r","                console.log('Response body:', res.text());\r","            }\r","        } else {\r","            console.log('Request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","\r","});\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"2cbf022a-bb14-4d81-805e-1c5ba379d993","exec":["const response = pm.response.json();\r","\r","let comment_id = response.id;\r","pm.environment.set(\"comment_id\", comment_id);\r","\r","pm.test(\"Status code is 201\", () => {\r","    pm.response.to.have.status(201);\r","});\r","\r","pm.test(\"Response body to have property message\", () => {\r","    pm.expect(response).to.have.property(\"message\");\r","});\r","\r","pm.test(\"Message is correct\", () => {\r","    var comment = pm.environment.get(\"idea_comment\");\r","    pm.expect(response.message).to.eql(comment);\r","});\r","\r","pm.test(\"Response to have all of the keys\", () => {\r","    pm.expect(response).to.have.all.keys(\"id\", \"is_system\", \"system_author\", \"user\", \"parent_id\", \"assignee_id\", \"message\", \"open\", \"created\");\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"9b681dcc-f899-44c3-bf05-a074d0f6a892","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"message","value":"{{idea_comment}}","type":"text","uuid":"ccac4913-8d7c-49f4-9ef4-a69427f050c5"},{"key":"","value":"","type":"text","uuid":"168517ed-3b13-465a-8723-09bb33e3590b","disabled":true}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/comments","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","comments"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"9b681dcc-f899-44c3-bf05-a074d0f6a892"},{"name":"Update Comment","event":[{"listen":"prerequest","script":{"id":"42e0594a-aef4-4f97-a1c1-290c19b723f9","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    // Generate random comment and set it to environment variable\r","    const randomComment = pm.variables.replaceIn('Try to compress the GB matrix, maybe it will override the haptic interface!');\r","    pm.environment.set(\"idea_comment\", randomComment);\r","    console.log('Comment:', pm.environment.get('idea_comment'));\r","\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"a4722d83-584d-4393-a438-598fab3d9daf","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Message is correct\", () => {\r","    var comment = pm.environment.get(\"idea_comment\");\r","    pm.expect(response.message).to.eql(comment);\r","});"],"type":"text/javascript","packages":{}}}],"id":"ad539923-cecc-4823-a054-2018b34611ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"message","value":"{{idea_comment}}","type":"text","uuid":"fbbac8c8-a854-4804-97d6-f054bdaf9569"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/comments/your_comment_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","comments","your_comment_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"ad539923-cecc-4823-a054-2018b34611ab"},{"name":"Delete Comment","event":[{"listen":"prerequest","script":{"id":"c6711b04-5aad-4cb4-b423-1c3bbd0943e3","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"b81d8ebf-dbe4-45b9-ae99-e11cba377ae0","exec":["pm.test(\"Status code is 204\", () => {\r","    pm.response.to.have.status(204);\r","});\r","\r","// Create the request to delete an idea\r","const deleteIdeaRequestConfig = {\r","    url: 'https://stage.ducalis.io/rest/boards/'+pm.environment.get('board_uuid') + '/ideas/' + pm.environment.get('idea_id'),\r","    method: 'DELETE',\r","    header: {\r","        'Content-Type': 'application/x-www-form-urlencoded',\r","        'X-Skip-Dev-Auth': pm.variables.get('stage_login')\r","    }\r","};\r","\r","// Send the request to delete a voting user\r","pm.sendRequest(deleteIdeaRequestConfig, function (err, res) {\r","    if (err) {\r","        console.log('Error:', err);\r","    } else {\r","        if (res.code === 204) {\r","            console.log('Voting idea deleted successfully');\r","            console.log('Status code:', res.code);\r","            \r","        } else {\r","            console.log('Delete request failed with status:', res.code);\r","            console.log('Response body:', res.text());\r","        }\r","    }\r","});\r",""],"type":"text/javascript","packages":{}}}],"id":"6797304e-3ec7-4b2b-b062-5152dc99e5f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/ideas/your_idea_id_here/comments/your_comment_id_here","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","ideas","your_idea_id_here","comments","your_comment_id_here"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"6797304e-3ec7-4b2b-b062-5152dc99e5f6"}],"id":"a4798936-3fe2-414f-8b99-b6f2db203f4c","_postman_id":"a4798936-3fe2-414f-8b99-b6f2db203f4c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Idea Statuses","item":[{"name":"Get All Statuses","event":[{"listen":"prerequest","script":{"id":"86e7a49c-0b2b-457e-8adb-b51f9d54aef1","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"fcc7dd40-81e4-4de6-b089-fb9a2855d058","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response body is an array\", () => {\r","    pm.expect(response).to.be.an('array');\r","});\r","\r","pm.test(\"Status object to have all of the keys\", () => {\r","    pm.expect(response[0]).to.have.all.keys('id', 'workspace_id', 'name', 'color', 'board_uuid', 'is_system', 'system_status', 'position');\r","});"],"type":"text/javascript","packages":{}}}],"id":"f448fcaf-88d4-4d72-b387-96e9389f9752","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Idea","type":"text","uuid":"8c43e584-7d4c-405a-9ab2-13bcc72b6df8"},{"key":"description","value":"Idea description","type":"text","uuid":"bf3058ed-c2e3-46f2-a42e-4f9ccca5d396"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses","description":"<p>This endpoint supports pagination for retrieving a list of users.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> (integer, optional): The requested page number. Defaults to <code>1</code>.</p>\n<ul>\n<li>Example: <code>page=2</code></li>\n</ul>\n</li>\n<li><p><code>per-page</code> (integer, optional): The number of items per page. Defaults to <code>20</code>. The maximum value may be limited by the server.</p>\n<ul>\n<li>Example: <code>per-page=50</code></li>\n</ul>\n</li>\n</ul>\n<p><strong>Response Headers for Pagination:</strong></p>\n<ul>\n<li><p><code>X-Pagination-Total-Count</code> (integer): The total number of available items.</p>\n</li>\n<li><p><code>X-Pagination-Page-Count</code> (integer): The total number of pages, based on <code>per-page</code>.</p>\n</li>\n<li><p><code>X-Pagination-Current-Page</code> (integer): The current page you requested.</p>\n</li>\n<li><p><code>X-Pagination-Per-Page</code> (integer): The number of items on the current page (equal to the <code>per-page</code> value in the request, unless the total item count on the last page was exceeded).</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","idea-statuses"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"40a4bce4-ba67-4874-b866-90ce9d3d4d46","name":"Get All Statuses","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"Idea","type":"text","uuid":"8c43e584-7d4c-405a-9ab2-13bcc72b6df8"},{"key":"description","value":"Idea description","type":"text","uuid":"bf3058ed-c2e3-46f2-a42e-4f9ccca5d396"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 69423,\n        \"workspace_id\": 6901,\n        \"name\": \"Done\",\n        \"color\": \"grass\",\n        \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n        \"is_system\": true,\n        \"system_status\": \"done\",\n        \"position\": 4\n    },\n    {\n        \"id\": 69422,\n        \"workspace_id\": 6901,\n        \"name\": \"In Progress\",\n        \"color\": \"tomato\",\n        \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n        \"is_system\": false,\n        \"system_status\": null,\n        \"position\": 3\n    },\n    {\n        \"id\": 69421,\n        \"workspace_id\": 6901,\n        \"name\": \"Planned\",\n        \"color\": \"cyan\",\n        \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n        \"is_system\": false,\n        \"system_status\": null,\n        \"position\": 2\n    },\n    {\n        \"id\": 69420,\n        \"workspace_id\": 6901,\n        \"name\": \"Under Review\",\n        \"color\": \"blue\",\n        \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n        \"is_system\": true,\n        \"system_status\": \"under_review\",\n        \"position\": 1\n    }\n]"}],"_postman_id":"f448fcaf-88d4-4d72-b387-96e9389f9752"},{"name":"Create Status","event":[{"listen":"prerequest","script":{"id":"08bc93a8-1ff0-4436-a624-0b198a0dd1bb","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    // Generate random label name and set it to environment variable\r","    const randomStatusName = pm.variables.replaceIn('microchip');\r","    pm.environment.set(\"status_name\", randomStatusName);\r","    console.log('Status name:', pm.environment.get('status_name'));\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"e11f0edd-0048-4a61-a2de-51bccd0c634c","exec":["const response = pm.response.json();\r","\r","let status_id = response.id;\r","pm.environment.set(\"status_id\", status_id);\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Response body is an object\", () => {\r","    pm.expect(pm.response.json()).to.be.an(\"object\");\r","});\r","\r","pm.test(\"Response body to have all of the keys\", () => {\r","    const expectedKeys = [\"id\", \"workspace_id\", \"name\", \"color\", \"board_uuid\", \"is_system\", \"system_status\", \"position\"];\r","    const responseKeys = Object.keys(response);\r","    pm.expect(responseKeys).to.include.members(expectedKeys);\r","});\r","\r","pm.test(\" Status name is correct\", () => {\r","    var status = pm.environment.get(\"status_name\");\r","    pm.expect(response.name).to.equal(status);\r","});\r","\r",""],"type":"text/javascript","packages":{}}}],"id":"07c07b47-75d5-49fe-82c6-a5939c55defa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"<p>idea status name</p>\n","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"<p>status color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,</p>\n","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510","disabled":true}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","idea-statuses"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"e89ee051-3d4d-45a0-844b-ca7f838cdcb6","name":"Create Status","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"idea status name","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"status color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 69457,\n    \"workspace_id\": 6901,\n    \"name\": \"Status 1\",\n    \"color\": \"red\",\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"is_system\": null,\n    \"system_status\": null,\n    \"position\": 5\n}"}],"_postman_id":"07c07b47-75d5-49fe-82c6-a5939c55defa"},{"name":"Update Status","event":[{"listen":"prerequest","script":{"id":"dc110c52-d82a-4bb6-a5d0-6749b4272852","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    // Generate random label name and set it to environment variable\r","    const randomStatusName = pm.variables.replaceIn('application');\r","    pm.environment.set(\"status_name\", randomStatusName);\r","    console.log('Status name:', pm.environment.get('status_name'));\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"923b9c19-80b9-48ba-97ef-fb3b9941a9e2","exec":["const response = pm.response.json();\r","\r","pm.test(\"Status code is 200\", () => {\r","    pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Status name is updated\", () => {\r","    var status = pm.environment.get(\"status_name\");\r","    pm.expect(response.name).to.equal(status);\r","}); "],"type":"text/javascript","packages":{}}}],"id":"c8d7487d-4242-4f61-bef3-7e8e32b12da9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"<p>idea status name</p>\n","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"<p>status color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,</p>\n","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510","disabled":true},{"key":"position","value":"","description":"<p>positive integer value</p>\n","type":"text","uuid":"b9a3d7b4-4d93-4068-986b-34f45ef982ff","disabled":true}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","idea-statuses",""],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[{"id":"6fee8e69-d39c-456c-a08c-ca629fb27cbe","name":"Update Status","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"","description":"idea status name","type":"text","uuid":"bfadbe85-0a1f-4a21-a29a-286ececec0ac"},{"key":"color","value":"","description":"status color. Values: \ntomato,\nred,\ncrimson,\npink,\nplum,\npurple,\nviolet,\nindigo,\nblue,\ncyan,\nteal,\ngreen,\ngrass,\norange,\nbrown,\nsky,\nmint,\nlime,\nyellow,\namber,","type":"text","uuid":"dff9822d-395f-4b36-92f3-cceeb0ceb510"}]},"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 69457,\n    \"workspace_id\": 6901,\n    \"name\": \"Status 1\",\n    \"color\": \"red\",\n    \"board_uuid\": \"01971623-62bd-8bc7-8337-4a09d565519f\",\n    \"is_system\": null,\n    \"system_status\": null,\n    \"position\": 5\n}"}],"_postman_id":"c8d7487d-4242-4f61-bef3-7e8e32b12da9"},{"name":"Delete Status","event":[{"listen":"prerequest","script":{"id":"180b47e1-144d-4a97-9b48-1837544e203e","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","    \r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"178da491-061f-451a-be59-862b3c808a12","exec":["pm.test(\"Status code is 204\", () => {\r","    pm.response.to.have.status(204);\r","});"],"type":"text/javascript","packages":{}}}],"id":"b00baa60-b378-4670-9f9c-c92320206b8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/rest/boards/your_board_uuid_here/idea-statuses/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["rest","boards","your_board_uuid_here","idea-statuses",""],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"b00baa60-b378-4670-9f9c-c92320206b8a"}],"id":"cf4dc3a6-6932-47c9-a31e-ff4e4ce9efaa","_postman_id":"cf4dc3a6-6932-47c9-a31e-ff4e4ce9efaa","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}},{"name":"Issues","item":[{"name":"Get All Issues","event":[{"listen":"test","script":{"id":"f9f40e5a-7d80-4504-8d13-f783730c589f","exec":["var jsonData = pm.response.json();","const board_uuid = pm.environment.get('board_uuid');","console.log(board_uuid);","console.log(jsonData[board_uuid][0].id);"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"22a10f74-73d3-42bd-865c-19d7b29986ef","exec":["const currentEnv = pm.environment.name;\r","\r","if (currentEnv === 'Stage') {\r","    pm.request.auth = {\r","        type: 'basic',\r","        basic: {\r","            username: pm.environment.get('username'),\r","            password: pm.environment.get('tbx-pass')\r","        }\r","    };\r","        pm.request.headers.add({\r","        key: 'X-Skip-Dev-Auth',\r","        value: pm.variables.get('stage_login')\r","    });\r","} else if (currentEnv === 'Production') {\r","    pm.request.auth = { type: 'noauth' };\r","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"cfb7c7d7-f852-47b8-ab94-c86b99ffce8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer your_access_token_here"}],"url":"https://ducalis.io/storage/issues","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}},"urlObject":{"path":["storage","issues"],"host":["https://ducalis.io"],"query":[],"variable":[]}},"response":[],"_postman_id":"cfb7c7d7-f852-47b8-ab94-c86b99ffce8a"}],"id":"692d548e-47c6-4880-acc8-a4014d62872c","_postman_id":"692d548e-47c6-4880-acc8-a4014d62872c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]},"isInherited":true,"source":{"_postman_id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","id":"424b83e2-fd9a-47c6-9e4a-2c3ab434407f","name":"Ducalis API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"your_access_token_here"}]}},"event":[{"listen":"prerequest","script":{"id":"f1c86c97-c5ca-4cb7-9cc9-77c4bcd36a5f","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"525abeec-2045-44f0-96c0-6ece31c18a05","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"https://ducalis.io"},{"key":"access_token","value":"your_access_token_here"},{"key":"board_uuid","value":"your_board_uuid_here"},{"key":"idea_id","value":"your_idea_id_here"},{"key":"label_id","value":"your_label_id_here"},{"key":"comment_id","value":"your_comment_id_here"},{"key":"status_id","value":"","type":"default"},{"key":"status_color","value":"","type":"default"},{"key":"status_name","value":"","type":"default"},{"key":"status_position","value":"","type":"default"},{"key":"voting_user_id","value":"","type":"default"},{"key":"voting_status_id","value":"","type":"default"},{"key":"label_name","value":"","type":"default"},{"key":"label_color","value":"","type":"default"},{"key":"issue_internal_id","value":"","type":"default"}]}