diff --git a/doc/generated/AppVehOwnServerClient.jar b/doc/generated/AppVehOwnServerClient.jar index 89df59f..b60003f 100644 Binary files a/doc/generated/AppVehOwnServerClient.jar and b/doc/generated/AppVehOwnServerClient.jar differ diff --git a/doc/generated/AppVehOwnServerDto.jar b/doc/generated/AppVehOwnServerDto.jar index 7a4e37c..da4f668 100644 Binary files a/doc/generated/AppVehOwnServerDto.jar and b/doc/generated/AppVehOwnServerDto.jar differ diff --git a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/CustomerService.java b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/CustomerService.java index 6de3221..7ea1f88 100644 --- a/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/CustomerService.java +++ b/persistence/src/main/java/eu/csc/ODPAppVehOwnServer/persistence/services/CustomerService.java @@ -117,4 +117,8 @@ public class CustomerService { return false; } + + public Optional findCustomer(Long id) { + return userRepository.findById(id); + } } diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/CustomerController.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/CustomerController.java index 192db38..9197816 100644 --- a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/CustomerController.java +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/CustomerController.java @@ -2,14 +2,14 @@ package eu.csc.ODPAppVehOwnServer.controller.customer; import eu.csc.ODPAppVehOwnServer.controller.AbstractRestController; import eu.csc.ODPAppVehOwnServer.models.MessageDto; +import eu.csc.ODPAppVehOwnServer.models.data.CustomerProfileDto; 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.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -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.logging.Logger; @@ -24,11 +24,22 @@ public class CustomerController extends AbstractRestController { @PostMapping @RequestMapping("/vehicle/unregister/{vin}") - public ResponseEntity registerCustomerVehicle(@PathVariable String vin){ + public ResponseEntity registerCustomerVehicle(@PathVariable String vin) { logger.info("unregistering vin from customer"); - boolean done =customerService.unregisterVehicle(getLoggedInWebUserId(), vin); + boolean done = customerService.unregisterVehicle(getLoggedInWebUserId(), vin); return getSuccessResponse(new MessageDto(42, "deleted: " + done)); } + @GetMapping + @RequestMapping("/profile") + public ResponseEntity fetchCustomerProfile() { + + if (getLoggedInWebUserId() == null) + throw new EntityNotFoundException(); + + var user = customerService.findCustomer(getLoggedInWebUserId()); + return getSuccessResponse(dtoMapper.mapCustomerProfileToDto(user.get())); + } + } diff --git a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/MobilePhoneController.java b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/MobilePhoneController.java index 0fc7aa9..cc6cbde 100644 --- a/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/MobilePhoneController.java +++ b/server/restserver/src/main/java/eu/csc/ODPAppVehOwnServer/controller/customer/MobilePhoneController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; import java.util.logging.Logger; @RestController -@RequestMapping("customer/mobilephones") +@RequestMapping("/customer/mobilephones") public class MobilePhoneController extends AbstractRestController { private static final Logger logger = Logger.getLogger(MobilePhoneController.class.getSimpleName()); @@ -22,9 +22,11 @@ public class MobilePhoneController extends AbstractRestController { @PostMapping public ResponseEntity registerCustomerDevice(@RequestBody CustomerMobilePhoneDto body) { + Long userId = getLoggedInWebUserId(); - var entity = customerService.registerMobilePhone(body.getName(), body.getIdentifier(), getLoggedInWebUserId()); + var entity = customerService + .registerMobilePhone(body.getName(), body.getIdentifier(), getLoggedInWebUserId()); diff --git a/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java b/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java index 9b0948a..31e6695 100644 --- a/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java +++ b/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java @@ -2,11 +2,13 @@ package eu.csc.ODPAppVehOwnServer.mapper; import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto; +import eu.csc.ODPAppVehOwnServer.models.data.CustomerProfileDto; import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto; import eu.csc.ODPAppVehOwnServer.models.data.LanguageDto; import eu.csc.ODPAppVehOwnServer.models.data.PropulsionTypeDto; import eu.csc.ODPAppVehOwnServer.models.regist.CustomerDeviceDto; import eu.csc.ODPAppVehOwnServer.models.regist.CustomerVehicleDto; +import eu.csc.ODPAppVehOwnServer.persistence.entity.UserEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerDeviceEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerVehicleEntity; import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceEntity; @@ -121,4 +123,17 @@ public class DtoMapper { return result; } + + public CustomerProfileDto mapCustomerProfileToDto(UserEntity user) { + CustomerProfileDto result = new CustomerProfileDto(); + + result.setId(user.getId()); + result.setEmail(user.getEmail()); + result.setFirstname(user.getFirstname()); + result.setLastname(user.getLastname()); + result.setStreet(user.getStreet()); + result.setPhone(user.getPhone()); + + return result; + } } diff --git a/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/CustomerService.java b/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/CustomerService.java index c95df0b..b934329 100644 --- a/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/CustomerService.java +++ b/webcoreroot/client/src/main/java/eu/csc/ODPAppVehOwnServer/client/service/CustomerService.java @@ -1,6 +1,7 @@ package eu.csc.ODPAppVehOwnServer.client.service; import eu.csc.ODPAppVehOwnServer.models.MessageDto; +import eu.csc.ODPAppVehOwnServer.models.data.CustomerProfileDto; import eu.csc.ODPAppVehOwnServer.models.regist.CustomerDeviceDto; import eu.csc.ODPAppVehOwnServer.models.regist.CustomerVehicleDto; import eu.csc.ODPAppVehOwnServer.models.regist.UserVehicleRegistrationDto; @@ -19,6 +20,9 @@ public interface CustomerService extends IApiService{ @GET("/api/reg/vehicles") Call> listCustomerVehicle(); + @GET("/api/customer/profile") + Call fetchCustomerProfile(); + @POST("/api/reg/vehicles") Call registerUserVehicle(@Body UserVehicleRegistrationDto body); diff --git a/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/CustomerProfileDto.java b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/CustomerProfileDto.java index f0d8d09..8830a6f 100644 --- a/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/CustomerProfileDto.java +++ b/webcoreroot/dto/src/main/java/eu/csc/ODPAppVehOwnServer/models/data/CustomerProfileDto.java @@ -14,4 +14,9 @@ public class CustomerProfileDto extends AbstractServerDto { private String password; private String email; + + private String firstname; + private String lastname; + private String phone; + private String street; }