From a95e22d9fbb8f042c579e18fd07edb2f332f7a1d Mon Sep 17 00:00:00 2001
From: Bossanyi Tibor <sw@andio.biz>
Date: Sat, 17 Oct 2020 15:53:51 +0200
Subject: [PATCH 1/2] exercise delete

---
 build.gradle.kts                              |  2 +-
 .../api/controller/ExerciseController.kt      | 12 +++++-
 .../api/repository/ExercisesRepository.kt     |  2 +-
 .../com/aitrainer/api/test/ExerciseTest.kt    | 37 +++++++++++++++++--
 4 files changed, 47 insertions(+), 6 deletions(-)

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<Exercises> =
-            exercisesRepository.getAllByCustomerId(customerId)
+            exercisesRepository.getAllByCustomerIdOrderByDateAddDesc(customerId)
 
     @PostMapping("/exercises")
     fun createNewExercise(@Valid @RequestBody exercise: Exercises): ResponseEntity<Exercises> {
@@ -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<Exercises, Long> {
-    fun getAllByCustomerId( customerId: Long? ):List<Exercises>
+    fun getAllByCustomerIdOrderByDateAddDesc( customerId: Long? ):List<Exercises>
 }
\ 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<Exercises> = exerciseRepository.getAllByCustomerId( id )
-        assertEquals( exercises[0].quantity, 12.2)
+        val exercises: List<Exercises> = exerciseRepository.getAllByCustomerIdOrderByDateAddDesc( id )
+        assertEquals( exercises[0].quantity, 30.0)
 
         id = 100000
-        val exercises2: List<Exercises> = exerciseRepository.getAllByCustomerId( id )
+        val exercises2: List<Exercises> = 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<Exercises> = exerciseController.getExerciseById(newId)
+        assertEquals(response.statusCode, HttpStatus.OK)
+
+        val status: HttpStatus = exerciseController.deleteExerciseById(newId)
+        assertEquals(status, HttpStatus.OK)
+
+        val response2: ResponseEntity<Exercises> = exerciseController.getExerciseById(newId)
+        assertEquals(response2.statusCode, HttpStatus.NOT_FOUND)
+
+    }
 }
\ No newline at end of file

From e807db3faf9f894c0fa80d88b37e865c27438e12 Mon Sep 17 00:00:00 2001
From: Bossanyi Tibor <sw@andio.biz>
Date: Sat, 17 Oct 2020 15:57:46 +0200
Subject: [PATCH 2/2] exercise delete

---
 .../kotlin/com/aitrainer/api/controller/ExerciseController.kt    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt b/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt
index 8bb409f..3ccc016 100644
--- a/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt
+++ b/src/main/kotlin/com/aitrainer/api/controller/ExerciseController.kt
@@ -5,7 +5,6 @@ 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