package com.pollex.pam.web.rest;
|
|
import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject;
|
import com.pollex.pam.service.CustomerService;
|
import com.pollex.pam.business.service.dto.CustomerDTO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpStatus;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.util.Assert;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.EDIT_CUSTOMER_DATA;
|
|
@RestController
|
@RequestMapping("/api/customer/info")
|
public class CustomerInfoResource {
|
|
@Autowired
|
CustomerService customerService;
|
|
@GetMapping("")
|
public ResponseEntity<CustomerDTO> getLoggedCustomerInfo() {
|
return new ResponseEntity<>(customerService.getLoggedCustomerDTO(), HttpStatus.OK);
|
}
|
|
@AuditLoggingInject(type = EDIT_CUSTOMER_DATA)
|
@PutMapping("")
|
public ResponseEntity<Void> updateLoggedCustomerInfo(@RequestBody CustomerDTO customerDTO) {
|
boolean hasEmail = StringUtils.hasText(customerDTO.getEmail());
|
boolean hasPhone = StringUtils.hasText(customerDTO.getPhone());
|
Assert.isTrue(hasEmail || hasPhone, "the email and the phone both are empty!");
|
|
customerService.updateLoggedCustomer(customerDTO);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
}
|
}
|