This commit is contained in:
yannick.blanken@csc-online.eu 2022-05-17 17:20:38 +02:00
parent 019f75f063
commit e30890b783
9 changed files with 164 additions and 4 deletions

View File

@ -20,7 +20,7 @@ import javax.persistence.Table;
@ToString(callSuper = true)
public class VehicleBrandEntity extends AbstractEntity {
@Column(name = "brand_id", unique = true, nullable = false)
@Column(name = "brand_id", unique = true, nullable = false)
private String brandId;
@Column(nullable = false)

View File

@ -5,9 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.*;
@Getter
@Setter
@ -17,6 +15,22 @@ import javax.persistence.Table;
@Table(name = "tvehicle_models")
public class VehicleModelEntity extends AbstractEntity {
@ManyToOne
@JoinColumn(nullable = true, name = "vehicle_brand_id", insertable = false, updatable = false)
private VehicleBrandEntity brand;
@Column(name = "vehicle_brand_id", nullable = false)
private Long vehicle_brand_id;
@Column(name = "model_id", unique = true, nullable = false)
private String model;
@Column(nullable = false)
private String name;
public void setBrand(VehicleBrandEntity brand) {
this.brand = brand;
this.vehicle_brand_id = this.brand != null? brand.getId(): null;
}
}

View File

@ -0,0 +1,16 @@
package eu.csc.ODPAppVehOwnServer.persistence.respository;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleModelEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface VehicleModelRepository extends JpaRepository<VehicleModelEntity, Long> {
Optional<VehicleModelEntity> findOneByModel(String brand);
}

View File

@ -1,7 +1,9 @@
package eu.csc.ODPAppVehOwnServer.persistence.services;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleModelEntity;
import eu.csc.ODPAppVehOwnServer.persistence.respository.VehicleBrandRepository;
import eu.csc.ODPAppVehOwnServer.persistence.respository.VehicleModelRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -13,6 +15,9 @@ public class VehicleService {
@Autowired
private VehicleBrandRepository vehicleBrandRepository;
@Autowired
private VehicleModelRepository vehicleModelRepository;
public List<VehicleBrandEntity> findAllBrands(){
return vehicleBrandRepository.findAll();
}
@ -30,4 +35,22 @@ public class VehicleService {
}
public VehicleModelEntity addVehicleModel(String brand, String model, String name){
var parent = vehicleBrandRepository.findOneByBrandId(brand);
VehicleModelEntity vb = new VehicleModelEntity();
vb.setName(name);
vb.setModel(model);
vb.setBrand(parent.get());
vehicleModelRepository.save(vb);
return vb;
}
}

View File

@ -0,0 +1,14 @@
package eu.csc.ODPAppVehOwnServer.web.HTTPRequestTest.controller;
import org.junit.jupiter.api.BeforeEach;
public abstract class AbstractConfigControllerTester {
public void setUp(){
};
public void reset(){
};
}

View File

@ -0,0 +1,34 @@
package eu.csc.ODPAppVehOwnServer.web.HTTPRequestTest.controller;
import eu.csc.ODPAppVehOwnServer.ODPAppVehOwnServerApplication;
import eu.csc.data.IConfigConsts;
import lombok.var;
import org.junit.jupiter.api.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.persistence.EntityManagerFactory;
/**
* @see
*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = ODPAppVehOwnServerApplication.class)
public class TestConfigCapabilityController
extends AbstractConfigControllerTester {
@Autowired
private EntityManagerFactory entityManagerFactory;
@Override
@BeforeEach
public void setUp() {
super.setUp();
reset();
}
@Test
void name() {
Assertions.assertTrue(true);
}
}

View File

@ -0,0 +1,19 @@
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/appvehownserver
spring.datasource.username=root
spring.datasource.password=0cscadmin1
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.jdbc.batch_size=100
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates=true
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=250000
spring.jpa.properties.hibernate.generate_statistics=true

View File

@ -0,0 +1,16 @@
spring.profiles.active=ybdev
spring.datasource.hikari.maximum-pool-size=100
server.port=8081
spring.datasource.hikari.auto-commit=true
jwt.header=Authorization
jwt.secret=mySecret
jwt.expiration=604800
spring.data.rest.basePath=/api
server.servlet.context-path=/api
spring.main.allow-circular-references=true

View File

@ -30,4 +30,28 @@ private VehicleService vehicleService;
return getMessageString();
}
@ShellMethod(value = "add Vehicle Model", key = {"v_am", "v-am"})
public String addVehicle(String brand, String model, String name ){
addMessageString(vehicleService.addVehicleModel(brand, model, name).toString());
return getMessageString();
}
@ShellMethod(value = "export Vehicle", key = {"v_ex", "v-ex"})
public String doExport(){
var vehicles = vehicleService.findAllBrands();
for (var vehicle:vehicles) {
//toDo
}
return getMessageString();
}
}