Merge branch 'zalan' into 'master'

Zalan

See merge request bossanyit/aitrainer_server!5
This commit is contained in:
Bossanyi Tibor 2020-05-10 11:54:55 +00:00
commit 6bfbdd2b59
4 changed files with 83 additions and 0 deletions

View File

@ -6,3 +6,4 @@ provide a RESTful API to the mobile app
finished API: finished API:
customers customers
exercise type impl.ed

View File

@ -0,0 +1,50 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.ExerciseType
import com.aitrainer.api.repository.ExerciseTypeRepository
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import java.util.*
import javax.validation.Valid
@RestController
@RequestMapping("/api")
class ExerciseTypeController ( private val exerciseTypeRepository: ExerciseTypeRepository ) {
@GetMapping("/exercise_type")
fun getAllExerciseTypes(): List<ExerciseType> =
exerciseTypeRepository.findAll()
@PostMapping("/exercise_type")
fun createNewExerciseType(@Valid @RequestBody exerciseType: ExerciseType): ExerciseType =
exerciseTypeRepository.save(exerciseType)
@GetMapping("/exercise_type/{id}")
fun getExerciseTypeById(@PathVariable(value = "id") exerciseTypeId: Long): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findById(exerciseTypeId).map { exerciseType ->
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())
}*/
@PutMapping("/exercise_type/{id}")
fun updateExerciseTypesById(@PathVariable(value = "id") exerciseTypeId: Long,
@Valid @RequestBody newExerciseType: ExerciseType): ResponseEntity<ExerciseType> {
return exerciseTypeRepository.findById(exerciseTypeId).map { existingExerciseType ->
val updatedExerciseType: ExerciseType = existingExerciseType
.copy(name = newExerciseType.name,
description = newExerciseType.description,
video = newExerciseType.video)
ResponseEntity.ok().body(exerciseTypeRepository.save(updatedExerciseType))
}.orElse(ResponseEntity.notFound().build())
}
}

View File

@ -0,0 +1,20 @@
package com.aitrainer.api.model
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
import javax.validation.constraints.NotBlank
@Entity
data class ExerciseType (
@get: NotBlank
val name: String = "",
val description: String = "",
val video: Long = 0,
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val type_id: Long = 0
)

View File

@ -0,0 +1,12 @@
package com.aitrainer.api.repository
import com.aitrainer.api.model.ExerciseType
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
@Repository
interface ExerciseTypeRepository : JpaRepository<ExerciseType, Long>{
fun findByName(name: String): ExerciseType
}