Skip to content

Commit 66ea2ba

Browse files
author
Roman S.A
committed
add working with db
1 parent 690e40b commit 66ea2ba

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/main/java/ru/shortener/service/DefaultKeyMapperService.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,34 @@
22

33
import org.springframework.beans.factory.annotation.Autowired;
44
import org.springframework.stereotype.Component;
5-
import org.springframework.util.Assert;
65
import ru.shortener.model.Link;
6+
import ru.shortener.repository.LinkRepository;
77

8-
import java.util.HashMap;
9-
import java.util.Map;
10-
import java.util.concurrent.atomic.AtomicLong;
8+
import java.util.Optional;
119

1210
@Component
1311
public class DefaultKeyMapperService implements KeyMapperService {
1412

15-
private Map<Long, Link> map = new HashMap<>();
16-
1713
@Autowired
18-
KeyConverterService converterService;
14+
private KeyConverterService converterService;
1915

20-
private AtomicLong sequence = new AtomicLong(10000000L);
16+
@Autowired
17+
private LinkRepository repository;
2118

2219
@Override
2320
public String add(String url) {
24-
Long id = sequence.getAndIncrement();
2521
Link link = new Link();
2622
link.setUrl(url);
27-
map.put(id, link);
28-
return converterService.idToKey(id);
23+
return converterService.idToKey(repository.save(link).getId());
2924
}
3025

3126
@Override
3227
public Link getLink(String key) {
3328
Long id = converterService.keyToId(key);
34-
Assert.notNull(map.get(id), "Link with key non exists: " + key);
35-
return map.get(id);
29+
Optional<Link> res = repository.findOne(id);
30+
if (!res.isPresent()) {
31+
throw new RuntimeException("Link with key non exists: " + key);
32+
}
33+
return res.get();
3634
}
3735
}

0 commit comments

Comments
 (0)