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 getLoggedCustomerInfo() { return new ResponseEntity<>(customerService.getLoggedCustomerDTO(), HttpStatus.OK); } @AuditLoggingInject(type = EDIT_CUSTOMER_DATA) @PutMapping("") public ResponseEntity 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); } }