Skip to content

Commit afc42c4

Browse files
committed
Use constants for import request statuses.
Fix #687
1 parent 0dd91b4 commit afc42c4

File tree

6 files changed

+53
-23
lines changed

6 files changed

+53
-23
lines changed

src/main/java/ru/mystamps/web/Db.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,18 @@ public static final class SeriesImportRequest {
4444
public static final int URL_LENGTH = 285;
4545
}
4646

47+
public static final class SeriesImportRequestStatus {
48+
// see initiate-series_import_request_statuses-table changeset
49+
// in src/main/resources/liquibase/version/0.4/2017-11-08--import_series.xml
50+
// @todo #687 replace set of strings by enum
51+
public static final String UNPROCESSED = "Unprocessed";
52+
public static final String DOWNLOADING_SUCCEEDED = "DownloadingSucceeded";
53+
public static final String DOWNLOADING_FAILED = "DownloadingFailed";
54+
public static final String PARSING_SUCCEEDED = "ParsingSucceeded";
55+
public static final String PARSING_FAILED = "ParsingFailed";
56+
public static final String IMPORT_SUCCEEDED = "ImportSucceeded";
57+
}
58+
4759
public static final class SeriesSales {
4860
public static final int TRANSACTION_URL_LENGTH = 255;
4961
}

src/main/java/ru/mystamps/web/controller/event/DownloadingFailedEventListener.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import lombok.RequiredArgsConstructor;
2525

26+
import ru.mystamps.web.Db;
2627
import ru.mystamps.web.service.SeriesImportService;
2728

