Skip to content

Commit b8a04ed

Browse files
committed
create series & sale in a single transcation
1 parent c4fdd91 commit b8a04ed

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

src/main/java/ru/mystamps/web/config/ServicesConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public SeriesImportService getSeriesImportService() {
178178
LoggerFactory.getLogger(SeriesImportServiceImpl.class),
179179
daoConfig.getSeriesImportDao(),
180180
getSeriesService(),
181+
getSeriesSalesService(),
181182
getSeriesSalesImportService(),
182183
getSeriesInfoExtractorService(),
183184
eventPublisher

src/main/java/ru/mystamps/web/controller/SeriesImportController.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,15 +205,13 @@ public String processImportSeriesForm(
205205
return "series/import/info";
206206
}
207207

208-
// TODO: extract method
209-
Integer seriesId = seriesImportService.addSeries(form, requestId, currentUserId);
210-
211208
if (seriesSaleForm != null) {
212209
seriesSaleForm.setDate(new Date());
213210
seriesSaleForm.setUrl(request.getUrl());
214-
seriesSalesService.add(seriesSaleForm, seriesId, currentUserId);
215211
}
216212

213+
Integer seriesId = seriesImportService.addSeries(form, requestId, currentUserId);
214+
217215
return redirectTo(Url.INFO_SERIES_PAGE, seriesId);
218216
}
219217

src/main/java/ru/mystamps/web/service/SeriesImportServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import ru.mystamps.web.dao.dto.SeriesParsedDataDto;
4646
import ru.mystamps.web.dao.dto.SeriesSalesParsedDataDbDto;
4747
import ru.mystamps.web.service.dto.AddSeriesDto;
48+
import ru.mystamps.web.service.dto.AddSeriesSalesDto;
4849
import ru.mystamps.web.service.dto.RawParsedDataDto;
4950
import ru.mystamps.web.service.dto.RequestImportDto;
5051
import ru.mystamps.web.service.dto.SeriesExtractedInfo;
@@ -58,6 +59,7 @@ public class SeriesImportServiceImpl implements SeriesImportService {
5859
private final Logger log;
5960
private final SeriesImportDao seriesImportDao;
6061
private final SeriesService seriesService;
62+
private final SeriesSalesService seriesSalesService;
6163
private final SeriesSalesImportService seriesSalesImportService;
6264
private final SeriesInfoExtractorService extractorService;
6365
private final ApplicationEventPublisher eventPublisher;
@@ -101,6 +103,12 @@ public Integer addSeries(AddSeriesDto dto, Integer requestId, Integer userId) {
101103

102104
Date now = new Date();
103105

106+
// TODO: update unit tests
107+
AddSeriesSalesDto saleDto = dto.getSeriesSalesDto();
108+
if (saleDto != null) {
109+
seriesSalesService.add(saleDto, seriesId, userId);
110+
}
111+
104112
seriesImportDao.setSeriesIdAndChangeStatus(
105113
requestId,
106114
seriesId,

src/main/java/ru/mystamps/web/service/dto/AddSeriesDto.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,9 @@ public interface AddSeriesDto {
5252

5353
String getComment();
5454
MultipartFile getImage();
55+
56+
default AddSeriesSalesDto getSeriesSalesDto() {
57+
return null;
58+
}
59+
5560
}

src/test/groovy/ru/mystamps/web/service/SeriesImportServiceImplTest.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class SeriesImportServiceImplTest extends Specification {
4949

5050
private final SeriesImportDao seriesImportDao = Mock()
5151
private final SeriesService seriesService = Mock()
52+
private final SeriesSalesService seriesSalesService = Mock()
5253
private final SeriesSalesImportService seriesSalesImportService = Mock()
5354
private final SeriesInfoExtractorService extractorService = Mock()
5455
private final ApplicationEventPublisher eventPublisher = Mock()
@@ -61,6 +62,7 @@ class SeriesImportServiceImplTest extends Specification {
6162
NOPLogger.NOP_LOGGER,
6263
seriesImportDao,
6364
seriesService,
65+
seriesSalesService,
6466
seriesSalesImportService,
6567
extractorService,
6668
eventPublisher

0 commit comments

Comments
 (0)