Skip to content

Commit c4fdd91

Browse files
committed
SeriesSalesImportService: introduce.
1 parent ca218f2 commit c4fdd91

File tree

8 files changed

+101
-21
lines changed

8 files changed

+101
-21
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public SeriesImportController getSeriesImportController() {
117117
return new SeriesImportController(
118118
servicesConfig.getSeriesImportService(),
119119
servicesConfig.getSeriesSalesService(),
120+
servicesConfig.getSeriesSalesImportService(),
120121
getSeriesController(),
121122
eventPublisher
122123
);

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ public SeriesImportService getSeriesImportService() {
177177
return new SeriesImportServiceImpl(
178178
LoggerFactory.getLogger(SeriesImportServiceImpl.class),
179179
daoConfig.getSeriesImportDao(),
180-
daoConfig.getSeriesSalesImportDao(),
181180
getSeriesService(),
181+
getSeriesSalesImportService(),
182182
getSeriesInfoExtractorService(),
183183
eventPublisher
184184
);
@@ -205,6 +205,14 @@ public SeriesSalesService getSeriesSalesService() {
205205
);
206206
}
207207

208+
@Bean
209+
public SeriesSalesImportService getSeriesSalesImportService() {
210+
return new SeriesSalesImportServiceImpl(
211+
LoggerFactory.getLogger(SeriesSalesImportServiceImpl.class),
212+
daoConfig.getSeriesSalesImportDao()
213+
);
214+
}
215+
208216
@Bean
209217
public SiteService getSiteService() {
210218
return new SiteServiceImpl(

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import ru.mystamps.web.dao.dto.SeriesParsedDataDto;
4949
import ru.mystamps.web.dao.dto.SeriesSaleParsedDataDto;
5050
import ru.mystamps.web.service.SeriesImportService;
51+
import ru.mystamps.web.service.SeriesSalesImportService;
5152
import ru.mystamps.web.service.SeriesSalesService;
5253
import ru.mystamps.web.util.LocaleUtils;
5354

@@ -59,6 +60,7 @@ public class SeriesImportController {
5960

6061
private final SeriesImportService seriesImportService;
6162
private final SeriesSalesService seriesSalesService;
63+
private final SeriesSalesImportService seriesSalesImportService;
6264
private final SeriesController seriesController;
6365
private final ApplicationEventPublisher eventPublisher;
6466

@@ -132,7 +134,7 @@ public String showRequestAndImportSeriesForm(
132134
}
133135
}
134136

135-
SeriesSaleParsedDataDto seriesSale = seriesImportService.getSeriesSaleParsedData(requestId);
137+
SeriesSaleParsedDataDto seriesSale = seriesSalesImportService.getParsedData(requestId);
136138
if (seriesSale != null) {
137139
ImportSeriesSalesForm seriesSaleForm = new ImportSeriesSalesForm();
138140
seriesSaleForm.setSellerId(seriesSale.getSellerId());
@@ -203,6 +205,7 @@ public String processImportSeriesForm(
203205
return "series/import/info";
204206
}
205207

208+
// TODO: extract method
206209
Integer seriesId = seriesImportService.addSeries(form, requestId, currentUserId);
207210

208211
if (seriesSaleForm != null) {

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import ru.mystamps.web.dao.dto.ImportRequestFullInfo;
2424
import ru.mystamps.web.dao.dto.ImportRequestInfo;
2525
import ru.mystamps.web.dao.dto.SeriesParsedDataDto;
26-
import ru.mystamps.web.dao.dto.SeriesSaleParsedDataDto;
2726
import ru.mystamps.web.service.dto.AddSeriesDto;
2827
import ru.mystamps.web.service.dto.RawParsedDataDto;
2928
import ru.mystamps.web.service.dto.RequestImportDto;
@@ -37,7 +36,6 @@ public interface SeriesImportService {
3736
String getDownloadedContent(Integer requestId);
3837
void saveParsedData(Integer requestId, RawParsedDataDto data);
3938
SeriesParsedDataDto getParsedData(Integer requestId, String lang);
40-
SeriesSaleParsedDataDto getSeriesSaleParsedData(Integer requestId);
4139
ImportRequestInfo findRequestInfo(Integer seriesId);
4240
List<ImportRequestFullInfo> findAll();
4341
}

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

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,12 @@
3737
import ru.mystamps.web.Db.SeriesImportRequestStatus;
3838
import ru.mystamps.web.controller.event.ParsingFailed;
3939
import ru.mystamps.web.dao.SeriesImportDao;
40-
import ru.mystamps.web.dao.SeriesSalesImportDao;
4140
import ru.mystamps.web.dao.dto.AddSeriesParsedDataDbDto;
4241
import ru.mystamps.web.dao.dto.ImportRequestDto;
4342
import ru.mystamps.web.dao.dto.ImportRequestFullInfo;
4443
import ru.mystamps.web.dao.dto.ImportRequestInfo;
4544
import ru.mystamps.web.dao.dto.ImportSeriesDbDto;
4645
import ru.mystamps.web.dao.dto.SeriesParsedDataDto;
47-
import ru.mystamps.web.dao.dto.SeriesSaleParsedDataDto;
4846
import ru.mystamps.web.dao.dto.SeriesSalesParsedDataDbDto;
4947
import ru.mystamps.web.service.dto.AddSeriesDto;
5048
import ru.mystamps.web.service.dto.RawParsedDataDto;
@@ -59,8 +57,8 @@ public class SeriesImportServiceImpl implements SeriesImportService {
5957

6058
private final Logger log;
6159
private final SeriesImportDao seriesImportDao;
62-
private final SeriesSalesImportDao seriesSalesImportDao;
6360
private final SeriesService seriesService;
61+
private final SeriesSalesImportService seriesSalesImportService;
6462
private final SeriesInfoExtractorService extractorService;
6563
private final ApplicationEventPublisher eventPublisher;
6664

@@ -202,8 +200,7 @@ public void saveParsedData(Integer requestId, RawParsedDataDto data) {
202200
seriesImportDao.addParsedContent(requestId, seriesParsedData);
203201

204202
if (seriesSalesParsedData.hasAtLeastOneFieldFilled()) {
205-
// TODO: use service method instead of dao method
206-
seriesSalesImportDao.addParsedContent(requestId, seriesSalesParsedData);
203+
seriesSalesImportService.saveParsedData(requestId, seriesSalesParsedData);
207204
}
208205

209206
log.info(
@@ -228,15 +225,6 @@ public SeriesParsedDataDto getParsedData(Integer requestId, String lang) {
228225
return seriesImportDao.findParsedDataByRequestId(requestId, lang);
229226
}
230227

231-
// @todo #695 SeriesImportServiceImpl.getSeriesSaleParsedData(): add unit tests
232-
@Override
233-
@Transactional(readOnly = true)
234-
public SeriesSaleParsedDataDto getSeriesSaleParsedData(Integer requestId) {
235-
Validate.isTrue(requestId != null, "Request id must be non null");
236-
237-
return seriesSalesImportDao.findParsedDataByRequestId(requestId);
238-
}
239-
240228
@Override
241229
@Transactional(readOnly = true)
242230
@PreAuthorize(HasAuthority.IMPORT_SERIES)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright (C) 2009-2018 Slava Semushin <[email protected]>
3+
*
4+
* This program is free software; you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation; either version 2 of the License, or
7+
* (at your option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with this program; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17+
*/
18+
package ru.mystamps.web.service;
19+
20+
import ru.mystamps.web.dao.dto.SeriesSaleParsedDataDto;
21+
import ru.mystamps.web.dao.dto.SeriesSalesParsedDataDbDto;
22+
23+
public interface SeriesSalesImportService {
24+
void saveParsedData(Integer requestId, SeriesSalesParsedDataDbDto seriesSalesParsedData);
25+
SeriesSaleParsedDataDto getParsedData(Integer requestId);
26+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Copyright (C) 2009-2018 Slava Semushin <[email protected]>
3+
*
4+
* This program is free software; you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation; either version 2 of the License, or
7+
* (at your option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with this program; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17+
*/
18+
package ru.mystamps.web.service;
19+
20+
import org.apache.commons.lang3.Validate;
21+
22+
import org.slf4j.Logger;
23+
24+
import org.springframework.transaction.annotation.Transactional;
25+
26+
import lombok.RequiredArgsConstructor;
27+
28+
import ru.mystamps.web.dao.SeriesSalesImportDao;
29+
import ru.mystamps.web.dao.dto.SeriesSaleParsedDataDto;
30+
import ru.mystamps.web.dao.dto.SeriesSalesParsedDataDbDto;
31+
32+
@RequiredArgsConstructor
33+
public class SeriesSalesImportServiceImpl implements SeriesSalesImportService {
34+
35+
private final Logger log;
36+
private final SeriesSalesImportDao seriesSalesImportDao;
37+
38+
// @todo #695 SeriesSalesImportServiceImpl.saveParsedData(): add unit tests
39+
@Override
40+
@Transactional
41+
public void saveParsedData(Integer requestId, SeriesSalesParsedDataDbDto data) {
42+
Validate.isTrue(requestId != null, "Request id must be non null");
43+
Validate.isTrue(data != null, "Parsed data must be non null");
44+
45+
seriesSalesImportDao.addParsedContent(requestId, data);
46+
}
47+
48+
// @todo #695 SeriesSalesImportServiceImpl.getParsedData(): add unit tests
49+
@Override
50+
@Transactional(readOnly = true)
51+
public SeriesSaleParsedDataDto getParsedData(Integer requestId) {
52+
Validate.isTrue(requestId != null, "Request id must be non null");
53+
54+
return seriesSalesImportDao.findParsedDataByRequestId(requestId);
55+
}
56+
57+
}

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import org.springframework.context.ApplicationEventPublisher
3131
import ru.mystamps.web.controller.dto.RequestImportForm
3232
import ru.mystamps.web.controller.event.ParsingFailed
3333
import ru.mystamps.web.Db.SeriesImportRequestStatus
34-
import ru.mystamps.web.dao.SeriesSalesImportDao
3534
import ru.mystamps.web.dao.dto.ImportRequestDto
3635
import ru.mystamps.web.dao.dto.SeriesParsedDataDto
3736
import ru.mystamps.web.dao.SeriesImportDao
@@ -49,8 +48,8 @@ import ru.mystamps.web.tests.Random
4948
class SeriesImportServiceImplTest extends Specification {
5049

5150
private final SeriesImportDao seriesImportDao = Mock()
52-
SeriesSalesImportDao seriesSalesImportDao = Mock()
5351
private final SeriesService seriesService = Mock()
52+
private final SeriesSalesImportService seriesSalesImportService = Mock()
5453
private final SeriesInfoExtractorService extractorService = Mock()
5554
private final ApplicationEventPublisher eventPublisher = Mock()
5655

@@ -61,8 +60,8 @@ class SeriesImportServiceImplTest extends Specification {
6160
service = new SeriesImportServiceImpl(
6261
NOPLogger.NOP_LOGGER,
6362
seriesImportDao,
64-
seriesSalesImportDao,
6563
seriesService,
64+
seriesSalesImportService,
6665
extractorService,
6766
eventPublisher
6867
)

0 commit comments

Comments
 (0)