Skip to content

Commit bfa27a7

Browse files
committed
Add support for specifying Zagorski catalog numbers.
Fix #769
1 parent 3d69d8a commit bfa27a7

31 files changed

+387
-53
lines changed

NEWS.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
- (functionality) add capability to specify image URL (as alternative to providing a file)
1919
- (functionality) admin can import a series from an external site
2020
- (integration) migrate from coveralls.io to codecov.io service for code coverage
21+
- (functionality) add support for specifying Zagorski catalog numbers
2122

2223
0.3
2324
- (functionality) implemented possibility to user to add series to his collection

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,16 @@ public StampsCatalogDao getYvertCatalogDao() {
135135
env.getRequiredProperty("series_yvert.add"),
136136
env.getRequiredProperty("series_yvert.find_by_series_id")
137137
);
138-
138+
}
139+
140+
@Bean
141+
public StampsCatalogDao getZagorskiCatalogDao() {
142+
return new JdbcStampsCatalogDao(
143+
jdbcTemplate,
144+
env.getRequiredProperty("zagorski.create"),
145+
env.getRequiredProperty("series_zagorski.add"),
146+
env.getRequiredProperty("series_zagorski.find_by_series_id")
147+
);
139148
}
140149

141150
}

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ public SeriesService getSeriesService() {
158158
getMichelCatalogService(),
159159
getScottCatalogService(),
160160
getYvertCatalogService(),
161-
getGibbonsCatalogService()
161+
getGibbonsCatalogService(),
162+
getZagorskiCatalogService()
162163
);
163164
}
164165

@@ -245,6 +246,15 @@ public StampsCatalogService getGibbonsCatalogService() {
245246
);
246247
}
247248

