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
|
package com.aitrainer.api.controller
|
||||||
|
|
||||||
import com.aitrainer.api.model.ExerciseTree
|
import com.aitrainer.api.model.ExerciseTree
|
||||||
|
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||||
import com.aitrainer.api.repository.ExerciseTreeRepository
|
import com.aitrainer.api.repository.ExerciseTreeRepository
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.http.ResponseEntity
|
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: NotBlank var imageUrl: String = "",
|
||||||
@get: NonNull var active: Boolean?
|
@get: NonNull var active: Boolean?
|
||||||
|
|
||||||
|
|
||||||
) {
|
) {
|
||||||
@OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTree")
|
@OneToMany(cascade = [(CascadeType.ALL)], fetch = FetchType.EAGER, mappedBy = "exerciseTree")
|
||||||
@Fetch(value = FetchMode.SUBSELECT)
|
@Fetch(value = FetchMode.SUBSELECT)
|
||||||
val translations: List<ExerciseTreeTranslation> = mutableListOf<ExerciseTreeTranslation>().toList()
|
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)
|
@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
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
var exerciseTreeParentsId: Long = 0,
|
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)
|
@ManyToOne(fetch = FetchType.EAGER, optional = false)
|
||||||
@JoinColumn(name = "exerciseTreeChildId", nullable = false)
|
@JoinColumn(name = "exerciseTreeChildId", nullable = false)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
val exerciseTreeChild: ExerciseTree? = null
|
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 " +
|
@Query("FROM ExerciseTree as e " +
|
||||||
"LEFT JOIN ExerciseTreeTranslation as t ON e.treeId = t.exerciseTree AND t.languageCode = 'hu' " +
|
"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 " +
|
"WHERE e.active = 1 " +
|
||||||
"ORDER BY e.treeId ")
|
"ORDER BY e.treeId ")
|
||||||
fun getActiveMenu(): List<ExerciseTree>
|
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.controller.ExerciseTreeController
|
||||||
import com.aitrainer.api.model.ExerciseTree
|
import com.aitrainer.api.model.ExerciseTree
|
||||||
|
import com.aitrainer.api.repository.ExerciseTreeParentsRepository
|
||||||
import com.aitrainer.api.repository.ExerciseTreeRepository
|
import com.aitrainer.api.repository.ExerciseTreeRepository
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.springframework.beans.factory.annotation.Autowired
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
@ -27,7 +28,5 @@ class ExerciseTreeTest {
|
|||||||
val exerciseTreeItem = responseEntity.body!![0]
|
val exerciseTreeItem = responseEntity.body!![0]
|
||||||
assertEquals(exerciseTreeItem.name, "Cardio")
|
assertEquals(exerciseTreeItem.name, "Cardio")
|
||||||
assertEquals(responseEntity.body!![1].translations[0].name, "Erő")
|
assertEquals(responseEntity.body!![1].translations[0].name, "Erő")
|
||||||
assertEquals(responseEntity.body!![1].parents[0].exerciseTreeParentId, 0)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user