Skip to content

Commit 5dcfb49

Browse files
committed
refactor(AddSeriesParsedDataDbDto): modify to support multiple image URLs
Part of #698
1 parent cf122af commit 5dcfb49

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

src/main/java/ru/mystamps/web/feature/series/importing/AddSeriesParsedDataDbDto.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@
2222
import lombok.ToString;
2323

2424
import java.util.Date;
25+
import java.util.List;
2526

2627
@Getter
2728
@Setter
2829
@ToString(exclude = { "createdAt", "updatedAt" })
2930
public class AddSeriesParsedDataDbDto {
3031
private Integer categoryId;
3132
private Integer countryId;
32-
private String imageUrl;
33+
private List<String> imageUrls;
3334
private Integer releaseDay;
3435
private Integer releaseMonth;
3536
private Integer releaseYear;
@@ -39,10 +40,12 @@ public class AddSeriesParsedDataDbDto {
3940
private Date createdAt;
4041
private Date updatedAt;
4142

43+
// they aren't useless
44+
@SuppressWarnings("PMD.UselessParentheses")
4245
public boolean hasAtLeastOneFieldFilled() {
4346
return categoryId != null
4447
|| countryId != null
45-
|| imageUrl != null
48+
|| (imageUrls != null && !imageUrls.isEmpty())
4649
|| releaseYear != null
4750
|| quantity != null
4851
|| perforated != null

src/main/java/ru/mystamps/web/feature/series/importing/JdbcSeriesImportDao.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,9 @@ public void addParsedData(Integer requestId, AddSeriesParsedDataDbDto data) {
185185
params.put("request_id", requestId);
186186
params.put("category_id", data.getCategoryId());
187187
params.put("country_id", data.getCountryId());
188-
params.put("image_url", data.getImageUrl());
188+
List<String> imageUrls = data.getImageUrls();
189+
String imageUrl = imageUrls == null || imageUrls.isEmpty() ? null : imageUrls.get(0);
190+
params.put("image_url", imageUrl);
189191
params.put("release_day", data.getReleaseDay());
190192
params.put("release_month", data.getReleaseMonth());
191193
params.put("release_year", data.getReleaseYear());

src/main/java/ru/mystamps/web/feature/series/importing/SeriesImportServiceImpl.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,7 @@ public void saveParsedData(Integer requestId, SeriesExtractedInfo seriesInfo, Li
186186
Integer countryId = getFirstElement(seriesInfo.getCountryIds());
187187

188188
AddSeriesParsedDataDbDto seriesParsedData = new AddSeriesParsedDataDbDto();
189-
String imageUrl = getFirstElement(imageUrls);
190-
seriesParsedData.setImageUrl(imageUrl);
189+
seriesParsedData.setImageUrls(imageUrls);
191190
Date now = new Date();
192191
seriesParsedData.setCreatedAt(now);
193192
seriesParsedData.setUpdatedAt(now);

src/test/groovy/ru/mystamps/web/feature/series/importing/SeriesImportServiceImplTest.groovy

+3-7
Original file line numberDiff line numberDiff line change
@@ -519,19 +519,15 @@ class SeriesImportServiceImplTest extends Specification {
519519
def 'saveParsedData() should save series parsed data'() {
520520
given:
521521
Integer expectedRequestId = Random.id()
522-
String expectedImageUrl = Random.url()
522+
List<String> expectedImageUrls = Collections.singletonList(Random.url())
523523
when:
524-
service.saveParsedData(
525-
expectedRequestId,
526-
TestObjects.createSeriesExtractedInfo(),
527-
Collections.singletonList(expectedImageUrl)
528-
)
524+
service.saveParsedData(expectedRequestId, TestObjects.createSeriesExtractedInfo(), expectedImageUrls)
529525
then:
530526
1 * seriesImportDao.addParsedData(
531527
expectedRequestId,
532528
{ AddSeriesParsedDataDbDto parsedData ->
533529
// other members are tested in another test
534-
assert parsedData?.imageUrl == expectedImageUrl
530+
assert parsedData?.imageUrls == expectedImageUrls
535531
assert DateUtils.roughlyEqual(parsedData?.createdAt, new Date())
536532
assert DateUtils.roughlyEqual(parsedData?.updatedAt, new Date())
537533
return true

0 commit comments

Comments
 (0)