API 1.0.18 ExerciseTreeParents with controller
This commit is contained in:
parent
293379d6fd
commit
64114a82ba
@ -1,6 +1,7 @@
|
||||
package com.aitrainer.api.controller
|
||||
|
||||
import com.aitrainer.api.model.ExerciseTree
|
||||
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||
import com.aitrainer.api.repository.ExerciseTreeRepository
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.http.ResponseEntity
|
||||
|
@ -0,0 +1,25 @@
|
||||
package com.aitrainer.api.controller
|
||||
|
||||
import com.aitrainer.api.model.ExerciseTreeParents
|
||||
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.GetMapping
|
||||
import org.springframework.web.bind.annotation.PathVariable
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api")
|
||||
class ExerciseTreeParentsController (private val exerciseTreeParentsRepository: ExerciseTreeParentsRepository) {
|
||||
private val logger = LoggerFactory.getLogger(javaClass)
|
||||
|
||||
@GetMapping("/exercise_tree_parents/{id}")
|
||||
fun getAllByChildId(@PathVariable(value = "id") exerciseTreeParentsChildId: Long): ResponseEntity<List<ExerciseTreeParents>> {
|
||||
val list: List<ExerciseTreeParents> = exerciseTreeParentsRepository.findByExerciseTreeChildId(exerciseTreeParentsChildId).orEmpty()
|
||||
|
||||
logger.info(" -- Get All Exercise Tree Parents by $exerciseTreeParentsChildId: $list")
|
||||
return if (list.isEmpty()) ResponseEntity.notFound().build() else
|
||||
ResponseEntity.ok().body(list)
|
||||
}
|
||||
}
|
@ -18,14 +18,13 @@ data class ExerciseTree (
|
||||
@get: NotBlank var imageUrl: String = "",
|
||||
@get: NonNull var active: Boolean?
|
||||
|
||||
|
||||
) {
|
||||
@OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTree")
|
||||
@Fetch(value = FetchMode.SUBSELECT)
|
||||
val translations: List<ExerciseTreeTranslation> = mutableListOf<ExerciseTreeTranslation>().toList()
|
||||
|
||||
@OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTreeChild")
|
||||
/* @OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTreeChild")
|
||||
@Fetch(value = FetchMode.SUBSELECT)
|
||||
val parents: List<ExerciseTreeParents> = mutableListOf<ExerciseTreeParents>().toList()
|
||||
var parents: List<ExerciseTreeParents> = mutableListOf<ExerciseTreeParents>().toList()*/
|
||||
|
||||
}
|
@ -9,13 +9,14 @@ data class ExerciseTreeParents (
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
var exerciseTreeParentsId: Long = 0,
|
||||
@get: NotNull var exerciseTreeParentId: Long?
|
||||
) {
|
||||
@get: NotNull var exerciseTreeParentId: Long?,
|
||||
@get: NotNull var exerciseTreeChildId: Long?
|
||||
)/*{
|
||||
@ManyToOne(fetch = FetchType.EAGER, optional = false)
|
||||
@JoinColumn(name = "exerciseTreeChildId", nullable = false)
|
||||
@JsonIgnore
|
||||
val exerciseTreeChild: ExerciseTree? = null
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.aitrainer.api.repository
|
||||
|
||||
import com.aitrainer.api.model.ExerciseTreeParents
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
import org.springframework.data.jpa.repository.Query
|
||||
import org.springframework.stereotype.Repository
|
||||
|
||||
@Repository
|
||||
interface ExerciseTreeParentsRepository : JpaRepository<ExerciseTreeParents, Long> {
|
||||
@Query("FROM ExerciseTreeParents as e " +
|
||||
"WHERE exerciseTreeChildId = :id ")
|
||||
fun findByExerciseTreeChildId(id: Long): List<ExerciseTreeParents>?
|
||||
}
|
@ -10,7 +10,6 @@ interface ExerciseTreeRepository : JpaRepository<ExerciseTree, Long> {
|
||||
|
||||
@Query("FROM ExerciseTree as e " +
|
||||
"LEFT JOIN ExerciseTreeTranslation as t ON e.treeId = t.exerciseTree AND t.languageCode = 'hu' " +
|
||||
"LEFT JOIN ExerciseTreeParents as p ON e.treeId = p.exerciseTreeChild " +
|
||||
"WHERE e.active = 1 " +
|
||||
"ORDER BY e.treeId ")
|
||||
fun getActiveMenu(): List<ExerciseTree>
|
||||
|
@ -0,0 +1,33 @@
|
||||
package com.aitrainer.api.test
|
||||
|
||||
|
||||
import com.aitrainer.api.controller.ExerciseTreeController
|
||||
import com.aitrainer.api.controller.ExerciseTreeParentsController
|
||||
import com.aitrainer.api.model.ExerciseTree
|
||||
import com.aitrainer.api.model.ExerciseTreeParents
|
||||
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||
import com.aitrainer.api.repository.ExerciseTreeRepository
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import org.springframework.http.ResponseEntity
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
@SpringBootTest
|
||||
class ExerciseTreeParentsTest {
|
||||
|
||||
@Autowired
|
||||
private lateinit var exerciseTreeParentsRepository: ExerciseTreeParentsRepository
|
||||
@Test
|
||||
fun testTreeParents() {
|
||||
val exerciseTreeParentsController = ExerciseTreeParentsController(exerciseTreeParentsRepository)
|
||||
val responseEntity: ResponseEntity<List<ExerciseTreeParents>> = exerciseTreeParentsController.getAllByChildId(20)
|
||||
|
||||
assertTrue(responseEntity.body!!.isNotEmpty())
|
||||
val exerciseTreeParentList = responseEntity.body!!
|
||||
assertEquals(exerciseTreeParentList.size, 2)
|
||||
assertEquals(exerciseTreeParentList[0].exerciseTreeParentId, 9)
|
||||
assertEquals(exerciseTreeParentList[1].exerciseTreeParentId, 10)
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package com.aitrainer.api.test
|
||||
|
||||
import com.aitrainer.api.controller.ExerciseTreeController
|
||||
import com.aitrainer.api.model.ExerciseTree
|
||||
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||
import com.aitrainer.api.repository.ExerciseTreeRepository
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
@ -27,7 +28,5 @@ class ExerciseTreeTest {
|
||||
val exerciseTreeItem = responseEntity.body!![0]
|
||||
assertEquals(exerciseTreeItem.name, "Cardio")
|
||||
assertEquals(responseEntity.body!![1].translations[0].name, "Erő")
|
||||
assertEquals(responseEntity.body!![1].parents[0].exerciseTreeParentId, 0)
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user