function generateExamples(endpoint, method, body = null) { let curlBodyString = ''; let psBodyString = ''; if (body) { const curlJsonString = JSON.stringify(body).replace(/"/g, '\\"'); curlBodyString = ` -d "${curlJsonString}"`; psBodyString = `-Body (ConvertTo-Json ${JSON.stringify(body)})`; } return { cURL: `curl -u user:pass -X ${method.trim()} -k https://localhost:47990${endpoint.trim()}${curlBodyString}`, Python: `import json import requests from requests.auth import HTTPBasicAuth requests.${method.trim().toLowerCase()}( auth=HTTPBasicAuth('user', 'pass'), url='https://localhost:47990${endpoint.trim()}', verify=False,${body ? `\n json=${JSON.stringify(body)},` : ''} ).json()`, JavaScript: `fetch('https://localhost:47990${endpoint.trim()}', { method: '${method.trim()}', headers: { 'Authorization': 'Basic ' + btoa('user:pass'), 'Content-Type': 'application/json', }${body ? `,\n body: JSON.stringify(${JSON.stringify(body)}),` : ''} }) .then(response => response.json()) .then(data => console.log(data));`, PowerShell: `Invoke-RestMethod \` -SkipCertificateCheck \` -Uri 'https://localhost:47990${endpoint.trim()}' \` -Method ${method.trim()} \` -Headers @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes('user:pass'))} ${psBodyString}` }; } function hashString(str) { let hash = 0; for (let i = 0; i < str.length; i++) { const char = str.charCodeAt(i); hash = (hash << 5) - hash + char; hash |= 0; // Convert to 32bit integer } return hash; } function createTabs(examples) { const languages = Object.keys(examples); let tabs = '
'; let content = '
'; languages.forEach((lang, index) => { const hash = hashString(examples[lang]); tabs += ``; content += `
${examples[lang].split('\n').map(line => `
${line}
`).join('')}
`; }); tabs += '
'; content += '
'; setTimeout(() => { languages.forEach((lang, index) => { const hash = hashString(examples[lang]); const copyButton = document.getElementById(`copy-button-${lang}-${hash}`); copyButton.addEventListener('click', copyContent); }); }, 0); return tabs + content; } function copyContent() { const content = this.previousElementSibling.cloneNode(true); if (content instanceof Element) { // filter out line number from file listings content.querySelectorAll(".lineno, .ttc").forEach((node) => { node.remove(); }); let textContent = Array.from(content.querySelectorAll('.line')) .map(line => line.innerText) .join('\n') .trim(); // Join lines with newline characters and trim leading/trailing whitespace navigator.clipboard.writeText(textContent); this.classList.add("success"); this.innerHTML = ``; window.setTimeout(() => { this.classList.remove("success"); this.innerHTML = ``; }, 980); } else { console.error('Failed to copy: content is not a DOM element'); } } function openTab(evt, lang) { const tabcontent = document.getElementsByClassName("tabcontent"); for (const content of tabcontent) { content.style.display = "none"; } const tablinks = document.getElementsByClassName("tab-button"); for (const link of tablinks) { link.className = link.className.replace(" active", ""); } const selectedTabs = document.querySelectorAll(`#${lang}`); for (const tab of selectedTabs) { tab.style.display = "block"; } const selectedButtons = document.querySelectorAll(`.tab-button[onclick*="${lang}"]`); for (const button of selectedButtons) { button.className += " active"; } }