API: ExercisePlan, ExercisePlanDetail

This commit is contained in:
Bossanyi Tibor
2020-09-06 11:22:58 +02:00
parent 2efb3cb18f
commit f5a6f17ef5
21 changed files with 365 additions and 50 deletions
@@ -41,13 +41,17 @@ class CustomerController ( private val customerRepository: CustomerRepository )
@Secured
@GetMapping("/customers/real")
fun getRealCustomers(active: String, @RequestHeader headers: HttpHeaders): List<Customer> =
customerRepository.findByActive(active)
fun getRealCustomers(active: String, @RequestHeader headers: HttpHeaders): ResponseEntity<List<Customer>> =
ResponseEntity.ok().body(customerRepository.findByActive(active))
@Secured
@GetMapping("/customers/trainees/{id}")
fun getCustomerListByTrainerId(@PathVariable(value = "id") trainerId: Long, @RequestHeader headers: HttpHeaders): List<Customer> =
customerRepository.findByTrainerId(trainerId)
fun getCustomerListByTrainerId(@PathVariable(value = "id") trainerId: Long, @RequestHeader headers: HttpHeaders):
ResponseEntity<List<Customer>> {
val list = customerRepository.findByTrainerId(trainerId)
return if (list.isEmpty()) ResponseEntity.notFound().build() else ResponseEntity.ok().body(list)
}
@Secured
@PostMapping("/customers/{id}")
@@ -88,21 +92,6 @@ class CustomerController ( private val customerRepository: CustomerRepository )
}
return ResponseEntity.ok().body(customerRepository.save(updatedCustomer))
/* return customerRepository.findById(customerId).map {
existingCustomer ->
val updatedCustomer: Customer = existingCustomer
.copy(name = newCustomer.name,
firstname = newCustomer.firstname,
sex = newCustomer.sex,
birthYear = newCustomer.birthYear,
fitnessLevel = newCustomer.fitnessLevel,
bodyType = newCustomer.bodyType,
goal = newCustomer.goal,
weight = newCustomer.weight
)
ResponseEntity.ok().body(customerRepository.save(updatedCustomer))
}.orElse(ResponseEntity.notFound().build()) */
}
@@ -22,8 +22,8 @@ class ExerciseController(private val exercisesRepository: ExercisesRepository) {
exercisesRepository.getAllByCustomerId(customerId)
@PostMapping("/exercises")
fun createNewExercise(@Valid @RequestBody exercise: Exercises): Exercises {
return exercisesRepository.save(exercise)
fun createNewExercise(@Valid @RequestBody exercise: Exercises): ResponseEntity<Exercises> {
return ResponseEntity.ok().body(exercisesRepository.save(exercise))
}
@PutMapping("/exercises/{id}")
@@ -0,0 +1,32 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.ExercisePlan
import com.aitrainer.api.repository.ExercisePlanRepository
import org.slf4j.LoggerFactory
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import javax.validation.Valid
@RestController
@RequestMapping("/api")
class ExercisePlanController( private val exercisePlanRepository: ExercisePlanRepository) {
private val logger = LoggerFactory.getLogger(javaClass)
@PostMapping("/exercise_plan")
fun createNewExercisePlan(@Valid @RequestBody exercisePlan: ExercisePlan): ResponseEntity<ExercisePlan> {
val newExercisePlan = exercisePlanRepository.save(exercisePlan)
logger.info("Create new exercise plan: $newExercisePlan")
return ResponseEntity.ok().body(newExercisePlan)
}
@GetMapping("/exercise_plan/last/{customerId}")
fun getLastExercisePlan(@PathVariable(value = "customerId") customerId: Long): ResponseEntity<ExercisePlan> {
val exercisePlan = exercisePlanRepository.getLastExercisePlan(customerId)
logger.info("Get last exercise plan by id $customerId: $exercisePlan")
return if( exercisePlan != null)
ResponseEntity.ok().body(exercisePlan) else
ResponseEntity.notFound().build()
}
}
@@ -0,0 +1,33 @@
package com.aitrainer.api.controller
import com.aitrainer.api.ApiApplication
import com.aitrainer.api.repository.ConfigurationRepository
import org.aspectj.lang.annotation.Aspect
import org.aspectj.lang.annotation.Before
import org.aspectj.lang.annotation.Pointcut
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Suppress("unused")
@Aspect
@Component
class ExercisePlanControllerAspect {
private val logger = LoggerFactory.getLogger(ApiApplication::class.simpleName)
@Autowired
private lateinit var configurationRepository: ConfigurationRepository
@Autowired
private lateinit var properties: ApplicationProperties
@Suppress("unused")
@Pointcut("execution(* com.aitrainer.api.controller.ExercisePlanController.*())")
fun exercisePlanControllerAspect() {
}
@Before("exercisePlanControllerAspect()")
fun loggingAop() {
Singleton.checkDBUpdate(configurationRepository, properties)
}
}
@@ -0,0 +1,28 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.ExercisePlanDetail
import com.aitrainer.api.model.ExerciseType
import com.aitrainer.api.repository.ExercisePlanDetailRepository
import org.slf4j.LoggerFactory
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import javax.validation.Valid
@RestController
@RequestMapping("/api")
class ExercisePlanDetailController( private val exercisePlanDetailRepository: ExercisePlanDetailRepository) {
private val logger = LoggerFactory.getLogger(javaClass)
@PostMapping("/exercise_plan_detail")
fun createNewExercisePlanDetail(@Valid @RequestBody exercisePlanDetail: ExercisePlanDetail): ResponseEntity<ExercisePlanDetail> {
logger.info("Create new exercise plan: $exercisePlanDetail")
return ResponseEntity.ok().body(exercisePlanDetailRepository.save(exercisePlanDetail))
}
@GetMapping("/exercise_plan_detail/last/{customerId}")
fun getExercisePlanByCustomerId(@PathVariable(value = "customerId") customerId: Long): ResponseEntity<List<ExercisePlanDetail>> {
val list: List<ExercisePlanDetail> = exercisePlanDetailRepository.getLastExercisePlanDetail(customerId)
logger.info("-- getExercisePlanByCustomerId id: $customerId -- $list")
return ResponseEntity.ok().body(list)
}
}
@@ -0,0 +1,33 @@
package com.aitrainer.api.controller
import com.aitrainer.api.ApiApplication
import com.aitrainer.api.repository.ConfigurationRepository
import org.aspectj.lang.annotation.Aspect
import org.aspectj.lang.annotation.Before
import org.aspectj.lang.annotation.Pointcut
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Suppress("unused")
@Aspect
@Component
class ExercisePlanDetailControllerAspect {
private val logger = LoggerFactory.getLogger(ApiApplication::class.simpleName)
@Autowired
private lateinit var configurationRepository: ConfigurationRepository
@Autowired
private lateinit var properties: ApplicationProperties
@Suppress("unused")
@Pointcut("execution(* com.aitrainer.api.controller.ExercisePlanDetailController.*())")
fun exercisePlanDetailControllerAspect() {
}
@Before("exercisePlanDetailControllerAspect()")
fun loggingAop() {
Singleton.checkDBUpdate(configurationRepository, properties)
}
}
@@ -3,6 +3,7 @@ package com.aitrainer.api.controller
import com.aitrainer.api.model.ExerciseTree
import com.aitrainer.api.repository.ExerciseTreeRepository
import org.slf4j.LoggerFactory
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
@@ -13,9 +14,10 @@ class ExerciseTreeController (private val exerciseTreeRepository: ExerciseTreeRe
private val logger = LoggerFactory.getLogger(javaClass)
@GetMapping("/exercise_tree")
fun getAllActiveMenu(): List<ExerciseTree> {
fun getAllActiveMenu(): ResponseEntity<List<ExerciseTree>> {
val list: List<ExerciseTree> = exerciseTreeRepository.getActiveMenu()
logger.info(" -- Get All active Exercise Tree menu.. $list")
return list
return if (list.isEmpty()) ResponseEntity.notFound().build() else
ResponseEntity.ok().body(list)
}
}
@@ -14,18 +14,18 @@ class ExerciseTypeController ( private val exerciseTypeRepository: ExerciseTypeR
private val logger = LoggerFactory.getLogger(javaClass)
@GetMapping("/exercise_type")
fun getAllExerciseType(): List<ExerciseType> {
fun getAllExerciseType(): ResponseEntity<List<ExerciseType>> {
val list: List<ExerciseType> = exerciseTypeRepository.findAll()
logger.info(" -- Get All exercise types..")
return list
return ResponseEntity.ok().body(list)
}
@PostMapping("/exercise_type")
fun createNewExerciseType(@Valid @RequestBody exerciseType: ExerciseType): ExerciseType {
fun createNewExerciseType(@Valid @RequestBody exerciseType: ExerciseType): ResponseEntity<ExerciseType> {
logger.info("Create new exercise type: $exerciseType")
return exerciseTypeRepository.save(exerciseType)
return ResponseEntity.ok().body(exerciseTypeRepository.save(exerciseType))
}
@@ -36,19 +36,12 @@ class ExerciseTypeController ( private val exerciseTypeRepository: ExerciseTypeR
ResponseEntity.ok(exerciseType)
}.orElse(ResponseEntity.notFound().build())
}
/*
@GetMapping("/exercise_type/name/{name}")
fun getExerciseTypeByName(@PathVariable(value = "name") name: String): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findByName(name).map { exerciseType ->
ResponseEntity.ok(exerciseType)
}.orElse(ResponseEntity.notFound().build())
}*/
@GetMapping("exercise_type/active")
fun getActiveExerciseType(): List<ExerciseType> {
fun getActiveExerciseType(): ResponseEntity<List<ExerciseType>> {
val list: List<ExerciseType> = exerciseTypeRepository.getActiveExerciseTypes()
logger.info("-- Get Active Exercise Types with Images and Translation -- $list")
return list
return ResponseEntity.ok().body(list)
}
@PostMapping("/exercise_type/{id}")