added rest requests
This commit is contained in:
parent
b8ed45f579
commit
f6167336d2
|
|
@ -4,12 +4,16 @@ import eu.csc.ODPAppVehOwnServer.persistence.entity.AbstractEntity;
|
|||
import eu.csc.ODPAppVehOwnServer.persistence.entity.UserEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@MappedSuperclass
|
||||
public abstract class AbstractCustomerEntity extends AbstractEntity {
|
||||
@ManyToOne
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package eu.csc.ODPAppVehOwnServer.persistence.respository;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerVehicleEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.PropulsionTypeEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface CustomerVehicleRepository extends JpaRepository<CustomerVehicleEntity, Long> {
|
||||
|
||||
List<CustomerVehicleEntity> findAllByUser_id(Long userId);
|
||||
|
||||
}
|
||||
|
|
@ -16,5 +16,5 @@ public interface DeviceArticleRepository extends JpaRepository<DeviceArticleEnti
|
|||
|
||||
int countAllByDeviceDevicenumber(String device);
|
||||
|
||||
Optional<DeviceArticleEntity> findByDeviceDevicenumberAndSerialNumber(String brand, String name);
|
||||
Optional<DeviceArticleEntity> findByDeviceDevicenumberAndSerialNumber(String devicenumber, String name);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package eu.csc.ODPAppVehOwnServer.persistence.services;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.UserEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerVehicleEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceArticleEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.respository.CustomerVehicleRepository;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.respository.DeviceArticleRepository;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.respository.DeviceRepository;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.respository.UserRepository;
|
||||
|
|
@ -22,6 +24,9 @@ public class CustomerService {
|
|||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private CustomerVehicleRepository customerVehicleRepository;
|
||||
|
||||
public List<UserEntity> findAll() {
|
||||
|
||||
|
||||
|
|
@ -49,4 +54,9 @@ public class CustomerService {
|
|||
}
|
||||
|
||||
|
||||
public List<CustomerVehicleEntity> findAllVehicles(Long userId) {
|
||||
|
||||
return customerVehicleRepository.findAllByUser_id(userId);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,9 +63,11 @@ public class DeviceService {
|
|||
return entity;
|
||||
|
||||
}
|
||||
public Optional<DeviceArticleEntity> findByDeviceAndSerialnumber(String brand, String name){
|
||||
return deviceArticleRepository.findByDeviceDevicenumberAndSerialNumber(brand, name);
|
||||
public Optional<DeviceArticleEntity> findByDeviceAndSerialnumber(String devicenumber, String name){
|
||||
return deviceArticleRepository.findByDeviceDevicenumberAndSerialNumber(devicenumber, name);
|
||||
}
|
||||
|
||||
|
||||
public DeviceEntity addDevice(String brand, String name, String manufacturer) {
|
||||
DeviceEntity item = new DeviceEntity();
|
||||
|
||||
|
|
@ -75,4 +77,8 @@ public Optional<DeviceArticleEntity> findByDeviceAndSerialnumber(String brand, S
|
|||
|
||||
return deviceRepository.save(item);
|
||||
}
|
||||
|
||||
public Optional<DeviceEntity> findDeviceById(Long deviceId) {
|
||||
return deviceRepository.findById(deviceId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
package eu.csc.ODPAppVehOwnServer.persistence.services;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
@Service
|
||||
public class GsonService {
|
||||
|
||||
|
||||
private final Gson gson;
|
||||
|
||||
public GsonService() {
|
||||
GsonBuilder builder = new GsonBuilder();
|
||||
builder.setPrettyPrinting();
|
||||
|
||||
gson = builder.create();
|
||||
}
|
||||
|
||||
public void exportJson(Object data, String filePath) throws IOException {
|
||||
|
||||
|
||||
gson.toJson(data, new FileWriter(filePath));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,15 @@
|
|||
package eu.csc.ODPAppVehOwnServer.persistence.services;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
@Service
|
||||
public class UtilsService {
|
||||
|
||||
|
||||
public String getSerialnumber (int size) {
|
||||
|
||||
int serialNo = 000 + 1 + size;
|
||||
|
|
@ -18,4 +22,8 @@ public class UtilsService {
|
|||
|
||||
return ""+year + month + date + serialNo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package eu.csc.ODPAppVehOwnServer.controller;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.com.LoggedInWebUserDetails;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.ErrorResultDto;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
|
@ -7,6 +8,7 @@ import org.springframework.http.HttpHeaders;
|
|||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
|
|
@ -27,8 +29,13 @@ public abstract class AbstractRestController {
|
|||
return request.isUserInRole(role);
|
||||
}
|
||||
|
||||
protected Authentication getLoggedInUser(){
|
||||
return SecurityContextHolder.getContext().getAuthentication();
|
||||
protected UsernamePasswordAuthenticationToken getLoggedInUser(){
|
||||
return (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
|
||||
}
|
||||
|
||||
|
||||
protected LoggedInWebUserDetails getLoggedInWebUserDetails(){
|
||||
return (LoggedInWebUserDetails) getLoggedInUser().getPrincipal();
|
||||
}
|
||||
|
||||
//region ExceptionHandling
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
package eu.csc.ODPAppVehOwnServer.controller.data;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.regist.DeviceArticleDto;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceArticleEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.DeviceService;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.VehicleService;
|
||||
import lombok.var;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.persistence.EntityNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -22,7 +21,6 @@ public class DeviceController {
|
|||
private DeviceService deviceService;
|
||||
|
||||
@GetMapping
|
||||
|
||||
public ResponseEntity<List<DeviceDto>> showDevices() {
|
||||
|
||||
var items = new ArrayList<DeviceDto>();
|
||||
|
|
@ -31,17 +29,39 @@ public class DeviceController {
|
|||
) {
|
||||
|
||||
DeviceDto dto = new DeviceDto();
|
||||
dto.setId(v.getId());
|
||||
dto.setName(v.getName());
|
||||
dto.setDevicenumber(v.getDevicenumber());
|
||||
dto.setId(v.getId());
|
||||
dto.setManufacturer(v.getManufacturer());
|
||||
|
||||
items.add(dto);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return ResponseEntity.ok(items);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping()
|
||||
@RequestMapping("/{deviceId}")
|
||||
public ResponseEntity registerNewDeviceArticle(@PathVariable Long deviceId, @RequestBody DeviceArticleDto body){
|
||||
|
||||
var device = deviceService.findDeviceById(deviceId).orElseThrow(() -> new EntityNotFoundException());
|
||||
|
||||
DeviceArticleEntity generated = null;
|
||||
if(body == null||body.getSerialnumber() == null){
|
||||
generated =
|
||||
deviceService.generateDeviceArticle(device.getDevicenumber());
|
||||
}
|
||||
else {
|
||||
generated =
|
||||
deviceService.generateDeviceArticle(device.getDevicenumber(), body.getSerialnumber());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return ResponseEntity.ok(generated);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package eu.csc.ODPAppVehOwnServer.controller.registration;
|
|||
|
||||
import eu.csc.ODPAppVehOwnServer.controller.AbstractRestController;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.regist.DeviceArticleDto;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceArticleEntity;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.DeviceService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -26,4 +28,6 @@ public class DeviceRegistrationController extends AbstractRestController {
|
|||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,9 +40,6 @@ public class RegistrationController {
|
|||
user.setEmail(signUpDto.getEmail());
|
||||
user.setPassword(passwordEncoder.encode(signUpDto.getPassword()));
|
||||
|
||||
|
||||
|
||||
|
||||
userRepository.save(user);
|
||||
|
||||
return new ResponseEntity<>("User registered successfully", HttpStatus.OK);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package eu.csc.ODPAppVehOwnServer.controller.registration;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.controller.AbstractRestController;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.CustomerService;
|
||||
import lombok.var;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
|
@ -12,15 +14,16 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
@RequestMapping("reg/vehicles")
|
||||
public class VehicleRegistrationController extends AbstractRestController {
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity getUserVehicles(){
|
||||
|
||||
var user = getLoggedInUser();
|
||||
@Autowired
|
||||
private CustomerService customerService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity getUserVehicles() {
|
||||
|
||||
var user = getLoggedInWebUserDetails();
|
||||
|
||||
|
||||
|
||||
return ResponseEntity.ok(user);
|
||||
}
|
||||
return ResponseEntity.ok(customerService.findAllVehicles(user.getUserId()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,7 @@
|
|||
package eu.csc.ODPAppVehOwnServer.shell;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.DeviceService;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.GsonService;
|
||||
import eu.csc.ODPAppVehOwnServer.persistence.services.VehicleService;
|
||||
import lombok.var;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -9,6 +11,14 @@ import org.springframework.shell.standard.ShellMethod;
|
|||
@ShellComponent
|
||||
public class InfoCommands extends BaseCommands{
|
||||
|
||||
@Autowired
|
||||
private VehicleService vehicleService;
|
||||
@Autowired
|
||||
private DeviceService deviceService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private GsonService gsonService;
|
||||
|
||||
@ShellMethod(value = "Info", key = {"info"})
|
||||
public String info(){
|
||||
|
|
@ -18,5 +28,15 @@ public class InfoCommands extends BaseCommands{
|
|||
}
|
||||
|
||||
|
||||
@ShellMethod(value = "export Vehicle", key = {"ex"})
|
||||
public String doExport(){
|
||||
|
||||
var vehicles = vehicleService.findAllBrands();
|
||||
|
||||
|
||||
return getMessageString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,15 +7,16 @@ import org.springframework.shell.standard.ShellComponent;
|
|||
import org.springframework.shell.standard.ShellMethod;
|
||||
|
||||
@ShellComponent
|
||||
public class VehicleCommands extends BaseCommands{
|
||||
public class VehicleCommands extends BaseCommands {
|
||||
|
||||
@Autowired
|
||||
private VehicleService vehicleService;
|
||||
@ShellMethod(value = "list Vehicle", key = {"v_l"})
|
||||
public String listVehicles(){
|
||||
private VehicleService vehicleService;
|
||||
|
||||
for (var vehicle:vehicleService.findAllBrands()
|
||||
) {
|
||||
@ShellMethod(value = "list Vehicle", key = {"v_l"})
|
||||
public String listVehicles() {
|
||||
|
||||
for (var vehicle : vehicleService.findAllBrands()
|
||||
) {
|
||||
addMessageString(vehicle.toString());
|
||||
}
|
||||
|
||||
|
|
@ -24,30 +25,28 @@ private VehicleService vehicleService;
|
|||
|
||||
|
||||
@ShellMethod(value = "add Vehicle", key = {"v_a", "v-a"})
|
||||
public String addVehicle(String brand, String name){
|
||||
public String addVehicle(String brand, String name) {
|
||||
addMessageString(vehicleService.addVehicle(brand, name).toString());
|
||||
|
||||
return getMessageString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ShellMethod(value = "add Vehicle Model", key = {"v_am", "v-am"})
|
||||
public String addVehicle(String brand, String model, String name ){
|
||||
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(){
|
||||
public String doExport() {
|
||||
|
||||
var vehicles = vehicleService.findAllBrands();
|
||||
|
||||
|
||||
for (var vehicle:vehicles) {
|
||||
for (var vehicle : vehicles) {
|
||||
//toDo
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ public class VehOwnAppClient extends AbstractClient implements IDataClient {
|
|||
|
||||
this.clientService = ClientFactory.createService(url, ClientService.class);
|
||||
}
|
||||
|
||||
public VehOwnAppClient(String url, String token) {
|
||||
var builder = getRetrofitBuilder(url);
|
||||
var interceptor = getTokenAuthenticationInterceptor(token);
|
||||
|
|
@ -75,7 +76,6 @@ public class VehOwnAppClient extends AbstractClient implements IDataClient {
|
|||
//region
|
||||
|
||||
|
||||
|
||||
//endregion
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package eu.csc.ODPAppVehOwnServer.client.service;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.VehicleModelDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.LanguageDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.PropulsionTypeDto;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.GET;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DataClientService {
|
||||
|
||||
//region Vehicle
|
||||
|
||||
@GET("/api/vehicles/brands")
|
||||
Call<List<VehicleBrandDto>> listBrands();
|
||||
|
||||
@GET("/api/vehicles/models")
|
||||
Call<List<VehicleModelDto>> listVehicleModels();
|
||||
|
||||
@GET("/api/vehicles/propulsiontypes")
|
||||
Call<List<PropulsionTypeDto>> listPropulsionTypes();
|
||||
|
||||
//endregion
|
||||
|
||||
@GET("/api/devices/")
|
||||
Call<List<DeviceDto>> listDevices();
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package eu.csc.ODPAppVehOwnServer.models.base;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
|
||||
public abstract class AbstractServerDto {
|
||||
|
||||
private Long id;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package eu.csc.ODPAppVehOwnServer.models.regist;
|
||||
|
||||
import eu.csc.ODPAppVehOwnServer.models.base.AbstractServerDto;
|
||||
import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class DeviceArticleDto extends AbstractServerDto {
|
||||
|
||||
|
||||
private DeviceDto device;
|
||||
private String serialnumber;
|
||||
}
|
||||
Loading…
Reference in New Issue