ExercisePlan, ExercisePlanDetail - no OneToMany connection, Delete operation

This commit is contained in:
Bossanyi Tibor
2020-09-10 07:15:42 +02:00
parent d860d79667
commit efe7dea584
10 changed files with 99 additions and 29 deletions
@@ -1,8 +1,10 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.ExercisePlan
import com.aitrainer.api.model.ExercisePlanDetail
import com.aitrainer.api.repository.ExercisePlanRepository
import org.slf4j.LoggerFactory
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.security.access.annotation.Secured
import org.springframework.web.bind.annotation.*
@@ -33,7 +35,7 @@ class ExercisePlanController( private val exercisePlanRepository: ExercisePlanRe
@Secured
@PostMapping("/exercise_plan/{exercisePlanId}")
fun updateExercisePlanById(@PathVariable(value = "exercisePlanId") exercisePlanId: Long,
fun updateExercisePlanById(@PathVariable(value = "exercisePlanId") exercisePlanId: Int,
@Valid @RequestBody exercisePlan: ExercisePlan,
@RequestHeader requestHeader: RequestHeader?
): ResponseEntity<ExercisePlan> {
@@ -49,4 +51,20 @@ class ExercisePlanController( private val exercisePlanRepository: ExercisePlanRe
logger.info("-- updateExercisePlanById id: $updatedPlan ")
return ResponseEntity.ok().body(exercisePlanRepository.save(updatedPlan))
}
@Secured
@PostMapping("/exercise_plan/delete/{exercisePlanId}")
fun deleteExercisePlanById(@PathVariable(value = "exercisePlanId") exercisePlanId: Int,
@Valid @RequestBody exercisePlan: ExercisePlan)
:ResponseEntity<HttpStatus> {
val returnPlan = exercisePlanRepository.findById(exercisePlanId).orElse(null)
?: return ResponseEntity.ok().body(HttpStatus.NOT_FOUND)
try {
exercisePlanRepository.delete(returnPlan)
} catch (e: IllegalArgumentException ) {
return ResponseEntity.ok().body(HttpStatus.BAD_REQUEST)
}
return ResponseEntity.ok().body(HttpStatus.OK)
}
}
@@ -22,12 +22,21 @@ class ExercisePlanDetailController( private val exercisePlanDetailRepository: Ex
return ResponseEntity.ok().body(exercisePlanDetailRepository.save(exercisePlanDetail))
}
@GetMapping("/exercise_plan_detail/last/{customerId}")
/* @GetMapping("/exercise_plan_detail/last/{customerId}")
fun getExercisePlanByCustomerId(@PathVariable(value = "customerId") customerId: Long): ResponseEntity<List<ExercisePlanDetail>> {
val list: List<ExercisePlanDetail> = exercisePlanDetailRepository.getLastExercisePlanDetail(customerId)
logger.info("-- getExercisePlanByCustomerId id: $customerId -- $list")
return ResponseEntity.ok().body(list)
}
*/
@GetMapping("/exercise_plan_detail/{exercisePlanId}")
fun getExercisePlanByExercisePlanId(@PathVariable(value = "exercisePlanId") exercisePlanId: Int): ResponseEntity<List<ExercisePlanDetail>> {
val list: List<ExercisePlanDetail> = exercisePlanDetailRepository.findByExercisePlanId(exercisePlanId)
logger.info("-- getExercisePlanByExercisePlanId id: $exercisePlanId -- $list")
return ResponseEntity.ok().body(list)
}
@Secured
@PostMapping("/exercise_plan_detail/{exercisePlanDetailId}")
@@ -39,7 +48,7 @@ class ExercisePlanDetailController( private val exercisePlanDetailRepository: Ex
?: return ResponseEntity.notFound().build()
val updatedPlanDetail = returnPlanDetail.copy(
exercisePlan = exercisePlanDetail.exercisePlan,
exercisePlanId = exercisePlanDetail.exercisePlanId,
exerciseTypeId = exercisePlanDetail.exerciseTypeId,
serie = exercisePlanDetail.serie,
repeats = exercisePlanDetail.repeats,
@@ -56,9 +65,7 @@ class ExercisePlanDetailController( private val exercisePlanDetailRepository: Ex
@Valid @RequestBody exercisePlanDetail: ExercisePlanDetail)
:ResponseEntity<HttpStatus> {
val returnPlanDetail = exercisePlanDetailRepository.findById(exercisePlanDetailId).orElse(null)
if (returnPlanDetail == null) {
return ResponseEntity.ok().body(HttpStatus.NOT_FOUND)
}
?: return ResponseEntity.ok().body(HttpStatus.NOT_FOUND)
try {
exercisePlanDetailRepository.delete(returnPlanDetail)
} catch (e: IllegalArgumentException ) {