parent
a586a0fbc7
commit
581d21d316
@ -1,3 +1,4 @@ |
|||||||
<p><a href="/api">API docs</a></p> |
<p><a href="/api">API docs</a></p> |
||||||
<p><a href="/api-json">OpenAPI specification</a></p> |
<p><a href="/api-json">OpenAPI specification</a></p> |
||||||
|
<p><a href="/spa">Single-page application</a></p> |
||||||
<p><a href="/simpleform">Simple form</a></p> |
<p><a href="/simpleform">Simple form</a></p> |
||||||
|
@ -0,0 +1,96 @@ |
|||||||
|
<html> |
||||||
|
<head> |
||||||
|
<script> |
||||||
|
const postData = async (url, data) => { |
||||||
|
return fetch(url, { |
||||||
|
method: 'POST', |
||||||
|
headers: { |
||||||
|
'Content-Type': 'application/json', |
||||||
|
}, |
||||||
|
body: JSON.stringify(data), |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
const wrap = (asyncFunction) => (e) => { |
||||||
|
e.preventDefault() |
||||||
|
asyncFunction().catch((err) => alert(err)) |
||||||
|
} |
||||||
|
|
||||||
|
const submitJob = wrap(async () => { |
||||||
|
document.getElementById('inputJobId').value = '' |
||||||
|
|
||||||
|
const response = await postData('/screenshots', { |
||||||
|
pageUrl: document.getElementById('inputPageUrl').value, |
||||||
|
imageType: document.getElementById('inputImageType').value, |
||||||
|
}) |
||||||
|
|
||||||
|
if (!response.ok) { |
||||||
|
alert(`${response.status} ${response.statusText}`) |
||||||
|
return |
||||||
|
} |
||||||
|
|
||||||
|
const { jobId } = await response.json() |
||||||
|
document.getElementById('inputJobId').value = jobId |
||||||
|
}) |
||||||
|
|
||||||
|
const checkJob = wrap(async () => { |
||||||
|
document.getElementById('imageJobResult').src = 'about:blank' |
||||||
|
|
||||||
|
const response = await fetch(`/screenshots/${document.getElementById('inputJobId').value}`) |
||||||
|
|
||||||
|
if (!response.ok) { |
||||||
|
alert(`${response.status} ${response.statusText}`) |
||||||
|
return |
||||||
|
} |
||||||
|
|
||||||
|
const { status } = await response.json() |
||||||
|
document.getElementById('placeholderJobStatus').innerText = status |
||||||
|
|
||||||
|
if (status === 'completed') { |
||||||
|
document.getElementById('imageJobResult').src = `/screenshots/${document.getElementById('inputJobId').value}/result` |
||||||
|
} |
||||||
|
}) |
||||||
|
</script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<h3>Create a new job</h3> |
||||||
|
<form action="#" onsubmit="submitJob(event)"> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td>URL</td> |
||||||
|
<td><input type="text" name="pageUrl" value="https://suricrasia.online/" id="inputPageUrl"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td>Type</td> |
||||||
|
<td><input type="text" name="imageType" value="png" id="inputImageType"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td> </td> |
||||||
|
<td><input type="submit"></td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</form> |
||||||
|
|
||||||
|
<h3>Check job status</h3> |
||||||
|
<form action="#" onsubmit="checkJob(event)"> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td>Job ID</td> |
||||||
|
<td><input type="text" name="jobId" id="inputJobId"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td> </td> |
||||||
|
<td><input type="submit"></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td>Status</td> |
||||||
|
<td><span id="placeholderJobStatus"></span></td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td>Result</td> |
||||||
|
<td><img src="about:blank" id="imageJobResult"></td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</form> |
||||||
|
</body> |
||||||
|
</html> |
Loading…
Reference in new issue