<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>