diff --git a/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPClient.kt b/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPClient.kt new file mode 100644 index 0000000000000000000000000000000000000000..89f894f8797856207d9ed05a0b7bd165999118fa --- /dev/null +++ b/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPClient.kt @@ -0,0 +1,13 @@ +package de.thk.gm.gdw.todolist + +import java.net.URI +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse + +fun main (args: Array<String>) { + val client = HttpClient.newBuilder().build(); + val request = HttpRequest.newBuilder().GET().header("Test","test").uri(URI.create("https://postman-echo.com/get")).build() + val response = client.send(request, HttpResponse.BodyHandlers.ofString()) + println(response.body()) +} \ No newline at end of file diff --git a/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPRequests.http b/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPRequests.http new file mode 100644 index 0000000000000000000000000000000000000000..5d7dedc1d2e4862fccd3f3ad24c25bc64e1ee5a1 --- /dev/null +++ b/src/main/kotlin/de/thk/gm/gdw/todolist/HTTPRequests.http @@ -0,0 +1,5 @@ +### GET request to example server +GET https://postman-echo.com/get +Test: test +Host: test.de +### \ No newline at end of file diff --git a/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/GreetingsController.kt b/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/GreetingsController.kt new file mode 100644 index 0000000000000000000000000000000000000000..881ef5233afd0ea31119900fa1b99cf4e46df9e3 --- /dev/null +++ b/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/GreetingsController.kt @@ -0,0 +1,14 @@ +package de.thk.gm.gdw.todolist.controllers + +import org.springframework.stereotype.Controller +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.ResponseBody + +@Controller +class GreetingsController { + @GetMapping("/greetings") + @ResponseBody + fun greetings(name: String): String { + return "Hallo $name" + } +} \ No newline at end of file diff --git a/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/TasksController.kt b/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/TasksController.kt new file mode 100644 index 0000000000000000000000000000000000000000..5fb79314d55a468d486dd5ec54fd3278e3a654f8 --- /dev/null +++ b/src/main/kotlin/de/thk/gm/gdw/todolist/controllers/TasksController.kt @@ -0,0 +1,50 @@ +package de.thk.gm.gdw.todolist.controllers + +import de.thk.gm.gdw.todolist.models.Task +import org.springframework.http.HttpStatus +import org.springframework.stereotype.Controller +import org.springframework.web.bind.annotation.* +import java.util.* +import kotlin.collections.ArrayList + +@Controller +class TasksController { + + private var tasks : ArrayList<Task> = ArrayList() + + @PostMapping("/tasks") + @ResponseStatus(HttpStatus.CREATED) + fun createTask(name: String) { + var task = Task() + task.name = name + tasks.add(task) + } + + @GetMapping("/tasks") + @ResponseBody + fun getTasks() : String { + return tasks.joinToString(",") + } + + @GetMapping("/tasks/{id}") + @ResponseBody + fun getTaskById(@PathVariable("id") id: UUID) : String { + val task = tasks.find { it.id == id } + return task.toString() + + } + + @PutMapping("/tasks/{id}") + @ResponseStatus(HttpStatus.NO_CONTENT) + fun updateTask(@PathVariable("id") id: UUID, name: String) { + var task = tasks.find { it.id == id } + task!!.name = name + } + + @DeleteMapping("/tasks/{id}") + @ResponseStatus(HttpStatus.NO_CONTENT) + fun deleteTask(@PathVariable("id") id: UUID) { + var task = tasks.find { it.id == id } + tasks.remove(task) + } +} \ No newline at end of file diff --git a/src/main/kotlin/de/thk/gm/gdw/todolist/models/Task.kt b/src/main/kotlin/de/thk/gm/gdw/todolist/models/Task.kt new file mode 100644 index 0000000000000000000000000000000000000000..b18e40166f777091531d4b434ddf05df4055f1f5 --- /dev/null +++ b/src/main/kotlin/de/thk/gm/gdw/todolist/models/Task.kt @@ -0,0 +1,12 @@ +package de.thk.gm.gdw.todolist.models + +import java.util.* + +class Task { + val id : UUID = UUID.randomUUID() + var name : String = "" + + override fun toString(): String { + return "[$id, $name]" + } +} \ No newline at end of file