Exercise Type Classes

This commit is contained in:
ZalanBoss
2020-05-10 13:39:14 +02:00
parent 7055f2927f
commit 99598420da
3 changed files with 82 additions and 0 deletions
@@ -0,0 +1,50 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.ExerciseType
import com.aitrainer.api.repository.ExerciseTypeRepository
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import java.util.*
import javax.validation.Valid
@RestController
@RequestMapping("/api")
class ExerciseTypeController ( private val exerciseTypeRepository: ExerciseTypeRepository ) {
@GetMapping("/exercise_type")
fun getAllExerciseTypes(): List<ExerciseType> =
exerciseTypeRepository.findAll()
@PostMapping("/exercise_type")
fun createNewExerciseType(@Valid @RequestBody exerciseType: ExerciseType): ExerciseType =
exerciseTypeRepository.save(exerciseType)
@GetMapping("/exercise_type/{id}")
fun getExerciseTypeById(@PathVariable(value = "id") exerciseTypeId: Long): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findById(exerciseTypeId).map { exerciseType ->
ResponseEntity.ok(exerciseType)
}.orElse(ResponseEntity.notFound().build())
}
/*
@GetMapping("/exercise_type/name/{name}")
fun getExerciseTypeByName(@PathVariable(value = "name") name: String): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findByName(name).map { exerciseType ->
ResponseEntity.ok(exerciseType)
}.orElse(ResponseEntity.notFound().build())
}*/
@PutMapping("/exercise_type/{id}")
fun updateExerciseTypesById(@PathVariable(value = "id") exerciseTypeId: Long,
@Valid @RequestBody newExerciseType: ExerciseType): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findById(exerciseTypeId).map { existingExerciseType ->
val updatedExerciseType: ExerciseType = existingExerciseType
.copy(name = newExerciseType.name,
description = newExerciseType.description,
video = newExerciseType.video)
ResponseEntity.ok().body(exerciseTypeRepository.save(updatedExerciseType))
}.orElse(ResponseEntity.notFound().build())
}
}