더북(TheBook)
    fun fetchListContent(listId: Pair<User, ListName>): ToDoList = 
        lists[listId.first]
        ?.firstOrNull { it.listName == listId.second }
        ?: error("List unknown")

    fun renderHtml(todoList: ToDoList): HtmlPage = 
        HtmlPage("""
        <html>
            <body>
                <h1>Zettai</h1>
                <h2>${todoList.listName.name}</h2>
                <table>
                    <tbody>${renderItems(todoList.items)}</tbody>
                </table>
            </body>
        </html>
        """.trimIndent()
    )
    fun renderItems(items: List<ToDoItem>) =
        items.map {
            """<tr><td>${it.description}</td></tr>""".trimIndent()
        }.joinToString("")

    fun createResponse(html: HtmlPage): Response = 
        Response(Status.OK).body(html.raw)
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.