-
Notifications
You must be signed in to change notification settings - Fork 149
Expand file tree
/
Copy pathCustomerService.java
More file actions
64 lines (51 loc) · 2.35 KB
/
CustomerService.java
File metadata and controls
64 lines (51 loc) · 2.35 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.programmers.springbootjpa.service;
import com.programmers.springbootjpa.domain.Customer;
import com.programmers.springbootjpa.dto.request.CustomerCreateRequest;
import com.programmers.springbootjpa.dto.request.CustomerUpdateRequest;
import com.programmers.springbootjpa.dto.response.CustomerResponse;
import com.programmers.springbootjpa.repository.CustomerRepository;
import java.util.List;
import java.util.NoSuchElementException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class CustomerService {
private final CustomerRepository customerRepository;
@Transactional
public void createCustomer(CustomerCreateRequest customerCreateRequest) {
Customer customer = Customer.builder()
.name(customerCreateRequest.getName())
.age(customerCreateRequest.getAge())
.nickName(customerCreateRequest.getNickName())
.address(customerCreateRequest.getAddress())
.build();
customerRepository.save(customer);
}
public List<CustomerResponse> readAllCustomer() {
List<Customer> customers = customerRepository.findAll();
return customers.stream()
.map(CustomerResponse::new)
.toList();
}
public CustomerResponse readCustomer(Long id) {
Customer customer = customerRepository.findById(id)
.orElseThrow(() -> new NoSuchElementException("찾는 사용자가 없습니다."));
return new CustomerResponse(customer);
}
@Transactional
public void updateCustomer(CustomerUpdateRequest customerUpdateRequest) {
Customer customer = customerRepository.findById(customerUpdateRequest.getId())
.orElseThrow(() -> new NoSuchElementException("업데이트 할 사용자가 없습니다."));
customer.changeNickName(customerUpdateRequest.getNickName());
customer.changeAddress(customerUpdateRequest.getAddress());
}
@Transactional
public void deleteCustomer(Long id) {
customerRepository.findById(id)
.orElseThrow(() -> new NoSuchElementException("삭제할 사용자가 없습니다."));
customerRepository.deleteById(id);
}
}