Skip to content
Snippets Groups Projects
Commit 82b00e44 authored by Hoai Viet Nguyen's avatar Hoai Viet Nguyen
Browse files

revert TasksController

parent 597b2dda
Branches demo_repositories_and_entity_video
No related tags found
1 merge request!1Association with user entity video
......@@ -2,18 +2,15 @@ package de.thk.gm.gdw.todolist.controllers
import de.thk.gm.gdw.todolist.models.Task
import de.thk.gm.gdw.todolist.repositories.TasksRepository
import de.thk.gm.gdw.todolist.services.TasksService
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpStatus
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.*
import org.springframework.web.server.ResponseStatusException
import java.util.*
import kotlin.collections.ArrayList
@Controller
class TasksController (private val tasksService: TasksService) {
class TasksController (private val tasksRepository: TasksRepository) {
@PostMapping("/tasks")
@ResponseBody
......@@ -21,44 +18,34 @@ class TasksController (private val tasksService: TasksService) {
fun saveTask(name : String) {
var task = Task()
task.name = name
tasksService.save(task)
tasksRepository.save(task)
}
@GetMapping("/tasks")
@ResponseBody
fun getTasks() : String {
var tasks = tasksService.getAll()
val tasks = tasksRepository.findByOpenTrue()
return tasks.joinToString(",")
}
@GetMapping("/tasks/{id}")
@ResponseBody
fun getTaskById(@PathVariable("id") id : UUID) : String {
val task : Task? = tasksService.getById(id)
if(task == null) {
throw ResponseStatusException(HttpStatus.NOT_FOUND, "Task not found")
}
val task : Task? = tasksRepository.findByIdOrNull(id)
return task!!.name
}
@PutMapping("/tasks/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun updateTask(@PathVariable("id") id : UUID, name : String) {
val task : Task? = tasksService.getById(id)
if(task == null) {
throw ResponseStatusException(HttpStatus.NOT_FOUND, "Task not found")
}
val task : Task? = tasksRepository.findByIdOrNull(id)
task!!.name = name
tasksService.save(task)
}
@DeleteMapping("/tasks/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun deleteTask(@PathVariable("id") id : UUID) {
val task : Task? = tasksService.getById(id)
if(task == null) {
throw ResponseStatusException(HttpStatus.NOT_FOUND, "Task not found")
}
tasksService.delete(id)
tasksRepository.deleteById(id)
}
}
\ No newline at end of file
package de.thk.gm.gdw.todolist.services
import de.thk.gm.gdw.todolist.models.Task
import org.springframework.http.HttpStatus
import org.springframework.stereotype.Service
import org.springframework.web.server.ResponseStatusException
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.util.*
@Service
class TaskServiceImplExternal : TasksService {
override fun getAll(): List<Task> {
TODO("Not yet implemented")
}
override fun getAll(open: Boolean): List<Task> {
TODO("Not yet implemented")
}
override fun getById(id: UUID): Task? {
TODO("Not yet implemented")
}
override fun save(task: Task): Task {
val client = HttpClient.newBuilder().build();
val request = HttpRequest.newBuilder().POST(HttpRequest.BodyPublishers.ofString(task.toString()))
.uri(URI.create("https://cloud-database.org/tasks")).build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
if(response.statusCode() == 201) {
return task
} else {
throw ResponseStatusException(HttpStatus.BAD_REQUEST)
}
}
override fun delete(id: UUID) {
TODO("Not yet implemented")
}
}
\ No newline at end of file
package de.thk.gm.gdw.todolist.services
import de.thk.gm.gdw.todolist.models.Task
import java.util.*
interface TasksService {
fun getAll(): List<Task>
fun getAll(open: Boolean): List<Task>
fun getById(id: UUID): Task?
fun save(task: Task): Task
fun delete(id: UUID)
}
\ No newline at end of file
package de.thk.gm.gdw.todolist.services
import de.thk.gm.gdw.todolist.models.Task
import de.thk.gm.gdw.todolist.repositories.TasksRepository
import org.springframework.context.annotation.Primary
import org.springframework.stereotype.Service
import java.util.*
@Primary
@Service
class TasksServiceImpl (private val tasksRepository: TasksRepository) : TasksService {
override fun getAll(): List<Task> {
return tasksRepository.findAll().toList()
}
override fun getAll(open: Boolean): List<Task> {
return if(open){
tasksRepository.findByOpenTrue()
} else {
tasksRepository.findByOpenFalse()
}
}
override fun getById(id: UUID): Task? {
return tasksRepository.findById(id).orElse(null)
}
override fun save(task: Task): Task {
return tasksRepository.save(task)
}
override fun delete(id: UUID) {
tasksRepository.deleteById(id)
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment