{"info":{"_postman_id":"f2efb5e2-51e5-4850-be1c-c5db8423669f","name":"API BWRD","description":"<html><head></head><body><p>This is official documentation for api.bwrd.eu.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"26851665","collectionId":"f2efb5e2-51e5-4850-be1c-c5db8423669f","publishedId":"2sAYJ4hzkY","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-12-23T21:39:38.000Z"},"item":[{"name":"SPORTS","item":[{"name":"sports","item":[{"name":"/sports","id":"1aa88eeb-660a-4c23-a015-75de15e227f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports","description":"<p>This endpoint makes an HTTP GET request to retrieve data of all available sports from the server. The response is in JSON format with a status code of 200. The response body contains an array of objects, where each object represents a sport and has the following potential data fields:</p>\n<ul>\n<li><p>\"id\": (number) The unique identifier for the sport.</p>\n</li>\n<li><p>\"name\": (string) The name of the sport.</p>\n</li>\n<li><p>\"nameSK\": (string) The name of the sport in a specific language.</p>\n</li>\n</ul>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 0,\n    \"name\": \"\",\n    \"nameSK\": \"\"\n  }\n]\n\n</code></pre>\n","urlObject":{"path":["sports"],"host":["https://api.bwrd.eu"],"query":[],"variable":[]}},"response":[{"id":"0c2dec44-3a37-489a-adb7-80777e9aa985","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 14:13:39 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"name\": \"Football\",\n        \"nameSK\": \"Futbal\"\n    },\n    {\n        \"id\": 2,\n        \"name\": \"Ice Hockey\",\n        \"nameSK\": \"Hokej\"\n    }\n]"}],"_postman_id":"1aa88eeb-660a-4c23-a015-75de15e227f4"},{"name":"/sports/{sportId}","id":"169a1492-9f22-4019-822e-0df3ac6e8055","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports/:sportId","description":"<h3 id=\"get-sport-details\">Get Sport Details</h3>\n<p>This endpoint retrieves detailed data for the selected sport based on the <code>sportId</code>.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: <code>GET</code></p>\n</li>\n<li><p>URL: <code>https://api.bwrd.eu/sports/:sportId</code></p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will include the following fields:</p>\n<ul>\n<li><p><code>id</code> (number): The unique identifier for the sport.</p>\n</li>\n<li><p><code>name</code> (string): The name of the sport.</p>\n</li>\n<li><p><code>nameSK</code> (string): The name of the sport in Slovak language.</p>\n</li>\n</ul>\n<h4 id=\"parameters\">Parameters</h4>\n<ul>\n<li><code>sportId</code> (path parameter): The unique identifier for the sport.</li>\n</ul>\n","urlObject":{"path":["sports",":sportId"],"host":["https://api.bwrd.eu"],"query":[],"variable":[{"description":{"content":"<p>number</p>\n","type":"text/plain"},"type":"any","value":"2","key":"sportId"}]}},"response":[{"id":"33e41db0-6f94-4a04-9dcf-5f2a4d5df1b7","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/:sportId","host":["https://api.bwrd.eu"],"path":["sports",":sportId"],"variable":[{"key":"sportId","value":"2","description":"number"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:18:36 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"name\": \"Ice Hockey\",\n    \"nameSK\": \"Hokej\"\n}"},{"id":"c7a17fcc-1655-46db-a066-f9df337e2f2e","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/:sportId","host":["https://api.bwrd.eu"],"path":["sports",":sportId"],"variable":[{"key":"sportId","value":"asdfg","description":"number"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:13:50 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"00d86775-5ce7-43a8-aaa5-60f1d15ca4f6\",\n        \"message\": \"ID of team has not valid format.\",\n        \"code\": 400,\n        \"timestamp\": \"2024-11-25T18:13:50.799Z\",\n        \"path\": \"/sports/asdfg\"\n    }\n}"},{"id":"af8ec5c1-9e0c-4f1d-bc1d-dad5c41515cc","name":"404 Not Found","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/:sportId","host":["https://api.bwrd.eu"],"path":["sports",":sportId"],"variable":[{"key":"sportId","value":"333","description":"number"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:17:41 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"2bd598a8-bad8-46a1-bfc5-48960c426e43\",\n        \"message\": \"Sport with id 333 not found.\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-25T18:17:41.955Z\",\n        \"path\": \"/sports/333\"\n    }\n}"}],"_postman_id":"169a1492-9f22-4019-822e-0df3ac6e8055"}],"id":"53ced541-3a8a-47c6-abc4-6225e920fd60","_postman_id":"53ced541-3a8a-47c6-abc4-6225e920fd60","description":""},{"name":"teams","item":[{"name":"/sports/teams","event":[{"listen":"test","script":{"id":"38acd592-95eb-469d-b845-0fbfa2a2175d","exec":["// Define JSON Schema for validation","const teamSchema = {","    type: \"array\",","    items: {","        type: \"object\",","        required: [\"id\", \"name\", \"nameSK\", \"shortcut\", \"league\", \"seasons\", \"sportId\"],","        properties: {","            id: { type: \"integer\" },","            name: { type: \"string\" },","            nameSK: { type: \"string\" },","            shortcut: { type: \"string\" },","            flagImg: { type: \"string\" },","            jerseyHomeImg: { type: \"string\" },","            jerseyAwayImg: { type: \"string\" },","            league: { type: \"string\", enum: [\"NATIONAL\", \"NHL\"] },","            seasons: {","                type: \"array\",","                items: {","                    type: \"object\",","                    properties: {","                        name: { type: \"string\" },","                        group: { type: \"string\" }","                    }","                }","            },","            sportId: { type: \"integer\" }","        }","    }","};","","// Define all possible values for each query parameter (POSITIVE TESTS)","const parameterOptions = {","    league: ['NATIONAL', 'NHL'],","    sportId: [1, 2],","    season: ['WCH2025', 'NHL24/25', 'WCH2024']","};","","// Define NEGATIVE TEST scenarios","const negativeTestScenarios = {","    invalidLeagueValues: [","        { params: { league: 'INVALID' }, description: 'Invalid league value', expectedStatus: [400, 404] },","        { params: { league: 'nhl' }, description: 'Lowercase league value', expectedStatus: [400, 404] },","        { params: { league: '123' }, description: 'Numeric league value', expectedStatus: [400, 404] }","    ],","    invalidSportIdValues: [","        { params: { sportId: '999' }, description: 'Non-existent sportId', expectedStatus: [400, 404] },","        { params: { sportId: '-1' }, description: 'Negative sportId', expectedStatus: [400, 404] },","        { params: { sportId: 'abc' }, description: 'Non-numeric sportId', expectedStatus: [400, 404] },","        { params: { sportId: '0' }, description: 'Zero sportId', expectedStatus: [400, 404] }","    ],","    invalidSeasonValues: [","        { params: { season: 'INVALID' }, description: 'Invalid season value', expectedStatus: [400, 404] },","        { params: { season: '2025' }, description: 'Numeric-only season', expectedStatus: [400, 404] },","        { params: { season: 'WCH9999' }, description: 'Future non-existent season', expectedStatus: [400, 404] }","    ],","    emptyParameterValues: [","        { params: { league: '' }, description: 'Empty league value', expectedStatus: [200, 400, 404] },","        { params: { sportId: '' }, description: 'Empty sportId value', expectedStatus: [200, 400, 404] },","        { params: { season: '' }, description: 'Empty season value', expectedStatus: [200, 400, 404] }","    ],","    specialCharacters: [","        { params: { league: '<script>' }, description: 'XSS attempt in league', expectedStatus: [400, 404] },","        { params: { sportId: \"1'; DROP TABLE\" }, description: 'SQL injection attempt', expectedStatus: [400, 404] },","        { params: { league: 'A'.repeat(1000) }, description: 'Very long league value', expectedStatus: [400, 404, 414] },","        { params: { league: '🏒' }, description: 'Emoji in league parameter', expectedStatus: [400, 404] }","    ],","    invalidParameterNames: [","        { params: { foo: 'bar' }, description: 'Unknown parameter foo=bar', expectedStatus: [200, 400] },","        { params: { invalid: 'test' }, description: 'Unknown parameter invalid=test', expectedStatus: [200, 400] },","        { params: { League: 'NHL' }, description: 'Case sensitivity - League (capital L)', expectedStatus: [200, 400, 404] },","        { params: { SPORTID: '1' }, description: 'Case sensitivity - SPORTID (uppercase)', expectedStatus: [200, 400, 404] },","        { params: { SEASON: 'WCH2025' }, description: 'Case sensitivity - SEASON (uppercase)', expectedStatus: [200, 400, 404] }","    ],","    boundaryTests: [","        { params: { league: 'NHL', league2: 'NATIONAL' }, description: 'Multiple league params (simulated)', expectedStatus: [200, 400] },","        { params: { sportId: 'null' }, description: 'Null-like sportId value', expectedStatus: [400, 404] },","        { params: { league: 'undefined' }, description: 'Undefined-like league value', expectedStatus: [400, 404] }","    ]","};","","// Generate all combinations of parameters for positive tests","function generateCombinations(options) {","    const keys = Object.keys(options);","    const combinations = [];","    ","    combinations.push({});","    ","    keys.forEach(key => {","        options[key].forEach(value => {","            combinations.push({ [key]: value });","        });","    });","    ","    for (let i = 0; i < keys.length; i++) {","        for (let j = i + 1; j < keys.length; j++) {","            const key1 = keys[i];","            const key2 = keys[j];","            options[key1].forEach(val1 => {","                options[key2].forEach(val2 => {","                    combinations.push({ [key1]: val1, [key2]: val2 });","                });","            });","        }","    }","    ","    const allKeys = keys;","    if (allKeys.length === 3) {","        options[allKeys[0]].forEach(val1 => {","            options[allKeys[1]].forEach(val2 => {","                options[allKeys[2]].forEach(val3 => {","                    combinations.push({","                        [allKeys[0]]: val1,","                        [allKeys[1]]: val2,","                        [allKeys[2]]: val3","                    });","                });","            });","        });","    }","    ","    return combinations;","}","","// Flatten negative test scenarios into array","function flattenNegativeTests(scenarios) {","    const tests = [];","    Object.keys(scenarios).forEach(category => {","        scenarios[category].forEach(test => {","            tests.push({ ...test, category });","        });","    });","    return tests;","}","","const positiveTestCombinations = generateCombinations(parameterOptions);","const negativeTests = flattenNegativeTests(negativeTestScenarios);","","// Store results","const positiveResults = [];","const negativeResults = [];","","// Base URL","const baseUrl = pm.collectionVariables.get(\"baseUrl\") || pm.environment.get(\"baseUrl\") || pm.variables.get(\"baseUrl\");","","// JSON Schema validation function","function validateSchema(data, schema) {","    const tv4 = require('tv4');","    return tv4.validate(data, schema);","}","","// Run positive tests","async function runPositiveTests() {","    console.log(\"========================================\");","    console.log(\"POSITIVE TESTS - Valid Parameter Combinations\");","    console.log(\"========================================\");","    ","    for (let i = 0; i < positiveTestCombinations.length; i++) {","        const params = positiveTestCombinations[i];","        const queryString = Object.keys(params).length > 0 ","            ? '?' + Object.keys(params).map(k => k + '=' + encodeURIComponent(params[k])).join('&')","            : '';","        ","        const url = baseUrl + '/sports/teams' + queryString;","        const paramDesc = Object.keys(params).length > 0 ","            ? Object.keys(params).map(k => k + '=' + params[k]).join(', ')","            : 'No parameters';","        ","        try {","            const response = await pm.sendRequest({","                url: url,","                method: 'GET'","            });","            ","            const statusCode = response.code;","            const isSuccess = statusCode === 200;","            let schemaValid = false;","            let responseData = null;","            ","            if (isSuccess) {","                try {","                    responseData = response.json();","                    schemaValid = validateSchema(responseData, teamSchema);","                } catch (e) {","                    schemaValid = false;","                }","            }","            ","            const result = {","                combination: paramDesc,","                params: params,","                statusCode: statusCode,","                success: isSuccess,","                schemaValid: schemaValid,","                teamsCount: responseData ? responseData.length : 0","            };","            ","            positiveResults.push(result);","            ","            const statusIcon = isSuccess ? '✅' : '❌';","            const schemaIcon = schemaValid ? '✅' : '❌';","            console.log(`${statusIcon} [${i + 1}/${positiveTestCombinations.length}] ${paramDesc} → Status: ${statusCode}, Schema: ${schemaIcon}, Teams: ${result.teamsCount}`);","            ","        } catch (error) {","            positiveResults.push({","                combination: paramDesc,","                params: params,","                statusCode: 'Error',","                success: false,","                schemaValid: false,","                error: error.message","            });","            console.log(`❌ [${i + 1}/${positiveTestCombinations.length}] ${paramDesc} → Error: ${error.message}`);","        }","    }","}","","// Run negative tests","async function runNegativeTests() {","    console.log(\"\\n========================================\");","    console.log(\"NEGATIVE TESTS - Edge Cases & Invalid Inputs\");","    console.log(\"========================================\");","    ","    for (let i = 0; i < negativeTests.length; i++) {","        const test = negativeTests[i];","        const queryString = Object.keys(test.params).length > 0 ","            ? '?' + Object.keys(test.params).map(k => k + '=' + encodeURIComponent(test.params[k])).join('&')","            : '';","        ","        const url = baseUrl + '/sports/teams' + queryString;","        ","        try {","            const response = await pm.sendRequest({","                url: url,","                method: 'GET'","            });","            ","            const statusCode = response.code;","            const expectedStatuses = test.expectedStatus;","            const handledCorrectly = expectedStatuses.includes(statusCode);","            ","            const result = {","                description: test.description,","                category: test.category,","                params: test.params,","                statusCode: statusCode,","                expectedStatus: expectedStatuses.join(' or '),","                handledCorrectly: handledCorrectly,","                actualBehavior: statusCode === 200 ? 'Accepted (may be graceful handling)' : ","                               statusCode === 400 ? 'Bad Request (proper validation)' :","                               statusCode === 404 ? 'Not Found' :","                               statusCode === 414 ? 'URI Too Long' : 'Other'","            };","            ","            negativeResults.push(result);","            ","            const statusIcon = handledCorrectly ? '✅' : '⚠️';","            console.log(`${statusIcon} [${i + 1}/${negativeTests.length}] ${test.description}`);","            console.log(`   Params: ${JSON.stringify(test.params)}`);","            console.log(`   Expected: ${expectedStatuses.join(' or ')} | Actual: ${statusCode}`);","            ","        } catch (error) {","            negativeResults.push({","                description: test.description,","                category: test.category,","                params: test.params,","                statusCode: 'Error',","                expectedStatus: test.expectedStatus.join(' or '),","                handledCorrectly: false,","                error: error.message","            });","            console.log(`❌ [${i + 1}/${negativeTests.length}] ${test.description} → Error: ${error.message}`);","        }","    }","}","","// Main execution","(async () => {","    await runPositiveTests();","    await runNegativeTests();","    ","    // Calculate summaries","    const positivePassCount = positiveResults.filter(r => r.success && r.schemaValid).length;","    const positiveFailCount = positiveResults.length - positivePassCount;","    ","    const negativePassCount = negativeResults.filter(r => r.handledCorrectly).length;","    const negativeFailCount = negativeResults.length - negativePassCount;","    ","    // Console summary","    console.log(\"\\n========================================\");","    console.log(\"TEST SUMMARY\");","    console.log(\"========================================\");","    console.log(`POSITIVE TESTS: ${positivePassCount}/${positiveResults.length} passed`);","    console.log(`NEGATIVE TESTS: ${negativePassCount}/${negativeResults.length} handled correctly`);","    console.log(`TOTAL: ${positivePassCount + negativePassCount}/${positiveResults.length + negativeResults.length}`);","    ","    // Postman tests","    pm.test(\"Positive Tests: All valid combinations return 200\", function() {","        const failed = positiveResults.filter(r => !r.success);","        pm.expect(failed.length, \"Failed combinations: \" + failed.map(f => f.combination).join(\", \")).to.equal(0);","    });","    ","    pm.test(\"Positive Tests: All responses match schema\", function() {","        const invalidSchema = positiveResults.filter(r => r.success && !r.schemaValid);","        pm.expect(invalidSchema.length, \"Invalid schema: \" + invalidSchema.map(f => f.combination).join(\", \")).to.equal(0);","    });","    ","    pm.test(\"Negative Tests: Invalid league values handled appropriately\", function() {","        const leagueTests = negativeResults.filter(r => r.category === 'invalidLeagueValues');","        const handled = leagueTests.filter(r => r.handledCorrectly).length;","        console.log(`Invalid league tests: ${handled}/${leagueTests.length} handled correctly`);","        pm.expect(handled).to.be.greaterThan(0);","    });","    ","    pm.test(\"Negative Tests: Invalid sportId values handled appropriately\", function() {","        const sportIdTests = negativeResults.filter(r => r.category === 'invalidSportIdValues');","        const handled = sportIdTests.filter(r => r.handledCorrectly).length;","        console.log(`Invalid sportId tests: ${handled}/${sportIdTests.length} handled correctly`);","        pm.expect(handled).to.be.greaterThan(0);","    });","    ","    pm.test(\"Negative Tests: Invalid season values handled appropriately\", function() {","        const seasonTests = negativeResults.filter(r => r.category === 'invalidSeasonValues');","        const handled = seasonTests.filter(r => r.handledCorrectly).length;","        console.log(`Invalid season tests: ${handled}/${seasonTests.length} handled correctly`);","        pm.expect(handled).to.be.greaterThan(0);","    });","    ","    pm.test(\"Negative Tests: Special characters handled safely\", function() {","        const specialTests = negativeResults.filter(r => r.category === 'specialCharacters');","        const handled = specialTests.filter(r => r.handledCorrectly).length;","        console.log(`Special character tests: ${handled}/${specialTests.length} handled correctly`);","        pm.expect(handled).to.be.greaterThan(0);","    });","    ","    pm.test(\"Negative Tests: Empty parameter values handled\", function() {","        const emptyTests = negativeResults.filter(r => r.category === 'emptyParameterValues');","        const handled = emptyTests.filter(r => r.handledCorrectly).length;","        console.log(`Empty parameter tests: ${handled}/${emptyTests.length} handled correctly`);","        pm.expect(handled).to.be.greaterThan(0);","    });","    ","    // Visualization","    const template = `","    <style>","        body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; padding: 20px; background: #1a1a2e; color: #eee; }","        h1 { color: #ff6b35; border-bottom: 2px solid #ff6b35; padding-bottom: 10px; }","        h2 { color: #4ecdc4; margin-top: 30px; }","        h3 { color: #95a5a6; margin-top: 20px; }","        .summary-box { display: flex; gap: 20px; margin: 20px 0; flex-wrap: wrap; }","        .summary-card { background: #16213e; padding: 20px; border-radius: 10px; min-width: 200px; flex: 1; }","        .summary-card.positive { border-left: 4px solid #2ecc71; }","        .summary-card.negative { border-left: 4px solid #e74c3c; }","        .summary-card.total { border-left: 4px solid #3498db; }","        .summary-card h3 { margin: 0 0 10px 0; font-size: 14px; color: #95a5a6; }","        .summary-card .number { font-size: 36px; font-weight: bold; }","        .summary-card.positive .number { color: #2ecc71; }","        .summary-card.negative .number { color: #e74c3c; }","        .summary-card.total .number { color: #3498db; }","        table { width: 100%; border-collapse: collapse; margin: 15px 0; background: #16213e; border-radius: 8px; overflow: hidden; }","        th { background: #0f3460; color: #fff; padding: 12px; text-align: left; font-weight: 600; }","        td { padding: 10px 12px; border-bottom: 1px solid #1a1a2e; }","        tr:hover { background: #1f4068; }","        .pass { color: #2ecc71; font-weight: bold; }","        .fail { color: #e74c3c; font-weight: bold; }","        .warn { color: #f39c12; font-weight: bold; }","        .category-header { background: #0f3460; color: #4ecdc4; font-weight: bold; }","        .params { font-family: monospace; font-size: 12px; color: #95a5a6; max-width: 300px; word-break: break-all; }","        .status-badge { padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: bold; }","        .status-200 { background: #2ecc71; color: #fff; }","        .status-400 { background: #e74c3c; color: #fff; }","        .status-404 { background: #f39c12; color: #fff; }","        .status-other { background: #95a5a6; color: #fff; }","        .section { margin-bottom: 40px; }","        .chart-container { background: #16213e; padding: 20px; border-radius: 10px; margin: 20px 0; }","    </style>","    ","    <h1>🏒 Sports Teams API - Test Results</h1>","    ","    <div class=\"summary-box\">","        <div class=\"summary-card positive\">","            <h3>POSITIVE TESTS</h3>","            <div class=\"number\">{{positivePass}}/{{positiveTotal}}</div>","            <div>Valid combinations passed</div>","        </div>","        <div class=\"summary-card negative\">","            <h3>NEGATIVE TESTS</h3>","            <div class=\"number\">{{negativePass}}/{{negativeTotal}}</div>","            <div>Edge cases handled correctly</div>","        </div>","        <div class=\"summary-card total\">","            <h3>OVERALL</h3>","            <div class=\"number\">{{totalPass}}/{{totalTests}}</div>","            <div>Total tests</div>","        </div>","    </div>","    ","    <div class=\"chart-container\">","        <canvas id=\"summaryChart\" height=\"100\"></canvas>","    </div>","    ","    <div class=\"section\">","        <h2>✅ Positive Tests - Valid Parameter Combinations</h2>","        <table>","            <thead>","                <tr>","                    <th>#</th>","                    <th>Parameters</th>","                    <th>Status</th>","                    <th>Schema</th>","                    <th>Teams</th>","                    <th>Result</th>","                </tr>","            </thead>","            <tbody>","                {{#each positiveResults}}","                <tr>","                    <td>{{addOne @index}}</td>","                    <td class=\"params\">{{this.combination}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.schemaValid}}<span class=\"pass\">✅ Valid</span>{{else}}<span class=\"fail\">❌ Invalid</span>{{/if}}</td>","                    <td>{{this.teamsCount}}</td>","                    <td>{{#if this.success}}{{#if this.schemaValid}}<span class=\"pass\">PASS</span>{{else}}<span class=\"fail\">FAIL</span>{{/if}}{{else}}<span class=\"fail\">FAIL</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","    </div>","    ","    <div class=\"section\">","        <h2>🔴 Negative Tests - Edge Cases & Invalid Inputs</h2>","        ","        <h3>Invalid League Values</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.invalidLeagueValues}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Invalid SportId Values</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.invalidSportIdValues}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Invalid Season Values</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.invalidSeasonValues}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Empty Parameter Values</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.emptyParameterValues}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Special Characters (Security Tests)</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.specialCharacters}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Invalid Parameter Names (Case Sensitivity)</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.invalidParameterNames}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","        ","        <h3>Boundary Tests</h3>","        <table>","            <thead>","                <tr><th>Test</th><th>Parameters</th><th>Expected</th><th>Actual</th><th>Result</th></tr>","            </thead>","            <tbody>","                {{#each negativeByCategory.boundaryTests}}","                <tr>","                    <td>{{this.description}}</td>","                    <td class=\"params\">{{this.paramsStr}}</td>","                    <td>{{this.expectedStatus}}</td>","                    <td><span class=\"status-badge status-{{this.statusCode}}\">{{this.statusCode}}</span></td>","                    <td>{{#if this.handledCorrectly}}<span class=\"pass\">✅ Handled</span>{{else}}<span class=\"warn\">⚠️ Review</span>{{/if}}</td>","                </tr>","                {{/each}}","            </tbody>","        </table>","    </div>","    ","    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js\"></script>","    <script>","        pm.getData(function(err, value) {","            var ctx = document.getElementById('summaryChart').getContext('2d');","            new Chart(ctx, {","                type: 'bar',","                data: {","                    labels: ['Positive Tests', 'Negative Tests'],","                    datasets: [{","                        label: 'Passed',","                        data: [value.positivePass, value.negativePass],","                        backgroundColor: '#2ecc71'","                    }, {","                        label: 'Failed/Review',","                        data: [value.positiveTotal - value.positivePass, value.negativeTotal - value.negativePass],","                        backgroundColor: '#e74c3c'","                    }]","                },","                options: {","                    scales: {","                        xAxes: [{ stacked: true }],","                        yAxes: [{ stacked: true, ticks: { beginAtZero: true } }]","                    },","                    legend: { display: true, labels: { fontColor: '#fff' } },","                    title: { display: true, text: 'Test Results Summary', fontColor: '#fff' }","                }","            });","        });","    </script>","    `;","    ","    // Prepare data for visualization","    function groupByCategory(results) {","        const grouped = {};","        results.forEach(r => {","            if (!grouped[r.category]) grouped[r.category] = [];","            grouped[r.category].push({","                ...r,","                paramsStr: JSON.stringify(r.params).substring(0, 50)","            });","        });","        return grouped;","    }","    ","    // Add index helper for template","    const positiveResultsWithIndex = positiveResults.map((r, i) => ({","        ...r,","        addOne: i + 1","    }));","    ","    pm.visualizer.set(template, {","        positiveResults: positiveResults,","        negativeResults: negativeResults,","        negativeByCategory: groupByCategory(negativeResults),","        positivePass: positivePassCount,","        positiveTotal: positiveResults.length,","        negativePass: negativePassCount,","        negativeTotal: negativeResults.length,","        totalPass: positivePassCount + negativePassCount,","        totalTests: positiveResults.length + negativeResults.length","    });","})();"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"f095270a-9ca6-418c-8536-37b016bc5626","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports/teams","description":"<h3 id=\"get-sports-teams\">Get Sports Teams</h3>\n<p>This endpoint retrieves data for sports teams.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request can be documented as a JSON schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"array\",\n    \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n            \"id\": {\n                \"type\": \"integer\"\n            },\n            \"name\": {\n                \"type\": \"string\"\n            },\n            \"nameSK\": {\n                \"type\": \"string\"\n            },\n            \"shortcut\": {\n                \"type\": \"string\"\n            },\n            \"flagImg\": {\n                \"type\": \"string\"\n            },\n            \"jerseyHomeImg\": {\n                \"type\": \"string\"\n            },\n            \"jerseyAwayImg\": {\n                \"type\": \"string\"\n            },\n            \"league\": {\n                \"type\": \"string\"\n            },\n            \"seasons\": {\n                \"type\": \"array\",\n                \"items\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"name\": {\n                            \"type\": \"string\"\n                        },\n                        \"group\": {\n                            \"type\": \"string\"\n                        }\n                    }\n                }\n            },\n            \"sportId\": {\n                \"type\": \"integer\"\n            }\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["sports","teams"],"host":["https://api.bwrd.eu"],"query":[{"disabled":true,"description":{"content":"<p>NATIONAL, NHL</p>\n","type":"text/plain"},"key":"league","value":"NHL"},{"disabled":true,"description":{"content":"<p>number</p>\n","type":"text/plain"},"key":"sportId","value":"2"},{"disabled":true,"description":{"content":"<p>WCH2025, NHL24/25, WCH2024</p>\n","type":"text/plain"},"key":"season","value":"NHL24/25"}],"variable":[]}},"response":[{"id":"6273695c-cebf-4f86-b164-9b0176971e43","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:33:15 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"name\": \"Argentina\",\n        \"nameSK\": \"Argentina\",\n        \"shortcut\": \"ARG\",\n        \"flagImg\": \"\",\n        \"jerseyHomeImg\": \"\",\n        \"jerseyAwayImg\": \"\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2024\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 1\n    },\n    {\n        \"id\": 2,\n        \"name\": \"Slovakia\",\n        \"nameSK\": \"Slovensko\",\n        \"shortcut\": \"SVK\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/slovakia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/svk-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/svk-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 3,\n        \"name\": \"Canada\",\n        \"nameSK\": \"Kanada\",\n        \"shortcut\": \"CAN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/canada-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/can-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/can-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 4,\n        \"name\": \"Czechia\",\n        \"nameSK\": \"Česko\",\n        \"shortcut\": \"CZE\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/czechia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/cze-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/cze-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 5,\n        \"name\": \"Sweden\",\n        \"nameSK\": \"Švédsko\",\n        \"shortcut\": \"SWE\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/sweden-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/swe-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/swe-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 6,\n        \"name\": \"Finland\",\n        \"nameSK\": \"Fínsko\",\n        \"shortcut\": \"FIN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/finland-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/fin-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/fin-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 7,\n        \"name\": \"Switzerland\",\n        \"nameSK\": \"Švajčiarsko\",\n        \"shortcut\": \"SWI\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/switzerland-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/swi-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/swi-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 8,\n        \"name\": \"Germany\",\n        \"nameSK\": \"Nemecko\",\n        \"shortcut\": \"GER\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/germany-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/ger-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/ger-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 9,\n        \"name\": \"USA\",\n        \"nameSK\": \"USA\",\n        \"shortcut\": \"USA\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/usa-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/usa-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/usa-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 10,\n        \"name\": \"Latvia\",\n        \"nameSK\": \"Lotyšsko\",\n        \"shortcut\": \"LAT\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/latvia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/lat-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/lat-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 11,\n        \"name\": \"Kazachstan\",\n        \"nameSK\": \"Kazachstan\",\n        \"shortcut\": \"KAZ\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/kazakhstan-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/kaz-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/kaz-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 13,\n        \"name\": \"France\",\n        \"nameSK\": \"Francúzsko\",\n        \"shortcut\": \"FRA\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/france-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/fra-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/fra-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 14,\n        \"name\": \"Slovenia\",\n        \"nameSK\": \"Slovinsko \",\n        \"shortcut\": \"SLO\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/slovenia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/slo-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/slo-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 15,\n        \"name\": \"Denmark\",\n        \"nameSK\": \"Dánsko\",\n        \"shortcut\": \"DEN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/denmark-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/den-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/den-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 16,\n        \"name\": \"Hungary\",\n        \"nameSK\": \"Maďarsko\",\n        \"shortcut\": \"HUN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/hungary-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/hun-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/hun-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 17,\n        \"name\": \"Norway\",\n        \"nameSK\": \"Nórsko\",\n        \"shortcut\": \"NOR\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/norway-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/nor-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/nor-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 12,\n        \"name\": \"Austria\",\n        \"nameSK\": \"Rakúsko\",\n        \"shortcut\": \"AUS\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/austria-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/aut-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/aut-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    }\n]"},{"id":"528efd91-8682-43c4-8b07-255693346cf0","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?sportId=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"asdf","description":"number"},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:32:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"9f17a41e-0460-4a7b-965b-2db31562ed3f\",\n        \"message\": \"ID of sport has not valid format.\",\n        \"code\": 400,\n        \"timestamp\": \"2024-11-26T09:32:49.748Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"},{"id":"50c024b2-26cf-4c84-a070-f19dc9cef049","name":"404 Not Found League","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?league=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"asdf","description":"NATIONAL, NHL"},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:31:32 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"c258550f-26db-46f6-9d6c-1581cde43c65\",\n        \"message\": \"League asdf was not found or has incorrect format\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-26T09:31:32.668Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"},{"id":"279e9959-ef91-4a03-9578-8afd9f501ea6","name":"404 Not Found Season","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?season=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"asdf","description":"WCH2025, WCH2024"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:32:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"d0d68f94-97b3-4583-9feb-025e4fe95f56\",\n        \"message\": \"Season asdf was not found or has incorrect format\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-26T09:32:12.904Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"}],"_postman_id":"f095270a-9ca6-418c-8536-37b016bc5626"},{"name":"/sports/teams Copy","event":[{"listen":"test","script":{"id":"38acd592-95eb-469d-b845-0fbfa2a2175d","exec":["/***********************"," * CONFIGURATION"," ***********************/","const baseUrl = pm.request.url.toString().split('?')[0];","","// VALID OPTIONS","const leagues = [\"NATIONAL\", \"NHL\"];","const sportIds = [1, 2];","const seasons = [\"WCH2025\", \"NHL24/25\", \"WCH2024\"];","","// RESULTS STORAGE","let results = [];","","/***********************"," * JSON SCHEMA"," ***********************/","const schema = {","  type: \"array\",","  items: {","    type: \"object\",","    additionalProperties: false,","    required: [\"id\", \"name\", \"nameSK\", \"shortcut\", \"league\", \"seasons\", \"sportId\"],","    properties: {","      id: { type: \"integer\" },","      name: { type: \"string\" },","      nameSK: { type: \"string\" },","      shortcut: { type: \"string\" },","      league: { type: \"string\" },","      sportId: { type: \"integer\" },","      seasons: {","        type: \"array\",","        items: {","          type: \"object\",","          additionalProperties: false,","          required: [\"name\", \"group\"],","          properties: {","            name: { type: \"string\" },","            group: { type: \"string\" }","          }","        }","      }","    }","  }","};","","/***********************"," * VALID COMBINATIONS"," ***********************/","function testValidCombinations() {","  leagues.forEach(league => {","    sportIds.forEach(sportId => {","      seasons.forEach(season => {","        const url =","          `${baseUrl}?league=${league}&sportId=${sportId}&season=${encodeURIComponent(season)}`;","","        pm.sendRequest(url, (err, res) => {","          const label = `VALID → league=${league}, sportId=${sportId}, season=${season}`;","          let reason = \"\";","","          if (err) {","            reason = `Request error: ${err.message}`;","            results.push({ label, status: \"FAIL\", reason });","            console.log(\"❌\", label, \"|\", reason);","            return;","          }","","          if (res.code !== 200) {","            reason = `Expected HTTP 200, got ${res.code}`;","          }","","          try {","            pm.expect(res.json()).to.have.jsonSchema(schema);","          } catch (e) {","            reason += (reason ? \" | \" : \"\") + `Schema invalid: ${e.message}`;","          }","","          const passed = reason === \"\";","","          results.push({","            label,","            status: passed ? \"PASS\" : \"FAIL\",","            httpCode: res.code,","            reason: passed ? \"OK\" : reason","          });","","          console.log(","            passed ? \"✅\" : \"❌\",","            label,","            \"| HTTP:\", res.code,","            \"|\",","            passed ? \"OK\" : reason","          );","        });","      });","    });","  });","}","","/***********************"," * NEGATIVE & EDGE CASES"," ***********************/","const negativeCases = [","  { desc: \"Missing all params\", query: \"\" },","  { desc: \"Invalid league\", query: \"?league=NBA&sportId=1&season=WCH2025\" },","  { desc: \"Invalid sportId type\", query: \"?league=NHL&sportId=abc&season=WCH2025\" },","  { desc: \"Invalid season\", query: \"?league=NHL&sportId=1&season=INVALID\" },","  { desc: \"Empty params\", query: \"?league=&sportId=&season=\" },","  { desc: \"Extra param\", query: \"?league=NHL&sportId=1&season=WCH2025&foo=bar\" }","];","","function testNegativeCases() {","  negativeCases.forEach(c => {","    const url = baseUrl + c.query;","    const label = `NEGATIVE → ${c.desc}`;","","    pm.sendRequest(url, (err, res) => {","      let reason = \"\";","","      if (err) {","        reason = `Request error: ${err.message}`;","      } else if (res.code === 200) {","        reason = \"Expected non-200 status for negative case\";","      }","","      const passed = reason === \"\";","","      results.push({","        label,","        status: passed ? \"PASS\" : \"FAIL\",","        httpCode: res ? res.code : \"N/A\",","        reason: passed ? \"OK\" : reason","      });","","      console.log(","        passed ? \"✅\" : \"❌\",","        label,","        \"| HTTP:\", res ? res.code : \"N/A\",","        \"|\",","        passed ? \"OK\" : reason","      );","    });","  });","}","","/***********************"," * RUN ALL TESTS"," ***********************/","testValidCombinations();","testNegativeCases();","","/***********************"," * FINAL SUMMARY & ASSERTION"," ***********************/","setTimeout(() => {","  console.log(\"\\n===== FINAL TEST SUMMARY =====\");","","  results.forEach(r => {","    console.log(","      `${r.status === \"PASS\" ? \"✅\" : \"❌\"} ${r.label}`,","      `| HTTP: ${r.httpCode}`,","      `| Reason: ${r.reason}`","    );","  });","","  const failedValid = results.filter(","    r => r.label.startsWith(\"VALID\") && r.status === \"FAIL\"","  );","","  pm.test(\"All valid query combinations returned HTTP 200 and valid schema\", () => {","    pm.expect(","      failedValid.length,","      \"Failures:\\n\" + JSON.stringify(failedValid, null, 2)","    ).to.eql(0);","  });","}, 3000);",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"06cd1f1b-8e55-42c3-9538-64313a2bd5e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports/teams","description":"<h3 id=\"get-sports-teams\">Get Sports Teams</h3>\n<p>This endpoint retrieves data for sports teams.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request can be documented as a JSON schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"array\",\n    \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n            \"id\": {\n                \"type\": \"integer\"\n            },\n            \"name\": {\n                \"type\": \"string\"\n            },\n            \"nameSK\": {\n                \"type\": \"string\"\n            },\n            \"shortcut\": {\n                \"type\": \"string\"\n            },\n            \"flagImg\": {\n                \"type\": \"string\"\n            },\n            \"jerseyHomeImg\": {\n                \"type\": \"string\"\n            },\n            \"jerseyAwayImg\": {\n                \"type\": \"string\"\n            },\n            \"league\": {\n                \"type\": \"string\"\n            },\n            \"seasons\": {\n                \"type\": \"array\",\n                \"items\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"name\": {\n                            \"type\": \"string\"\n                        },\n                        \"group\": {\n                            \"type\": \"string\"\n                        }\n                    }\n                }\n            },\n            \"sportId\": {\n                \"type\": \"integer\"\n            }\n        }\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["sports","teams"],"host":["https://api.bwrd.eu"],"query":[{"disabled":true,"description":{"content":"<p>NATIONAL, NHL</p>\n","type":"text/plain"},"key":"league","value":"NHL"},{"disabled":true,"description":{"content":"<p>number</p>\n","type":"text/plain"},"key":"sportId","value":"2"},{"disabled":true,"description":{"content":"<p>WCH2025, NHL24/25, WCH2024</p>\n","type":"text/plain"},"key":"season","value":"NHL24/25"}],"variable":[]}},"response":[{"id":"82de55f7-06f7-4fd3-9e87-92d5ed8aa78a","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:33:15 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"name\": \"Argentina\",\n        \"nameSK\": \"Argentina\",\n        \"shortcut\": \"ARG\",\n        \"flagImg\": \"\",\n        \"jerseyHomeImg\": \"\",\n        \"jerseyAwayImg\": \"\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2024\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 1\n    },\n    {\n        \"id\": 2,\n        \"name\": \"Slovakia\",\n        \"nameSK\": \"Slovensko\",\n        \"shortcut\": \"SVK\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/slovakia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/svk-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/svk-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 3,\n        \"name\": \"Canada\",\n        \"nameSK\": \"Kanada\",\n        \"shortcut\": \"CAN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/canada-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/can-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/can-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 4,\n        \"name\": \"Czechia\",\n        \"nameSK\": \"Česko\",\n        \"shortcut\": \"CZE\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/czechia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/cze-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/cze-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 5,\n        \"name\": \"Sweden\",\n        \"nameSK\": \"Švédsko\",\n        \"shortcut\": \"SWE\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/sweden-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/swe-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/swe-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 6,\n        \"name\": \"Finland\",\n        \"nameSK\": \"Fínsko\",\n        \"shortcut\": \"FIN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/finland-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/fin-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/fin-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 7,\n        \"name\": \"Switzerland\",\n        \"nameSK\": \"Švajčiarsko\",\n        \"shortcut\": \"SWI\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/switzerland-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/swi-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/swi-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 8,\n        \"name\": \"Germany\",\n        \"nameSK\": \"Nemecko\",\n        \"shortcut\": \"GER\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/germany-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/ger-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/ger-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 9,\n        \"name\": \"USA\",\n        \"nameSK\": \"USA\",\n        \"shortcut\": \"USA\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/usa-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/usa-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/usa-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 10,\n        \"name\": \"Latvia\",\n        \"nameSK\": \"Lotyšsko\",\n        \"shortcut\": \"LAT\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/latvia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/lat-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/lat-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 11,\n        \"name\": \"Kazachstan\",\n        \"nameSK\": \"Kazachstan\",\n        \"shortcut\": \"KAZ\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/kazakhstan-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/kaz-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/kaz-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 13,\n        \"name\": \"France\",\n        \"nameSK\": \"Francúzsko\",\n        \"shortcut\": \"FRA\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/france-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/fra-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/fra-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 14,\n        \"name\": \"Slovenia\",\n        \"nameSK\": \"Slovinsko \",\n        \"shortcut\": \"SLO\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/slovenia-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/slo-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/slo-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"A\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 15,\n        \"name\": \"Denmark\",\n        \"nameSK\": \"Dánsko\",\n        \"shortcut\": \"DEN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/denmark-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/den-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/den-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 16,\n        \"name\": \"Hungary\",\n        \"nameSK\": \"Maďarsko\",\n        \"shortcut\": \"HUN\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/hungary-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/hun-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/hun-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 17,\n        \"name\": \"Norway\",\n        \"nameSK\": \"Nórsko\",\n        \"shortcut\": \"NOR\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/norway-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/nor-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/nor-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    },\n    {\n        \"id\": 12,\n        \"name\": \"Austria\",\n        \"nameSK\": \"Rakúsko\",\n        \"shortcut\": \"AUS\",\n        \"flagImg\": \"https://api.bwrd.eu/images/flags/austria-circle.svg\",\n        \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/aut-home.png\",\n        \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/aut-away.png\",\n        \"league\": \"NATIONAL\",\n        \"seasons\": [\n            {\n                \"name\": \"WCH2025\",\n                \"group\": \"B\"\n            }\n        ],\n        \"sportId\": 2\n    }\n]"},{"id":"8f88e80b-4349-4646-908d-07abcd1948af","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?sportId=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"asdf","description":"number"},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:32:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"9f17a41e-0460-4a7b-965b-2db31562ed3f\",\n        \"message\": \"ID of sport has not valid format.\",\n        \"code\": 400,\n        \"timestamp\": \"2024-11-26T09:32:49.748Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"},{"id":"63273cec-aa01-4d90-9899-1ec16e39bdf3","name":"404 Not Found League","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?league=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"asdf","description":"NATIONAL, NHL"},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"WCH2025","description":"WCH2025, WCH2024","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:31:32 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"c258550f-26db-46f6-9d6c-1581cde43c65\",\n        \"message\": \"League asdf was not found or has incorrect format\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-26T09:31:32.668Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"},{"id":"c9eb0478-0415-47a6-b70d-c1b64d77aaed","name":"404 Not Found Season","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams?season=asdf","host":["https://api.bwrd.eu"],"path":["sports","teams"],"query":[{"key":"league","value":"NATIONAL","description":"NATIONAL, NHL","disabled":true},{"key":"sportId","value":"2","description":"number","disabled":true},{"key":"season","value":"asdf","description":"WCH2025, WCH2024"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Tue, 26 Nov 2024 09:32:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"d0d68f94-97b3-4583-9feb-025e4fe95f56\",\n        \"message\": \"Season asdf was not found or has incorrect format\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-26T09:32:12.904Z\",\n        \"path\": \"/sports/teams\"\n    }\n}"}],"_postman_id":"06cd1f1b-8e55-42c3-9538-64313a2bd5e0"},{"name":"/sports/teams/{teamId}","id":"f6f68382-8154-4c72-a0b3-324a8e81c5fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/sports/teams/:teamId","description":"<h3 id=\"get-team-details\">Get Team Details</h3>\n<p>Endpoint to retrieve detailed data for a specific team based on the teamId.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: <code>https://api.bwrd.eu/sports/teams/:teamId</code></p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request can be represented as a JSON schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"integer\"\n    },\n    \"name\": {\n      \"type\": \"string\"\n    },\n    \"nameSK\": {\n      \"type\": \"string\"\n    },\n    \"shortcut\": {\n      \"type\": \"string\"\n    },\n    \"flagImg\": {\n      \"type\": \"string\"\n    },\n    \"jerseyHomeImg\": {\n      \"type\": \"string\"\n    },\n    \"jerseyAwayImg\": {\n      \"type\": \"string\"\n    },\n    \"league\": {\n      \"type\": \"string\"\n    },\n    \"seasons\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"name\": {\n            \"type\": \"string\"\n          },\n          \"group\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"sportId\": {\n      \"type\": \"integer\"\n    },\n    \"sport\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"integer\"\n        },\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"nameSK\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["sports","teams",":teamId"],"host":["https://api.bwrd.eu"],"query":[],"variable":[{"description":{"content":"<p>number</p>\n","type":"text/plain"},"type":"any","value":"2","key":"teamId"}]}},"response":[{"id":"ff12452e-0a12-49b6-8209-c2d46ee6bea0","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams/:teamId","host":["https://api.bwrd.eu"],"path":["sports","teams",":teamId"],"variable":[{"key":"teamId","value":"2","description":"number"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:09:33 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"name\": \"Slovakia\",\n    \"nameSK\": \"Slovensko\",\n    \"shortcut\": \"SVK\",\n    \"flagImg\": \"https://api.bwrd.eu/images/flags/slovakia-circle.svg\",\n    \"jerseyHomeImg\": \"https://api.bwrd.eu/images/jerseys/svk-home.png\",\n    \"jerseyAwayImg\": \"https://api.bwrd.eu/images/jerseys/svk-away.png\",\n    \"league\": \"NATIONAL\",\n    \"seasons\": [\n        {\n            \"name\": \"WCH2025\",\n            \"group\": \"A\"\n        }\n    ],\n    \"sportId\": 2,\n    \"sport\": {\n        \"id\": 2,\n        \"name\": \"Ice Hockey\",\n        \"nameSK\": \"Hokej\"\n    }\n}"},{"id":"e5982fbd-ae49-48bd-9d1c-46f82f5908b9","name":"400 Bad Request","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams/:teamId","host":["https://api.bwrd.eu"],"path":["sports","teams",":teamId"],"variable":[{"key":"teamId","value":"asdfg","description":"number"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:09:10 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"7ccf076c-e630-4183-af6e-571662fa131c\",\n        \"message\": \"ID of team has not valid format.\",\n        \"code\": 400,\n        \"timestamp\": \"2024-11-25T18:09:10.252Z\",\n        \"path\": \"/sports/teams/asdfg\"\n    }\n}"},{"id":"3aad52a8-c9a1-42b0-949a-fb827bf40662","name":"404 Not Found","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.bwrd.eu/sports/teams/:teamId","host":["https://api.bwrd.eu"],"path":["sports","teams",":teamId"],"variable":[{"key":"teamId","value":"333","description":"number"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"content-type","value":"application/json"},{"key":"Date","value":"Mon, 25 Nov 2024 18:07:15 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": {\n        \"id\": \"397d3338-c6b3-464f-9d3e-34e8dda4db01\",\n        \"message\": \"Team with id 333 not found.\",\n        \"code\": 404,\n        \"timestamp\": \"2024-11-25T18:07:15.713Z\",\n        \"path\": \"/sports/teams/333\"\n    }\n}"}],"_postman_id":"f6f68382-8154-4c72-a0b3-324a8e81c5fe"}],"id":"d4597dee-e367-466d-8057-4b9b400d43a0","_postman_id":"d4597dee-e367-466d-8057-4b9b400d43a0","description":""}],"id":"c9aee7e5-4211-4708-ae44-84ad39379dcd","_postman_id":"c9aee7e5-4211-4708-ae44-84ad39379dcd","description":""},{"name":"POKEMONS","item":[{"name":"/pokemons","id":"00f9efbe-1750-476c-8174-e05340e98155","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/pokemons","urlObject":{"path":["pokemons"],"host":["https://api.bwrd.eu"],"query":[],"variable":[]}},"response":[],"_postman_id":"00f9efbe-1750-476c-8174-e05340e98155"}],"id":"2f7c48b1-3108-44be-9dae-9cc9c02614e4","_postman_id":"2f7c48b1-3108-44be-9dae-9cc9c02614e4","description":""},{"name":"RANDOM_USERS","item":[{"name":"/random-users","id":"723195c6-6c04-4b38-bbaa-87d1048e8b99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/random-users","urlObject":{"path":["random-users"],"host":["https://api.bwrd.eu"],"query":[],"variable":[]}},"response":[],"_postman_id":"723195c6-6c04-4b38-bbaa-87d1048e8b99"}],"id":"bea99886-bf58-46fd-b54a-b88615c419b0","_postman_id":"bea99886-bf58-46fd-b54a-b88615c419b0","description":""},{"name":"FAKE-TOKEN","item":[{"name":"/fake-token","event":[{"listen":"test","script":{"id":"f72b8026-22ad-439c-bf89-6b31610c8fb3","exec":[""],"type":"text/javascript","packages":{}}}],"id":"2bd3e02f-500d-410c-9eef-a1603583c39b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"username\",\r\n    \"pass\": \"pass\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bwrd.eu/fake-token","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This HTTP POST request is used to obtain a fake token by providing a username and password in the request body.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><code>username</code> (string) - The username for authentication.</p>\n</li>\n<li><p><code>pass</code> (string) - The password for authentication.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will be in JSON format with the following properties:</p>\n<ul>\n<li><p><code>token</code> (string) - The fake token obtained.</p>\n</li>\n<li><p><code>token_type</code> (string) - The type of the fake token.</p>\n</li>\n<li><p><code>expires_in</code> (integer) - The expiration time of the fake token in seconds.</p>\n</li>\n</ul>\n<h3 id=\"json-schema-for-response\">JSON Schema for Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"object\",\n  \"properties\": {\n    \"token\": { \"type\": \"string\" },\n    \"token_type\": { \"type\": \"string\" },\n    \"expires_in\": { \"type\": \"integer\" }\n  }\n}\n\n</code></pre>\n","urlObject":{"path":["fake-token"],"host":["https://api.bwrd.eu"],"query":[],"variable":[]}},"response":[{"id":"a1bb56c0-420e-4666-bced-7dd2591fe392","name":"200 OK","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"username\",\r\n    \"pass\": \"pass\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bwrd.eu/fake-token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 15:58:11 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Accept-Encoding"},{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=spfnj24jyFmKepX4N6gtgQL%2BnP7VVfigoYVbWVjyuTe61Y4oHB827Br%2FO5YfoeHLpN%2Fb%2BZaywrHkGb37UTx3KRQmCWIhCxGDbcVuC1TlBMLuqQAUZcE3LDHvxrXFAg%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"8fbbf2fb0a5e5a71-VIE"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=16183&min_rtt=15883&rtt_var=6557&sent=4&recv=4&lost=0&retrans=0&sent_bytes=2799&recv_bytes=679&delivery_rate=158783&cwnd=249&unsent_bytes=0&cid=c4d1b6205bf144ae&ts=76&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"795f7b96-42de-453d-8a6c-68ec1e583d25\",\n    \"token_type\": \"bearer\",\n    \"expires_in\": 3600\n}"},{"id":"0be7b0a1-7648-4513-815a-ac4bbd96ab07","name":"400 Missing Param in Body","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"pass\": \"pass\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bwrd.eu/fake-token"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 15:59:36 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"40"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Accept-Encoding"},{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=gTy9ygxrgca9cbP18rY9930PckH1PNXbA77N2wTm9kr4e4qUhK1Z%2BLcD52WbnAdVmQH0jkFp%2Fd0cpG1FzidmdI79OVvmiYvYcwW%2FmiqWQDBG9UB%2FYL2%2FF3n1nZ%2FJyQ%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"8fbbf50b9afbc30c-VIE"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=17752&min_rtt=17438&rtt_var=6763&sent=4&recv=5&lost=0&retrans=0&sent_bytes=2799&recv_bytes=655&delivery_rate=166532&cwnd=244&unsent_bytes=0&cid=5384e212e889d215&ts=69&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid username or password\"\n}"},{"id":"6de223a3-2ce8-4918-a60a-a296f1b7d4c5","name":"400 Invalid Body","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.bwrd.eu/fake-token"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 02 Jan 2025 16:01:00 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"53"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Accept-Encoding"},{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=MBHVhsq8LpVF5QFol4TKm8BON4HaU%2BFk5HGr8TuTmZcFDWQg8Oq4vdrTsLx2b18R0V5ZjmcA3bbOozul5bwJTbingUbynnth2HJ111NQoikzwcpIsdNcHIMnMV1U%2FA%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"8fbbf718499d5bb7-VIE"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=17366&min_rtt=16987&rtt_var=6641&sent=4&recv=5&lost=0&retrans=0&sent_bytes=2799&recv_bytes=593&delivery_rate=170954&cwnd=237&unsent_bytes=0&cid=49db77a9eaa949d2&ts=67&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Request body is missing or not valid JSON\"\n}"}],"_postman_id":"2bd3e02f-500d-410c-9eef-a1603583c39b"}],"id":"c3e168eb-1255-4725-9801-8d3969cb5a63","_postman_id":"c3e168eb-1255-4725-9801-8d3969cb5a63","description":""},{"name":"DATA-TYPES","item":[{"name":"/data-types","event":[{"listen":"test","script":{"id":"7901b73b-6dc6-45a0-a835-1569a054689e","exec":[""],"type":"text/javascript","packages":{}}}],"id":"c4e099af-253e-452b-a512-ec7afa93da98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.bwrd.eu/data-types","description":"<h3 id=\"retrieve-data-types\">Retrieve Data Types</h3>\n<p>This endpoint allows you to retrieve the data types associated with a user's profile, including user details, settings, friends, achievements, and recent games.</p>\n<p><strong>Request Body</strong><br />This is a GET request, so there is no request body.</p>\n<p><strong>Response Body</strong></p>\n<ul>\n<li><p><code>status</code> (string): Indicates the status of the response.</p>\n</li>\n<li><p><code>data</code> (object):</p>\n<ul>\n<li><p><code>user</code> (object): Contains the user's profile information.</p>\n<ul>\n<li><p><code>id</code> (number): The user's unique identifier.</p>\n</li>\n<li><p><code>username</code> (string): The user's username.</p>\n</li>\n<li><p><code>email</code> (string): The user's email address.</p>\n</li>\n<li><p><code>isOnline</code> (boolean): Indicates whether the user is currently online.</p>\n</li>\n<li><p><code>profile</code> (object): Contains the user's profile details.</p>\n<ul>\n<li><p><code>avatar</code> (string): URL of the user's avatar.</p>\n</li>\n<li><p><code>bio</code> (string): The user's biography.</p>\n</li>\n</ul>\n</li>\n<li><p><code>settings</code> (object): Contains the user's settings.</p>\n<ul>\n<li><p><code>preferences</code> (object): Contains the user's preferences.</p>\n<ul>\n<li><p><code>graphics</code> (object): Contains graphics settings.</p>\n<ul>\n<li><p><code>resolution</code> (string): The display resolution.</p>\n</li>\n<li><p><code>vSyncEnabled</code> (boolean): Indicates whether V-Sync is enabled.</p>\n</li>\n<li><p><code>antiAliasing</code> (number): The level of anti-aliasing.</p>\n</li>\n<li><p><code>rayTracing</code> (boolean): Indicates whether ray tracing is enabled.</p>\n</li>\n</ul>\n</li>\n<li><p><code>audio</code> (object): Contains audio settings.</p>\n<ul>\n<li><p><code>volume</code> (number): The volume level.</p>\n</li>\n<li><p><code>muteBackgroundMusic</code> (boolean): Indicates whether background music is muted.</p>\n</li>\n<li><p><code>surroundSound</code> (boolean): Indicates whether surround sound is enabled.</p>\n</li>\n</ul>\n</li>\n<li><p><code>controls</code> (object): Contains control settings.</p>\n<ul>\n<li><p><code>mouseSensitivity</code> (number): The mouse sensitivity level.</p>\n</li>\n<li><p><code>invertYAxis</code> (boolean): Indicates whether the Y-axis is inverted.</p>\n</li>\n<li><p><code>customKeybindings</code> (array): Contains custom keybindings.</p>\n<ul>\n<li><p><code>action</code> (string): The action associated with the keybinding.</p>\n</li>\n<li><p><code>key</code> (string): The key assigned to the action.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><code>friends</code> (array): Contains the user's friends list.</p>\n<ul>\n<li><p><code>friendId</code> (number): The friend's unique identifier.</p>\n</li>\n<li><p><code>username</code> (string): The friend's username.</p>\n</li>\n<li><p><code>status</code> (string): The status of the friendship.</p>\n</li>\n</ul>\n</li>\n<li><p><code>achievements</code> (array): Contains the user's achievements.</p>\n<ul>\n<li><p><code>achievementId</code> (number): The achievement's unique identifier.</p>\n</li>\n<li><p><code>name</code> (string): The name of the achievement.</p>\n</li>\n<li><p><code>description</code> (string): The description of the achievement.</p>\n</li>\n<li><p><code>earnedDate</code> (string): The date when the achievement was earned.</p>\n</li>\n</ul>\n</li>\n<li><p><code>recentGames</code> (array): Contains the user's recent games.</p>\n<ul>\n<li><p><code>gameId</code> (number): The game's unique identifier.</p>\n</li>\n<li><p><code>title</code> (string): The title of the game.</p>\n</li>\n<li><p><code>genre</code> (string): The genre of the game.</p>\n</li>\n<li><p><code>platform</code> (array): The platforms on which the game is available.</p>\n</li>\n<li><p><code>playTimeHours</code> (number): The playtime in hours.</p>\n</li>\n<li><p><code>isInstalled</code> (boolean): Indicates whether the game is installed.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><code>metadata</code> (object): Contains metadata about the response.</p>\n<ul>\n<li><p><code>requestId</code> (string): The unique identifier of the request.</p>\n</li>\n<li><p><code>timestamp</code> (string): The timestamp of the response.</p>\n</li>\n<li><p><code>apiVersion</code> (string): The version of the API.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["data-types"],"host":["api","bwrd","eu"],"query":[],"variable":[]}},"response":[{"id":"a6eeb497-5c8b-45c6-86b7-43d11b92adf5","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":"https://api.bwrd.eu/data-types"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 18 Jan 2025 13:35:54 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"vary","value":"Accept-Encoding"},{"key":"vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=pRsGbWl2RXpnyPgHPVrSwe3OJamDUrUmyGX%2B4ZezeHatJ%2Fylp8FRFKatgVl9YkmYiV6OzCQkxcSn6cKH7G05gvU9T1P3e1V0TWbHyPZt1Hyp%2BtydyGA8jrD3Acw70Q%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"903ef88a8f415b83-VIE"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=29340&min_rtt=29340&rtt_var=14670&sent=6&recv=6&lost=0&retrans=1&sent_bytes=4146&recv_bytes=573&delivery_rate=17141&cwnd=252&unsent_bytes=0&cid=75134ce640a7d64b&ts=393&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"user\": {\n            \"id\": 101,\n            \"username\": \"GamerMaster42\",\n            \"email\": \"gamer42@example.com\",\n            \"isOnline\": true,\n            \"profile\": {\n                \"avatar\": \"https://example.com/avatars/user101.png\",\n                \"bio\": \"Competitive gamer and streamer specializing in FPS games.\"\n            },\n            \"settings\": {\n                \"preferences\": {\n                    \"graphics\": {\n                        \"resolution\": \"1920x1080\",\n                        \"vSyncEnabled\": true,\n                        \"antiAliasing\": 4,\n                        \"rayTracing\": false\n                    },\n                    \"audio\": {\n                        \"volume\": 80,\n                        \"muteBackgroundMusic\": false,\n                        \"surroundSound\": true\n                    },\n                    \"controls\": {\n                        \"mouseSensitivity\": 2.5,\n                        \"invertYAxis\": false,\n                        \"customKeybindings\": [\n                            {\n                                \"action\": \"jump\",\n                                \"key\": \"Space\"\n                            },\n                            {\n                                \"action\": \"reload\",\n                                \"key\": \"R\"\n                            },\n                            {\n                                \"action\": \"crouch\",\n                                \"key\": \"Ctrl\"\n                            }\n                        ]\n                    }\n                }\n            },\n            \"friends\": [\n                {\n                    \"friendId\": 202,\n                    \"username\": \"PixelWarrior77\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 203,\n                    \"username\": \"NoScopeLegend\",\n                    \"status\": \"offline\"\n                },\n                {\n                    \"friendId\": 204,\n                    \"username\": \"DragonSlayerX\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 205,\n                    \"username\": \"StealthNinja\",\n                    \"status\": \"offline\"\n                },\n                {\n                    \"friendId\": 206,\n                    \"username\": \"ArcadeChampion\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 207,\n                    \"username\": \"RetroPlayer99\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 208,\n                    \"username\": \"BattleMage\",\n                    \"status\": \"offline\"\n                },\n                {\n                    \"friendId\": 209,\n                    \"username\": \"CyberSnipe\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 210,\n                    \"username\": \"ShadowHunter\",\n                    \"status\": \"offline\"\n                },\n                {\n                    \"friendId\": 211,\n                    \"username\": \"WarriorKing\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 212,\n                    \"username\": \"RacerPro77\",\n                    \"status\": \"online\"\n                },\n                {\n                    \"friendId\": 213,\n                    \"username\": \"AlienDestroyer\",\n                    \"status\": \"offline\"\n                }\n            ],\n            \"achievements\": [\n                {\n                    \"achievementId\": 1,\n                    \"name\": \"First Blood\",\n                    \"description\": \"Win your first multiplayer match.\",\n                    \"earnedDate\": \"2024-11-20T15:30:00Z\"\n                },\n                {\n                    \"achievementId\": 2,\n                    \"name\": \"Marathon Runner\",\n                    \"description\": \"Play for 100 hours total.\",\n                    \"earnedDate\": \"2025-01-10T09:45:00Z\"\n                },\n                {\n                    \"achievementId\": 3,\n                    \"name\": \"Sharpshooter\",\n                    \"description\": \"Achieve 50 headshot kills.\",\n                    \"earnedDate\": \"2025-01-12T14:20:00Z\"\n                },\n                {\n                    \"achievementId\": 4,\n                    \"name\": \"Collector\",\n                    \"description\": \"Unlock 50 unique in-game items.\",\n                    \"earnedDate\": \"2025-01-15T18:10:00Z\"\n                },\n                {\n                    \"achievementId\": 5,\n                    \"name\": \"Speedrunner\",\n                    \"description\": \"Complete the game under 3 hours.\",\n                    \"earnedDate\": \"2025-01-16T21:00:00Z\"\n                }\n            ],\n            \"recentGames\": [\n                {\n                    \"gameId\": 301,\n                    \"title\": \"CyberQuest: Awakening\",\n                    \"genre\": \"RPG\",\n                    \"platform\": [\n                        \"PC\",\n                        \"PS5\"\n                    ],\n                    \"playTimeHours\": 120.5,\n                    \"isInstalled\": true\n                },\n                {\n                    \"gameId\": 302,\n                    \"title\": \"StrikeZone: Elite Forces\",\n                    \"genre\": \"FPS\",\n                    \"platform\": [\n                        \"PC\"\n                    ],\n                    \"playTimeHours\": 35,\n                    \"isInstalled\": false\n                },\n                {\n                    \"gameId\": 303,\n                    \"title\": \"Mystic Realms: Enchanted Lands\",\n                    \"genre\": \"Adventure\",\n                    \"platform\": [\n                        \"PC\",\n                        \"Xbox\"\n                    ],\n                    \"playTimeHours\": 50.75,\n                    \"isInstalled\": true\n                },\n                {\n                    \"gameId\": 304,\n                    \"title\": \"Tower Defense Ultimate\",\n                    \"genre\": \"Strategy\",\n                    \"platform\": [\n                        \"PC\"\n                    ],\n                    \"playTimeHours\": 25,\n                    \"isInstalled\": true\n                },\n                {\n                    \"gameId\": 305,\n                    \"title\": \"Speed Racer: Turbo Tracks\",\n                    \"genre\": \"Racing\",\n                    \"platform\": [\n                        \"PC\",\n                        \"Switch\"\n                    ],\n                    \"playTimeHours\": 15.5,\n                    \"isInstalled\": false\n                }\n            ]\n        },\n        \"metadata\": {\n            \"requestId\": \"req-7890abcdef\",\n            \"timestamp\": \"2025-01-17T12:00:00Z\",\n            \"apiVersion\": \"1.3.5\"\n        }\n    }\n}"}],"_postman_id":"c4e099af-253e-452b-a512-ec7afa93da98"}],"id":"ae621105-050e-48c6-8969-e1bb42e07982","description":"<p>StartFragmentThis endpoint demonstrates a comprehensive example of a JSON response containing various data types, nested objects, and arrays. It is intended for educational or reference purposes, highlighting the structure and versatility of API responses using a PC gaming theme.EndFragment</p>\n","_postman_id":"ae621105-050e-48c6-8969-e1bb42e07982"}],"event":[{"listen":"prerequest","script":{"id":"e10cb588-3bfc-429d-adbe-9f0e1c650405","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"0e23fe79-24b0-4ee5-a979-7deb343b7260","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"baseUrl","value":"http://localhost:3000","type":"string","disabled":true},{"key":"baseUrl","value":"https://api.bwrd.eu","type":"string"}]}