保誠-保戶業務員媒合平台
wayne
2022-03-11 242fad1691917c4fd82c7f04b6190a7113628e93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
    }
}