2829
/**
@@ -48,7 +49,11 @@ public void onApplicationEvent(DownloadingFailed event) {
4849
event.getCode()
4950
);
5051

51-
importService.changeStatus(requestId, "Unprocessed", "DownloadingFailed");
52+
importService.changeStatus(
53+
requestId,
54+
Db.SeriesImportRequestStatus.UNPROCESSED,
55+
Db.SeriesImportRequestStatus.DOWNLOADING_FAILED
56+
);
5257
}
5358

5459
}

src/main/java/ru/mystamps/web/controller/event/ParsingFailedEventListener.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import lombok.RequiredArgsConstructor;
2525

26+
import ru.mystamps.web.Db.SeriesImportRequestStatus;
2627
import ru.mystamps.web.service.SeriesImportService;
2728

2829
/**
@@ -44,7 +45,11 @@ public void onApplicationEvent(ParsingFailed event) {
4445
// TODO: more info?
4546
log.info("Request #{}: parsing failed", requestId);
4647

47-
importService.changeStatus(requestId, "DownloadingSucceeded", "ParsingFailed");
48+
importService.changeStatus(
49+
requestId,
50+
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED,
51+
SeriesImportRequestStatus.PARSING_FAILED
52+
);
4853
}
4954

5055
}

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

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import lombok.RequiredArgsConstructor;
3333

34+
import ru.mystamps.web.Db.SeriesImportRequestStatus;
3435
import ru.mystamps.web.dao.SeriesImportDao;
3536
import ru.mystamps.web.dao.dto.ImportRequestDto;
3637
import ru.mystamps.web.dao.dto.ImportSeriesDbDto;
@@ -46,13 +47,6 @@
4647
@RequiredArgsConstructor
4748
public class SeriesImportServiceImpl implements SeriesImportService {
4849

49-
// see initiate-series_import_request_statuses-table changeset
50-
// in src/main/resources/liquibase/version/0.4/2017-11-08--import_series.xml
51-
private static final String UNPROCESSED = "Unprocessed";
52-
private static final String DOWNLOADING_SUCCEEDED = "DownloadingSucceeded";
53-
private static final String PARSING_SUCCEEDED = "ParsingSucceeded";
54-
private static final String IMPORT_SUCCEEDED = "ImportSucceeded";
55-
5650
private final Logger log;
5751
private final SeriesImportDao seriesImportDao;
5852
private final SeriesService seriesService;
@@ -68,7 +62,7 @@ public Integer addRequest(RequestImportDto dto, Integer userId) {
6862

6963
ImportSeriesDbDto importRequest = new ImportSeriesDbDto();
7064
importRequest.setUrl(dto.getUrl());
71-
importRequest.setStatus(UNPROCESSED);
65+
importRequest.setStatus(SeriesImportRequestStatus.UNPROCESSED);
7266

7367
Date now = new Date();
7468
importRequest.setUpdatedAt(now);
@@ -95,7 +89,11 @@ public Integer addSeries(AddSeriesDto dto, Integer requestId, Integer userId) {
9589
// Here we're updating series_import_requests twice: when we set series_id field
9690
// and later when we change status_id. It's possible to do this in one-shot
9791
seriesImportDao.setSeriesIdOnRequest(requestId, seriesId, now);
98-
changeStatus(requestId, PARSING_SUCCEEDED, IMPORT_SUCCEEDED);
92+
changeStatus(
93+
requestId,
94+
SeriesImportRequestStatus.PARSING_SUCCEEDED,
95+
SeriesImportRequestStatus.IMPORT_SUCCEEDED
96+
);
9997

10098
return seriesId;
10199
}
@@ -134,7 +132,11 @@ public void saveDownloadedContent(Integer requestId, String content) {
134132

135133
log.info("Request #{}: page were downloaded ({} characters)", requestId, content.length());
136134

137-
changeStatus(requestId, UNPROCESSED, DOWNLOADING_SUCCEEDED);
135+
changeStatus(
136+
requestId,
137+
SeriesImportRequestStatus.UNPROCESSED,
138+
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED
139+
);
138140
}
139141

140142
@Override
@@ -180,7 +182,11 @@ public void saveParsedData(Integer requestId, RawParsedDataDto data) {
180182

181183
log.info("Request #{}: page were parsed ({})", requestId, processedData);
182184

183-
changeStatus(requestId, DOWNLOADING_SUCCEEDED, PARSING_SUCCEEDED);
185+
changeStatus(
186+
requestId,
187+
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED,
188+
SeriesImportRequestStatus.PARSING_SUCCEEDED
189+
);
184190
}
185191

186192
@Override

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import spock.lang.Specification
2727
import org.slf4j.helpers.NOPLogger
2828

2929
import ru.mystamps.web.controller.dto.RequestImportForm
30+
import ru.mystamps.web.Db.SeriesImportRequestStatus
3031
import ru.mystamps.web.dao.dto.ImportRequestDto
3132
import ru.mystamps.web.dao.dto.ParsedDataDto
3233
import ru.mystamps.web.dao.SeriesImportDao
@@ -84,7 +85,7 @@ class SeriesImportServiceImplTest extends Specification {
8485
then:
8586
1 * seriesImportDao.add({ ImportSeriesDbDto request ->
8687
assert request.url == expectedUrl
87-
assert request.status == 'Unprocessed'
88+
assert request.status == SeriesImportRequestStatus.UNPROCESSED
8889
assert DateUtils.roughlyEqual(request?.requestedAt, new Date())
8990
assert request.requestedBy == expectedUserId
9091
assert DateUtils.roughlyEqual(request?.updatedAt, new Date())
@@ -243,10 +244,10 @@ class SeriesImportServiceImplTest extends Specification {
243244
assert DateUtils.roughlyEqual(date, new Date())
244245
return true
245246
}, { String oldStatus ->
246-
assert oldStatus == 'Unprocessed'
247+
assert oldStatus == SeriesImportRequestStatus.UNPROCESSED
247248
return true
248249
}, { String newStatus ->
249-
assert newStatus == 'DownloadingSucceeded'
250+
assert newStatus == SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED
250251
return true
251252
})
252253
}

src/test/java/ru/mystamps/web/tests/Random.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import io.qala.datagen.RandomShortApi;
2626

27+
import ru.mystamps.web.Db.SeriesImportRequestStatus;
2728
import ru.mystamps.web.dao.dto.CategoryDto;
2829
import ru.mystamps.web.dao.dto.EntityWithIdDto;
2930
import ru.mystamps.web.dao.dto.TransactionParticipantDto;
@@ -39,14 +40,14 @@
3940

4041
public final class Random {
4142

42-
// TODO: use constants for statuses
43+
// @todo #687 Random.STATUSES: reduce duplication by using EnumSet.allOf()
4344
private static final String[] STATUSES = new String[] {
44-
"Unprocessed",
45-
"DownloadingSucceeded",
46-
"DownloadingFailed",
47-
"ParsingSucceeded",
48-
"ParsingFailed",
49-
"ImportSucceeded",
45+
SeriesImportRequestStatus.UNPROCESSED,
46+
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED,
47+
SeriesImportRequestStatus.DOWNLOADING_FAILED,
48+
SeriesImportRequestStatus.PARSING_SUCCEEDED,
49+
SeriesImportRequestStatus.PARSING_FAILED,
50+
SeriesImportRequestStatus.IMPORT_SUCCEEDED,
5051
};
5152

5253
private Random() {

0 commit comments

Comments
 (0)