Exercise Data class, repo, controller

This commit is contained in:
Bossanyi Tibor 2020-05-11 16:42:52 +02:00 committed by Bossanyi Tibor
parent 6bfbdd2b59
commit 7c23ec7fa4
13 changed files with 125 additions and 16 deletions

View File

@ -5,7 +5,7 @@ stages:
- build - build
- prepare - prepare
- test - test
- deploy # - deploy
variables: variables:
# Configure mysql environment variables (https://hub.docker.com/_/mysql/) # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
@ -43,18 +43,18 @@ connect:
script: script:
- apt-get update && apt-get --assume-yes install mysql-client - 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; show tables;"
#- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql < "data/db/install.sql" #- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql < "data/db/install.sql" #first time
test: test:
stage: test stage: test
image: openjdk:latest image: openjdk:latest
script: script:
- ./gradlew check -Pargs='spring.profiles.active=deploy' - ./gradlew check -Pargs='spring.profiles.active=test'
deploy: #deploy:
stage: deploy # stage: deploy
script: # script:
- ./deploy # - ./deploy
after_script: after_script:
- echo "End CI" - echo "End CI"

View File

@ -1,6 +0,0 @@
terminal:
script: sleep 60
variables:
RAILS_ENV: "test"
NODE_ENV: "test"

View File

@ -4,6 +4,12 @@ services:
image: 'atlassian/jira-software:latest' image: 'atlassian/jira-software:latest'
container_name: 'jira' container_name: 'jira'
restart: 'always' restart: 'always'
environment:
ATL_TOMCAT_PORT: 8082
ATL_TOMCAT_SCHEME: "https"
ATL_TOMCAT_SECURE: "true"
ATL_DB_DRIVER: "com.mysql.jdbc.Driver"
ATL_DB_TYPE: "mysql"
volumes: volumes:
- jiraVolume:/var/atlassian/application-data/jira - jiraVolume:/var/atlassian/application-data/jira
- db_data:/var/lib/mysql - db_data:/var/lib/mysql
@ -79,6 +85,11 @@ services:
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
- /srv/gitlab-runner/config:/etc/gitlab-runner - /srv/gitlab-runner/config:/etc/gitlab-runner
secrets:
mysql_root_pwd:
file: /.sec/mysql_root_pwd
mysql_user_pwd:
file: /.sec/mysql_user_pwd
networks: networks:
bosi_default: bosi_default:
volumes: volumes:

View File

@ -0,0 +1,31 @@
version: '3.8'
services:
mysql:
image: mysql:latest
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: andio2009
MYSQL_DATABASE: aitrainer
MYSQL_USER: aitrainer
MYSQL_PASSWORD: andio2009
volumes:
- ./docker/db:/docker-entrypoint-initdb.d
ports:
- "33061:33061"
command: mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=localhost < "/home/bosi/aitrainer/data/install.sql"
java:
image: openjdk:latest
tomcat:
image: tomcat:latest
container_name: tomcat
volumes:
- ./docker/aitrainer_server.jar:/home/bosi/aitrainer/deploy/aitrainer_server.jar
ports:
- "8080:8080"
depends_on:
- java

1
gradlew.bat vendored
View File

@ -83,7 +83,6 @@ set CMD_LINE_ARGS=%*
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

View File

@ -0,0 +1,33 @@
package com.aitrainer.api.controller
import com.aitrainer.api.model.Customer
import com.aitrainer.api.model.Exercises
import com.aitrainer.api.repository.ExercisesRepository
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.PutMapping
import org.springframework.web.bind.annotation.RequestBody
import javax.validation.Valid
class ExerciesController(private val exercisesRepository: ExercisesRepository) {
@PostMapping("/exercises")
fun createNewCustomer(@Valid @RequestBody exercises: Exercises): Exercises =
exercisesRepository.save(exercises)
@PutMapping("/exercises/{id}")
fun updateExerciseById(@PathVariable(value = "id") exerciseId: Long,
@Valid @RequestBody newExercises: Exercises): ResponseEntity<Exercises> {
return exercisesRepository.findById(exerciseId).map { existingExercises ->
val updatedExercises: Exercises = existingExercises.copy(
exercise_type_id = newExercises.exercise_type_id,
customer_id = newExercises.customer_id,
dateTimeExercise = newExercises.dateTimeExercise,
quantity = newExercises.quantity,
restTime = newExercises.restTime
)
ResponseEntity.ok().body(exercisesRepository.save(updatedExercises))
}.orElse(ResponseEntity.notFound().build())
}
}

View File

@ -0,0 +1,20 @@
package com.aitrainer.api.model
import org.springframework.lang.NonNull
import java.sql.Date
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
@Entity
data class Exercises (
@get: NonNull var exercise_type_id: Long = 0,
@get: NonNull var customer_id: Long = 0,
@get: NonNull var dateTimeExercise: Date? = null,
@get: NonNull var quantity: Int = 0,
var restTime: Int = 0, // in seconds
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val exercise_id: Long = 0
)

View File

@ -0,0 +1,8 @@
package com.aitrainer.api.repository
import com.aitrainer.api.model.Exercises
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
@Repository
interface ExercisesRepository : JpaRepository<Exercises, Long>

View File

@ -0,0 +1,13 @@
spring.profiles.active=prod
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
#spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
spring.datasource.username = aitrainer
spring.datasource.password = andio2009
## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

View File

@ -1,4 +1,4 @@
spring.profiles.active=deploy spring.profiles.active=test
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
#spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.url = jdbc:mysql://mysql:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true spring.datasource.url = jdbc:mysql://mysql:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true

View File

@ -1,4 +1,4 @@
spring.profiles.active=dev,deploy spring.profiles.active=dev,test,prod
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
#spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false #spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true spring.datasource.url = jdbc:mysql://localhost:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true