Merge branch 'tibor' into 'master'

1.0.4: customer fields extensions, tests

See merge request bossanyit/aitrainer_server!6
This commit is contained in:
Bossányi Tibor 2020-07-05 11:51:35 +00:00
commit 31b33d85bc
10 changed files with 91 additions and 28 deletions

View File

@ -26,25 +26,32 @@ CREATE TABLE IF NOT EXISTS `customer` (
`date_change` datetime DEFAULT NULL,
`data_policy_allowed` tinyint(4) DEFAULT 1,
`admin` tinyint(4) DEFAULT 0,
`birth_year` int(4) DEFAULT 0,
`weight` INT(3) NULL DEFAULT '0',
`goal` CHAR(20) NULL DEFAULT '' COLLATE 'utf8_hungarian_ci',
`fitness_level` ENUM('beginner','intermediate','advanced','professional') NOT NULL DEFAULT 'beginner' COLLATE 'utf8_hungarian_ci',
`body_type` ENUM('ectomorph','mesomorph','endomorph') NULL DEFAULT NULL COLLATE 'utf8_hungarian_ci',
PRIMARY KEY (`customer_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci;
-- Tábla adatainak mentése aitrainer.customer: ~13 rows (hozzávetőleg)
/*!40000 ALTER TABLE `customer` DISABLE KEYS */;
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`) VALUES
(1, 'Átlag 13 éves fiú', '', NULL, NULL, 'm', 13, 'N', NULL, NULL, 1, 0),
(2, 'Átlag 14 éves fiú', '', NULL, NULL, 'm', 14, 'N', NULL, NULL, 1, 0),
(3, 'Átlag 15 éves fiú', '', NULL, NULL, 'm', 15, 'N', NULL, NULL, 1, 0),
(4, 'Átlag 15 éves fiú', '', NULL, NULL, 'm', 15, 'N', NULL, NULL, 1, 0),
(5, 'Átlag 16 éves fiú', '', NULL, NULL, 'm', 16, 'N', NULL, NULL, 1, 0),
(6, 'Átlag 17 éves fiú', '', NULL, NULL, 'm', 17, 'N', NULL, NULL, 1, 0),
(7, 'Átlag 18 éves fiú', '', NULL, NULL, 'm', 18, 'N', NULL, NULL, 1, 0),
(8, 'Átlag 13 éves lány', '', NULL, NULL, 'w', 13, 'N', NULL, NULL, 1, 0),
(9, 'Átlag 14 éves lány', '', NULL, NULL, 'w', 14, 'N', NULL, NULL, 1, 0),
(10, 'Átlag 15 éves lány', '', NULL, NULL, 'w', 15, 'N', NULL, NULL, 1, 0),
(11, 'Átlag 16 éves lány', '', NULL, NULL, 'w', 16, 'N', NULL, NULL, 1, 0),
(12, 'Átlag 17 éves lány', '', NULL, NULL, 'w', 17, 'N', NULL, NULL, 1, 0),
(13, 'Átlag 18 éves lány', '', NULL, NULL, 'w', 18, 'N', NULL, NULL, 1, 0);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (1, 'Átlag 13 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (2, 'Átlag 14 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (3, 'Átlag 15 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (4, 'Átlag 15 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (5, 'Átlag 16 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (6, 'Átlag 17 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (7, 'Átlag 18 éves fiú', '', '', NULL, 'm', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (8, 'Átlag 13 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (9, 'Átlag 14 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (10, 'Átlag 15 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (11, 'Átlag 16 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (12, 'Átlag 17 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (13, 'Átlag 18 éves lány', '', '', NULL, 'w', 0, 'N', NULL, NULL, 1, 0, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (54, 'Dummy User', '', 'bosi', '$2a$10$thOc8jS750c7xe9U9Qq3GuSPs/H0Pt2Ads05yzUlyzQBIj.Rk9QCy', 'm', 0, 'N', NULL, NULL, 1, 1, 0, 0, '', 'beginner', NULL);
INSERT INTO `customer` (`customer_id`, `name`, `firstname`, `email`, `password`, `sex`, `age`, `active`, `date_add`, `date_change`, `data_policy_allowed`, `admin`, `birth_year`, `weight`, `goal`, `fitness_level`, `body_type`) VALUES (90, 'Bossi', 'Tib', 'sw@andio.biz', '', 'm', 0, 'Y', NULL, NULL, 1, 1, 0, 0, '', 'beginner', NULL);
/*!40000 ALTER TABLE `customer` ENABLE KEYS */;
-- Struktúra mentése tábla aitrainer. customer_information
@ -86,7 +93,7 @@ CREATE TABLE IF NOT EXISTS `exercises` (
-- Tábla adatainak mentése aitrainer.exercises: ~0 rows (hozzávetőleg)
/*!40000 ALTER TABLE `exercises` DISABLE KEYS */;
INSERT INTO `exercises` (`exercise_id`, `exercise_type_id`, `customer_id`, `date_add`, `quantity`, `unit`, `rest_time`) VALUES
(1, 1, 1, '2020-05-01 00:00:00', 12, 'repeat', NULL);
(1, 1, 1, '2020-05-01 00:00:00', 12, 'repeat', NULL, NULL);
/*!40000 ALTER TABLE `exercises` ENABLE KEYS */;
-- Struktúra mentése tábla aitrainer. exercise_evaluation

12
data/db/update_1_0_4.sql Normal file
View File

@ -0,0 +1,12 @@
ALTER TABLE `customer`
ADD COLUMN `birth_year` INT(4) NULL DEFAULT '0' AFTER `admin`,
ADD COLUMN `weight` INT(3) NULL DEFAULT '0' AFTER `birth_year`,
ADD COLUMN `goal` CHAR(20) NULL DEFAULT '' AFTER `weight`,
ADD COLUMN `fitness_level` ENUM('beginner','intermediate', 'advanced', 'professional') NOT NULL DEFAULT 'beginner' COLLATE 'utf8_hungarian_ci' after `goal`,
ADD COLUMN `body_type` ENUM('ectomorph','mesomorph', 'endomorph') NULL COLLATE 'utf8_hungarian_ci' after `fitness_level`;
ALTER TABLE `exercises`
CHANGE COLUMN `quantity` `quantity` DOUBLE NULL DEFAULT NULL AFTER `date_add`,
CHANGE COLUMN `unit_quantity` `unit_quantity` DOUBLE NULL DEFAULT NULL AFTER `unit`;
UPDATE configuration set config_value = "1.0.4" WHERE config_key = "db_version";

View File

@ -1,4 +1,4 @@
#aitrainer server API v0.0.5
#aitrainer server API v1.0.4
connects the MYSQL Database
provide a RESTful API for the mobile app

View File

@ -43,6 +43,8 @@ object Singleton {
this.dbVersion = dbConfig.configValue
this.appVersion = applicationVersion
logger.info("DBVersion: " + this.dbVersion + " App version: " + this.appVersion)
if ( dbConfig.configValue != applicationVersion ) {
try {

View File

@ -10,7 +10,7 @@ data class Customer (
var name: String = "",
var firstname: String = "",
var email: String = "",
var age: Int = 0,
var age: Int? = 0,
var sex: String = "m",
var active: String = "N",
var dateAdd: String? = null,
@ -18,7 +18,12 @@ data class Customer (
var dataPolicyAllowed: Int = 0,
var admin: Int = 0,
var password: String = "",
var birthYear:Int = 0,
var weight: Int = 0,
var goal: String? = null,
var fitnessLevel: String = "beginner",
var bodyType: String? = null,
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val customer_id: Long = 0
var customerId: Long = 0
)

View File

@ -12,7 +12,7 @@ data class Exercises (
@get: NonNull var exerciseTypeId: Long = 0,
@get: NonNull var customerId: Long = 0,
@get: NonNull var dateAdd: String? = null,
@get: NonNull var quantity: Int = 0,
@get: NonNull var quantity: Double? = null,
@get: Null var restTime: Int?, // in seconds
@get: NonNull var unit: String? = null,
@get: NonNull var unitQuantity: Double? = null,

View File

@ -16,6 +16,6 @@ logging.config=classpath:logback-spring.xml
logging.file=logs
# if the database structure has been changed, increment this version number
application.version=0.0.3
application.version=1.0.4
jwt.secret=aitrainer

View File

@ -44,12 +44,12 @@ class CustomerTests {
val savedCustomer: Customer = customerRepository.save(newCustomer)
assertEquals(savedCustomer.age, 48)
this.insertedId = savedCustomer.customer_id
this.insertedId = savedCustomer.customerId
val customer: Customer = customerRepository.findById( savedCustomer.customer_id ).orElse(null)
val customer: Customer = customerRepository.findById( savedCustomer.customerId ).orElse(null)
assertEquals( customer.firstname, "Tibor")
this.testUpdate(savedCustomer.customer_id)
this.testUpdate(savedCustomer.customerId)
}
fun testUpdate( customerId: Long ) {
@ -67,6 +67,30 @@ class CustomerTests {
customerRepository.delete(updatedCustomer)
}
@Test
fun testUpdateCustomer() {
var id:Long = 90
val customer: Customer = customerRepository.findById( id ).orElse(null)
customer.customerId = id
customer.firstname = "Tib"
customer.name = "Bossi"
customer.admin = 1
customer.active = "Y"
customer.sex = "m"
customer.birthYear = 1972
customer.bodyType = "endomorph"
customer.dataPolicyAllowed = 1
customer.fitnessLevel = "advanced"
val updatedCustomer = customerRepository.save(customer)
assertEquals(updatedCustomer.customerId, 90)
assertEquals(updatedCustomer.birthYear, 1972)
assertEquals(updatedCustomer.fitnessLevel, "advanced")
}
@Test
fun testRegistration() {
val json = "{\"username\":\"bosi@example.com\",\"password\":\"94385\"}"

View File

@ -19,7 +19,7 @@ class ExerciseTest {
var id: Long = 1
val exercises: List<Exercises> = exerciseRepository.getAllByCustomerId( id )
assertEquals( exercises[0].quantity, 12)
assertEquals( exercises[0].quantity, 12.2)
id = 100000
val exercises2: List<Exercises> = exerciseRepository.getAllByCustomerId( id )
@ -29,17 +29,30 @@ class ExerciseTest {
@Test
fun testInsert() {
val exercise = Exercises(
var exercise = Exercises(
exerciseTypeId = 3,
customerId = 11,
quantity = 100,
quantity = 100.0,
dateAdd = "2020-05-13 04:32:00",
unit = "repeat",
unitQuantity = 30.0,
restTime = null
)
val exerciseNew = exerciseRepository.save(exercise)
var exerciseNew = exerciseRepository.save(exercise)
assertTrue(exerciseNew.exerciseId > 2)
exerciseRepository.delete(exercise)
exercise = Exercises(
exerciseTypeId = 40,
customerId = 11,
quantity = 32.5,
dateAdd = "2020-07-05 04:32:00",
unit = "repeat",
unitQuantity = 32.6,
restTime = null
)
exerciseNew = exerciseRepository.save(exercise)
assertTrue(exerciseNew.exerciseId > 3)
exerciseRepository.delete(exercise)
}
}

View File

@ -40,7 +40,7 @@ class ExerciseTypeTest {
assertEquals(exerciseTypes[0].exerciseTypeId, 1)
assertEquals(exerciseTypes[0].name, "Melső fekvőtámasz 1 perc")
assertEquals(exerciseTypes[15].name, "Timed Pushup")
assertEquals(exerciseTypes[15].name, "Timed Pushups")
assertEquals(exerciseTypes[15].unit, "repeat")
assertEquals(exerciseTypes[15].unitQuantityUnit, "second")
}