vreksam/WebApi/index.html

121 lines
3.9 KiB
HTML

<h1><a href="/api/foorum">/api/foorum</a></h1>
<br/>
<button onclick="getForum(prompt('ForumId: ', '1'))">GetForum</button>
<button onclick="getForums()">GetAllForums</button>
<button onclick="addForum(prompt('Title: ', 'Uus foorum'), 'kirjeldus', 'Äge body', prompt('Author:', 'Javascript'))">AddForum</button>
<button onclick="changeForumTitle(prompt('ForumId: ', '1'), prompt('ForumTitle: ', 'Muudetud'))">ChangeForumTitle</button>
<br/>
<button onclick="deleteForum(prompt('ForumId: ', '1'), true)">DeleteForum</button>
<button onclick="deleteForum(prompt('ForumId: ', '1'), false)">HideForum</button>
<br/>
<button onclick="searchForum('author', prompt('Author: ', 'veeb'))">SearchForumAuthor</button>
<button onclick="searchForum('title', prompt('Title: ', 'test'))">SearchForumTitle</button>
<button onclick="searchForum('authorPosts', prompt('Author: ', 'test'))">SearchAuthorPosts</button>
<br/>
<button onclick="addPost(prompt('ForumId', '1'), prompt('Title:', 'Best title'), prompt('Body', 'Lahe post'), prompt('Author', 'Ajax'))">AddPost</button>
<code><pre id="output"></pre></code>
<script>
var out = document.getElementById("output");
function getForum(id) {
fetch("/api/foorum/"+id).then(resp => {
return resp.json();
}).then(data => {
console.log(data);
out.innerText = JSON.stringify(data, null, 2);
});
}
function getForums() {
fetch("/api/foorum").then(resp => {
return resp.json();
}).then(data => {
console.log(data);
out.innerText = JSON.stringify(data, null, 2);
});
}
function addForum(title, description, body, author) {
if (title == null) throw new Error("title unset");
if (description == null) throw new Error("description unset");
if (body == null) throw new Error("body unset");
if (author == null) throw new Error("author unset");
var dto = {
Author: author,
Body: body,
Description: description,
Title: title
}
fetch("/api/foorum",
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(dto)
}).then(resp => getForums());
}
function changeForumTitle(id, title) {
var dto = {
Title: title
}
fetch("/api/foorum/"+id,
{
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(dto)
});
}
function deleteForum(id, permanent) {
if (id == null) throw new Error("Forum id is unset");
var q = "";
if (permanent) {
q = "?permanent=true";
}
fetch("/api/foorum/" + id + q, { method: 'DELETE' })
.then(resp => getForums());
}
function searchForum(what, author) {
fetch("/api/search?"+what+"="+author).then(resp => {
return resp.json();
}).then(data => {
console.log(data);
out.innerText = JSON.stringify(data, null, 2);
});
}
function addPost(id, title, body, author) {
if (id == null) throw new Error("forum id is unset");
if (title == null) throw new Error("title is unset");
if (body == null) throw new Error("body is unset");
if (author == null) throw new Error("author is unset");
var dto = {
Author: author,
Body: body,
Title: title
}
fetch("/api/foorum/"+id,
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(dto)
}).then(resp => getForum(id));
}
getForums();
</script>