249+
@Bean
250+
public StampsCatalogService getZagorskiCatalogService() {
251+
return new StampsCatalogServiceImpl(
252+
LoggerFactory.getLogger(StampsCatalogServiceImpl.class),
253+
"Zagorski",
254+
daoConfig.getZagorskiCatalogDao()
255+
);
256+
}
257+
248258
@Bean
249259
public TransactionParticipantService getTransactionParticipantService() {
250260
return new TransactionParticipantServiceImpl(

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ protected void initSeriesFormBinder(WebDataBinder binder) {
120120
binder.registerCustomEditor(String.class, "scottNumbers", editor);
121121
binder.registerCustomEditor(String.class, "yvertNumbers", editor);
122122
binder.registerCustomEditor(String.class, "gibbonsNumbers", editor);
123+
binder.registerCustomEditor(String.class, "zagorskiNumbers", editor);
123124
binder.registerCustomEditor(String.class, "comment", new StringTrimmerEditor(true));
124125
}
125126

@@ -455,6 +456,7 @@ public String searchSeriesByCatalog(
455456
return "redirect:" + Url.INDEX_PAGE;
456457
}
457458

459+
// @todo #769 Support search by Zagorski number
458460
String lang = LocaleUtils.getLanguageOrNull(userLocale);
459461
List<SeriesInfoDto> series;
460462
switch (catalogName) {
@@ -544,14 +546,16 @@ protected static void loadErrorsFromDownloadInterceptor(
544546

545547
model.put("series", series);
546548

547-
String michelNumbers = CatalogUtils.toShortForm(series.getMichel().getNumbers());
548-
String scottNumbers = CatalogUtils.toShortForm(series.getScott().getNumbers());
549-
String yvertNumbers = CatalogUtils.toShortForm(series.getYvert().getNumbers());
550-
String gibbonsNumbers = CatalogUtils.toShortForm(series.getGibbons().getNumbers());
549+
String michelNumbers = CatalogUtils.toShortForm(series.getMichel().getNumbers());
550+
String scottNumbers = CatalogUtils.toShortForm(series.getScott().getNumbers());
551+
String yvertNumbers = CatalogUtils.toShortForm(series.getYvert().getNumbers());
552+
String gibbonsNumbers = CatalogUtils.toShortForm(series.getGibbons().getNumbers());
553+
String zagorskiNumbers = CatalogUtils.toShortForm(series.getZagorski().getNumbers());
551554
model.put("michelNumbers", michelNumbers);
552555
model.put("scottNumbers", scottNumbers);
553556
model.put("yvertNumbers", yvertNumbers);
554557
model.put("gibbonsNumbers", gibbonsNumbers);
558+
model.put("zagorskiNumbers", zagorskiNumbers);
555559

556560
boolean isSeriesInCollection =
557561
collectionService.isSeriesInCollection(currentUserId, series.getId());

src/main/java/ru/mystamps/web/controller/dto/AddSeriesForm.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,14 @@ public class AddSeriesForm implements AddSeriesDto, HasImageOrImageUrl, Nullable
130130

131131
@Price
132132
private BigDecimal gibbonsPrice;
133+
134+
// @todo #769 /series/add: validate that Zagorski numbers are specified only for stamps
135+
// from USSR/Russia
136+
@CatalogNumbers
137+
private String zagorskiNumbers;
138+
139+
@Price
140+
private BigDecimal zagorskiPrice;
133141

134142
@Size(max = MAX_SERIES_COMMENT_LENGTH, message = "{value.too-long}")
135143
private String comment;

src/main/java/ru/mystamps/web/controller/dto/ImportSeriesForm.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,16 @@ public BigDecimal getGibbonsPrice() {
144144
return null;
145145
}
146146

147+
@Override
148+
public String getZagorskiNumbers() {
149+
return null;
150+
}
151+
152+
@Override
153+
public BigDecimal getZagorskiPrice() {
154+
return null;
155+
}
156+
147157
@Override
148158
public String getComment() {
149159
return null;

src/main/java/ru/mystamps/web/dao/dto/AddSeriesDbDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public class AddSeriesDbDto {
4747
private BigDecimal gibbonsPrice;
4848
private String gibbonsCurrency;
4949

50+
private BigDecimal zagorskiPrice;
51+
5052
private Integer releaseDay;
5153
private Integer releaseMonth;
5254
private Integer releaseYear;

src/main/java/ru/mystamps/web/dao/dto/SeriesFullInfoDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,6 @@ public class SeriesFullInfoDto {
4848

4949
private final BigDecimal gibbonsPrice;
5050
private final String gibbonsCurrency;
51+
52+
private final BigDecimal zagorskiPrice;
5153
}

src/main/java/ru/mystamps/web/dao/impl/JdbcSeriesDao.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ public Integer add(AddSeriesDbDto series) {
134134
params.put("yvert_currency", series.getYvertCurrency());
135135
params.put("gibbons_price", series.getGibbonsPrice());
136136
params.put("gibbons_currency", series.getGibbonsCurrency());
137+
params.put("zagorski_price", series.getZagorskiPrice());
137138
params.put("comment", series.getComment());
138139
params.put("created_at", series.getCreatedAt());
139140
params.put("created_by", series.getCreatedBy());

src/main/java/ru/mystamps/web/dao/impl/RowMappers.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ public static SeriesFullInfoDto forSeriesFullInfoDto(ResultSet rs, int i) throws
126126
BigDecimal gibbonsPrice = rs.getBigDecimal("gibbons_price");
127127
String gibbonsCurrency = rs.getString("gibbons_currency");
128128

129+
BigDecimal zagorskiPrice = rs.getBigDecimal("zagorski_price");
130+
129131
LinkEntityDto category =
130132
createLinkEntityDto(rs, "category_id", "category_slug", "category_name");
131133

@@ -150,7 +152,8 @@ public static SeriesFullInfoDto forSeriesFullInfoDto(ResultSet rs, int i) throws
150152
yvertPrice,
151153
yvertCurrency,
152154
gibbonsPrice,
153-
gibbonsCurrency
155+
gibbonsCurrency,
156+
zagorskiPrice
154157
);
155158
}
156159

0 commit comments

Comments
 (0)