-
Notifications
You must be signed in to change notification settings - Fork 598
Expand file tree
/
Copy pathBeerServiceImpl.java
More file actions
122 lines (101 loc) · 3.49 KB
/
Copy pathBeerServiceImpl.java
File metadata and controls
122 lines (101 loc) · 3.49 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package guru.springframework.spring6restmvc.services;
import guru.springframework.spring6restmvc.model.Beer;
import guru.springframework.spring6restmvc.model.BeerStyle;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
@Service
public class BeerServiceImpl implements BeerService {
private Map<UUID,Beer> beerMap;
public BeerServiceImpl(){
this.beerMap= new HashMap<>();
Beer beer1=Beer.builder()
.id(UUID.randomUUID())
.upc("h")
.price(new BigDecimal(12.3))
.version(2)
.beerName("asmara beer")
.quantityOnHand(123)
.beerStyle(BeerStyle.ALE)
.createdDate(LocalDateTime.now())
.updateDate(LocalDateTime.now())
.build();
Beer beer2=Beer.builder()
.id(UUID.randomUUID())
.upc("h")
.price(new BigDecimal(12.3))
.version(2)
.beerName("asmara beer")
.quantityOnHand(123)
.beerStyle(BeerStyle.ALE)
.createdDate(LocalDateTime.now())
.updateDate(LocalDateTime.now())
.build();
Beer beer3=Beer.builder()
.id(UUID.randomUUID())
.upc("h")
.price(new BigDecimal(12.3))
.version(2)
.beerName("asmara beer")
.quantityOnHand(123)
.beerStyle(BeerStyle.ALE)
.createdDate(LocalDateTime.now())
.updateDate(LocalDateTime.now())
.build();
beerMap.put(beer1.getId(),beer1);
beerMap.put(beer2.getId(),beer2);
beerMap.put(beer3.getId(),beer3);
}
@Override
public Beer getById(UUID Id) {
return beerMap.get(Id);
}
@Override
public List<Beer> listBeers(){
return new ArrayList<>(beerMap.values());
}
@Override
public Beer save(Beer beer) {
Beer savedBeer=Beer.builder()
.id(UUID.randomUUID())
.upc(beer.getUpc())
.price(new BigDecimal(12.3))
.version(2)
.beerName(beer.getBeerName())
.quantityOnHand(123)
.beerStyle(BeerStyle.ALE)
.createdDate(LocalDateTime.now())
.updateDate(LocalDateTime.now())
.build();
beerMap.put(savedBeer.getId(),savedBeer);
return savedBeer;
}
@Override
public void updateBeer(Beer beer, UUID beerId) {
Beer existingBeer=beerMap.get(beerId);
existingBeer.setBeerName(beer.getBeerName());
existingBeer.setPrice(beer.getPrice());
}
@Override
public void deleteBeerById(UUID beerId) {
beerMap.remove(beerId);
}
@Override
public void patchBeerById(UUID beerId, Beer beer) {
Beer existing = beerMap.get(beerId);
if (StringUtils.hasText(beer.getBeerName())) {
existing.setBeerName(beer.getBeerName());
}
if (beer.getBeerStyle() != null) {
existing.setBeerStyle(beer.getBeerStyle());
}
if (beer.getPrice() != null) {
existing.setPrice(beer.getPrice());
}
if (beer.getQuantityOnHand() != null) {
existing.setQuantityOnHand(beer.getQuantityOnHand());
}
}
}