From 17183bda07504eb0c9343f44c63ed751b9dc03c4 Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Tue, 12 May 2020 16:14:52 +0200 Subject: [PATCH] Exercise.getAllByCustomerId fix, HTTP test --- .gitlab-ci.yml | 2 +- .../aitrainer/api/controller/ExerciesController.kt | 11 ++++++++++- .../aitrainer/api/repository/ExercisesRepository.kt | 2 +- .../com/aitrainer/api/service/ExerciseService.kt | 4 ++-- .../kotlin/com/aitrainer/api/test/AitrainerDBTest.kt | 6 +++--- .../kotlin/com/aitrainer/api/test/ExerciseTypeTest.kt | 3 ++- 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 191645e..4b74aeb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,7 +43,7 @@ connect: script: - apt-get update && apt-get --assume-yes install mysql-client - mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql -e "use $MYSQL_DATABASE; show tables;" - - mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql -e "use $MYSQL_DATABASE; DROP table CUSTOMER; DROP table EXERCISES; DROP table EXERCISE_TYPE; DROP table exercise_ages;" + - mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql -e "use $MYSQL_DATABASE; DROP table customer; DROP table exercises; DROP table exercise_type; DROP table exercise_ages;" - mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql < "data/db/install.sql" #first time test: diff --git a/src/main/kotlin/com/aitrainer/api/controller/ExerciesController.kt b/src/main/kotlin/com/aitrainer/api/controller/ExerciesController.kt index 95f72fc..c0e8eed 100644 --- a/src/main/kotlin/com/aitrainer/api/controller/ExerciesController.kt +++ b/src/main/kotlin/com/aitrainer/api/controller/ExerciesController.kt @@ -6,10 +6,19 @@ import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* import javax.validation.Valid +@RestController +@RequestMapping("/api") class ExerciesController(private val exercisesRepository: ExercisesRepository) { + @GetMapping("/exercises/{id}") + fun getExerciseById(@PathVariable(value = "id") exerciseId: Long): ResponseEntity { + return exercisesRepository.findById(exerciseId).map { exercise -> + ResponseEntity.ok(exercise) + }.orElse(ResponseEntity.notFound().build()) + } + @GetMapping("/exercises/customer/{id}") - fun getAllExersicesByCustomerId(customerId: Long): List = + fun getAllExersicesByCustomerId(@PathVariable( value = "id" ) customerId: Long? ): List = exercisesRepository.getAllByCustomerId(customerId) @PostMapping("/exercises") diff --git a/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt b/src/main/kotlin/com/aitrainer/api/repository/ExercisesRepository.kt index d077144..05f7426 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 getAllByCustomerId( customerId: Long? ):List } \ No newline at end of file diff --git a/src/main/kotlin/com/aitrainer/api/service/ExerciseService.kt b/src/main/kotlin/com/aitrainer/api/service/ExerciseService.kt index 0b951ef..e505bc3 100644 --- a/src/main/kotlin/com/aitrainer/api/service/ExerciseService.kt +++ b/src/main/kotlin/com/aitrainer/api/service/ExerciseService.kt @@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.Query import org.springframework.data.repository.query.Param interface ExerciseService { - @Query("FROM Exercises WHERE customer_id = :customerId") - fun findAllByCustomerId( @Param("customerId") customerId: Long): List + @Query("FROM exercises WHERE customer_id = :customerId") + fun findAllByCustomerId( @Param("customerId") customerId: Long? ): List } \ No newline at end of file diff --git a/src/test/kotlin/com/aitrainer/api/test/AitrainerDBTest.kt b/src/test/kotlin/com/aitrainer/api/test/AitrainerDBTest.kt index e7bdfe5..a8a6c72 100644 --- a/src/test/kotlin/com/aitrainer/api/test/AitrainerDBTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/AitrainerDBTest.kt @@ -22,9 +22,9 @@ class AitrainerDBTest(configuration: ApplicationConfiguration) { this.username = this.conf.username.orEmpty() this.password = this.conf.password.orEmpty() this.datasourceUrl = this.conf.url.orEmpty() - assertTrue ("username should not be empty", { this.username.isNotEmpty() }) - assertTrue ("password should not be empty", { this.password.isNotEmpty() }) - assertTrue ("url should not be empty", { this.datasourceUrl.isNotEmpty() }) + assertTrue ("username should not be empty") { this.username.isNotEmpty() } + assertTrue ("password should not be empty") { this.password.isNotEmpty() } + assertTrue ("url should not be empty") { this.datasourceUrl.isNotEmpty() } this.getConnection() diff --git a/src/test/kotlin/com/aitrainer/api/test/ExerciseTypeTest.kt b/src/test/kotlin/com/aitrainer/api/test/ExerciseTypeTest.kt index 7dac582..c9cd308 100644 --- a/src/test/kotlin/com/aitrainer/api/test/ExerciseTypeTest.kt +++ b/src/test/kotlin/com/aitrainer/api/test/ExerciseTypeTest.kt @@ -12,6 +12,7 @@ class ExerciseTypeTest { @Autowired private lateinit var exerciseTypeRepository: ExerciseTypeRepository + private var insertedId: Long = 0 @Test fun testGet() { @@ -24,7 +25,7 @@ class ExerciseTypeTest { val savedEx: ExerciseType = exerciseTypeRepository.save(newEx) assertEquals(savedEx.name, "Húzodszkodás") - val insertedId: Long = savedEx.exerciseTypeId + this.insertedId = savedEx.exerciseTypeId val extype: ExerciseType = exerciseTypeRepository.findById( savedEx.exerciseTypeId ).orElse(null) assertEquals( extype.name, "Húzodszkodás")