diff --git a/build.gradle.kts b/build.gradle.kts index d7efa14..2752341 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } group = "com.aitrainer" -version = "1.0.8" +version = "1.0.9" java.sourceCompatibility = JavaVersion.VERSION_1_8 repositories { diff --git a/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt b/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt index af7f77b..8bb409f 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt @@ -2,8 +2,10 @@ package com.aitrainer.api.controller import com.aitrainer.api.model.Exercises import com.aitrainer.api.repository.ExercisesRepository +import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* +import java.net.http.HttpResponse import javax.validation.Valid @RestController @@ -19,7 +21,7 @@ class ExerciseController(private val exercisesRepository: ExercisesRepository) { @GetMapping("/exercises/customer/{id}") fun getAllExersicesByCustomerId(@PathVariable( value = "id" ) customerId: Long? ): List = - exercisesRepository.getAllByCustomerId(customerId) + exercisesRepository.getAllByCustomerIdOrderByDateAddDesc(customerId) @PostMapping("/exercises") fun createNewExercise(@Valid @RequestBody exercise: Exercises): ResponseEntity { @@ -40,4 +42,12 @@ class ExerciseController(private val exercisesRepository: ExercisesRepository) { ResponseEntity.ok().body(exercisesRepository.save(updatedExercises)) }.orElse(ResponseEntity.notFound().build()) } + + + @PostMapping("/exercises/{id}") + fun deleteExerciseById(@PathVariable(value = "id") exerciseId: Long): HttpStatus { + val exercise2Delete = exercisesRepository.findById(exerciseId).orElse(null) + exercisesRepository.delete(exercise2Delete) + return HttpStatus.OK + } } \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt index 05f7426..2c4dd90 100644 --- a/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt +++ b/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt @@ -6,5 +6,5 @@ import org.springframework.stereotype.Repository @Repository interface ExercisesRepository : JpaRepository { - fun getAllByCustomerId( customerId: Long? ):List + fun getAllByCustomerIdOrderByDateAddDesc( customerId: Long? ):List } \ No newline at end of file diff --git a/src/test/kotlin/com/aitrainer/api/test/ExerciseTest.kt b/src/test/kotlin/com/aitrainer/api/test/ExerciseTest.kt index 4bef16a..af58d61 100644 --- a/src/test/kotlin/com/aitrainer/api/test/ExerciseTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/ExerciseTest.kt @@ -1,10 +1,13 @@ package com.aitrainer.api.test +import com.aitrainer.api.controller.ExerciseController import com.aitrainer.api.model.Exercises import com.aitrainer.api.repository.ExercisesRepository import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest +import org.springframework.http.HttpStatus +import org.springframework.http.ResponseEntity import kotlin.test.assertEquals import kotlin.test.assertTrue @@ -18,11 +21,11 @@ class ExerciseTest { fun testGet() { var id: Long = 1 - val exercises: List = exerciseRepository.getAllByCustomerId( id ) - assertEquals( exercises[0].quantity, 12.2) + val exercises: List = exerciseRepository.getAllByCustomerIdOrderByDateAddDesc( id ) + assertEquals( exercises[0].quantity, 30.0) id = 100000 - val exercises2: List = exerciseRepository.getAllByCustomerId( id ) + val exercises2: List = exerciseRepository.getAllByCustomerIdOrderByDateAddDesc( id ) assertEquals( exercises2.size, 0) } @@ -57,4 +60,32 @@ class ExerciseTest { assertEquals(exerciseNew.exercisePlanDetailId, 6) exerciseRepository.delete(exercise) } + + @Test + fun testDelete() { + val exercise = Exercises( + exerciseTypeId = 30, + customerId = 11, + quantity = 100.0, + dateAdd = "2020-10-13 04:32:00", + unit = "repeat", + unitQuantity = 35.0, + restTime = null + ) + val exerciseNew = exerciseRepository.save(exercise) + assertTrue(exerciseNew.exerciseId > 5) + val newId = exerciseNew.exerciseId + print("NewId for delete: $newId") + + val exerciseController = ExerciseController(exerciseRepository) + val response: ResponseEntity = exerciseController.getExerciseById(newId) + assertEquals(response.statusCode, HttpStatus.OK) + + val status: HttpStatus = exerciseController.deleteExerciseById(newId) + assertEquals(status, HttpStatus.OK) + + val response2: ResponseEntity = exerciseController.getExerciseById(newId) + assertEquals(response2.statusCode, HttpStatus.NOT_FOUND) + + } } \ No newline at end of file