Skip to content

Commit eb606cc

Browse files
committed
GroupByParent.transformCategories(): replace CategoryDto by EntityWithParentDto.
Fix #744 No functional changes.
1 parent 36514d2 commit eb606cc

File tree

12 files changed

+18
-81
lines changed

12 files changed

+18
-81
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import ru.mystamps.web.controller.dto.NullableImageUrl;
6565
import ru.mystamps.web.controller.dto.SelectItem;
6666
import ru.mystamps.web.controller.interceptor.DownloadImageInterceptor;
67-
import ru.mystamps.web.dao.dto.CategoryDto;
6867
import ru.mystamps.web.dao.dto.EntityWithParentDto;
6968
import ru.mystamps.web.dao.dto.ImportRequestInfo;
7069
import ru.mystamps.web.dao.dto.LinkEntityDto;
@@ -481,7 +480,7 @@ public String searchSeriesByCatalog(
481480
}
482481

483482
protected void addCategoriesToModel(Model model, String lang) {
484-
List<CategoryDto> categories = categoryService.findCategoriesWithParents(lang);
483+
List<EntityWithParentDto> categories = categoryService.findCategoriesWithParents(lang);
485484

486485
List<SelectItem> groupedCategories = GroupByParent.transformCategories(categories);
487486

src/main/java/ru/mystamps/web/dao/CategoryDao.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.util.Set;
2323

2424
import ru.mystamps.web.dao.dto.AddCategoryDbDto;
25-
import ru.mystamps.web.dao.dto.CategoryDto;
25+
import ru.mystamps.web.dao.dto.EntityWithParentDto;
2626
import ru.mystamps.web.dao.dto.LinkEntityDto;
2727

2828
@SuppressWarnings("PMD.TooManyMethods")
@@ -40,5 +40,5 @@ public interface CategoryDao {
4040
List<Integer> findIdsByNamePattern(String pattern);
4141
List<LinkEntityDto> findAllAsLinkEntities(String lang);
4242
LinkEntityDto findOneAsLinkEntity(String slug, String lang);
43-
List<CategoryDto> findCategoriesWithParents(String lang);
43+
List<EntityWithParentDto> findCategoriesWithParents(String lang);
4444
}

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

Lines changed: 0 additions & 31 deletions
This file was deleted.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
import ru.mystamps.web.dao.CategoryDao;
3939
import ru.mystamps.web.dao.dto.AddCategoryDbDto;
40-
import ru.mystamps.web.dao.dto.CategoryDto;
40+
import ru.mystamps.web.dao.dto.EntityWithParentDto;
4141
import ru.mystamps.web.dao.dto.LinkEntityDto;
4242

4343
@RequiredArgsConstructor
@@ -238,11 +238,11 @@ public LinkEntityDto findOneAsLinkEntity(String slug, String lang) {
238238
}
239239

240240
@Override
241-
public List<CategoryDto> findCategoriesWithParents(String lang) {
241+
public List<EntityWithParentDto> findCategoriesWithParents(String lang) {
242242
return jdbcTemplate.query(
243243
findCategoriesWithParentNamesSql,
244244
Collections.singletonMap("lang", lang),
245-
RowMappers::forCategoryDto
245+
RowMappers::forEntityWithParentDto
246246
);
247247
}
248248

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,6 @@ public static EntityWithIdDto forEntityWithIdDto(ResultSet rs, int i) throws SQL
237237
);
238238
}
239239

240-
public static CategoryDto forCategoryDto(ResultSet rs, int i) throws SQLException {
241-
return new CategoryDto(
242-
rs.getString("name"),
243-
rs.getString("slug"),
244-
rs.getString("parent_name")
245-
);
246-
}
247-
248240
public static EntityWithParentDto forEntityWithParentDto(ResultSet rs, int i)
249241
throws SQLException {
250242

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.List;
2222
import java.util.Set;
2323

24-
import ru.mystamps.web.dao.dto.CategoryDto;
24+
import ru.mystamps.web.dao.dto.EntityWithParentDto;
2525
import ru.mystamps.web.dao.dto.LinkEntityDto;
2626
import ru.mystamps.web.service.dto.AddCategoryDto;
2727

@@ -31,7 +31,7 @@ public interface CategoryService {
3131
List<Integer> findIdsByNames(Set<String> names);
3232
List<Integer> findIdsWhenNameStartsWith(String name);
3333
List<LinkEntityDto> findAllAsLinkEntities(String lang);
34-
List<CategoryDto> findCategoriesWithParents(String lang);
34+
List<EntityWithParentDto> findCategoriesWithParents(String lang);
3535
LinkEntityDto findOneAsLinkEntity(String slug, String lang);
3636
long countAll();
3737
long countCategoriesOf(Integer collectionId);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
import ru.mystamps.web.dao.CategoryDao;
3838
import ru.mystamps.web.dao.dto.AddCategoryDbDto;
39-
import ru.mystamps.web.dao.dto.CategoryDto;
39+
import ru.mystamps.web.dao.dto.EntityWithParentDto;
4040
import ru.mystamps.web.dao.dto.LinkEntityDto;
4141
import ru.mystamps.web.service.dto.AddCategoryDto;
4242
import ru.mystamps.web.support.spring.security.HasAuthority;
@@ -115,7 +115,7 @@ public List<LinkEntityDto> findAllAsLinkEntities(String lang) {
115115
@Override
116116
@Transactional(readOnly = true)
117117
@PreAuthorize(HasAuthority.CREATE_SERIES)
118-
public List<CategoryDto> findCategoriesWithParents(String lang) {
118+
public List<EntityWithParentDto> findCategoriesWithParents(String lang) {
119119
return categoryDao.findCategoriesWithParents(lang);
120120
}
121121

src/main/java/ru/mystamps/web/support/thymeleaf/GroupByParent.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.List;
2323

2424
import ru.mystamps.web.controller.dto.SelectItem;
25-
import ru.mystamps.web.dao.dto.CategoryDto;
2625
import ru.mystamps.web.dao.dto.EntityWithParentDto;
2726

2827
/**
@@ -73,9 +72,8 @@ public static List<SelectItem> transformParticipants(List<EntityWithParentDto> p
7372
return items;
7473
}
7574

76-
// @todo #592 GroupByParent.transformCategories(): use unified class that represents entity with parent
7775
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
78-
public static List<SelectItem> transformCategories(List<CategoryDto> categories) {
76+
public static List<SelectItem> transformCategories(List<EntityWithParentDto> categories) {
7977
if (categories.isEmpty()) {
8078
return Collections.emptyList();
8179
}
@@ -84,9 +82,9 @@ public static List<SelectItem> transformCategories(List<CategoryDto> categories)
8482
String lastParent = null;
8583
SelectItem lastItem = null;
8684

87-
for (CategoryDto category : categories) {
85+
for (EntityWithParentDto category : categories) {
8886
String name = category.getName();
89-
String value = category.getSlug();
87+
String value = category.getId();
9088
String parent = category.getParentName();
9189

9290
boolean categoryWithoutParent = parent == null;

src/main/resources/sql/category_dao_queries.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,11 @@ category.find_category_link_info_by_slug = \
9999
ORDER BY CASE WHEN 'ru' = :lang THEN COALESCE(c.name_ru, c.name) ELSE c.name END
100100

101101
category.find_categories_with_parent_names = \
102-
SELECT CASE WHEN 'ru' = :lang \
102+
SELECT c.slug AS id \
103+
, CASE WHEN 'ru' = :lang \
103104
THEN COALESCE(c.name_ru, c.name) \
104105
ELSE c.name \
105106
END AS name \
106-
, c.slug \
107107
, CASE WHEN 'ru' = :lang \
108108
THEN COALESCE(t.name_ru, t.name) \
109109
ELSE t.name \

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import spock.lang.Unroll
2929

3030
import ru.mystamps.web.dao.CategoryDao
3131
import ru.mystamps.web.dao.dto.AddCategoryDbDto
32-
import ru.mystamps.web.dao.dto.CategoryDto
32+
import ru.mystamps.web.dao.dto.EntityWithParentDto
3333
import ru.mystamps.web.controller.dto.AddCategoryForm
3434
import ru.mystamps.web.dao.dto.LinkEntityDto
3535
import ru.mystamps.web.tests.DateUtils
@@ -249,9 +249,9 @@ class CategoryServiceImplTest extends Specification {
249249
def 'findCategoriesWithParents() should invoke dao and return its result'() {
250250
given:
251251
String expectedLang = nullOr(Random.lang())
252-
List<CategoryDto> expectedResult = Random.listOfCategoryDto()
252+
List<EntityWithParentDto> expectedResult = Random.listOfEntityWithParentDto()
253253
when:
254-
List<CategoryDto> result = service.findCategoriesWithParents(expectedLang)
254+
List<EntityWithParentDto> result = service.findCategoriesWithParents(expectedLang)
255255
then:
256256
1 * categoryDao.findCategoriesWithParents({ String lang ->
257257
assert lang == expectedLang

src/test/java/ru/mystamps/web/service/TestObjects.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,6 @@ public static RawParsedDataDto createRawParsedDataDto() {
213213
);
214214
}
215215

216-
public static CategoryDto createCategoryDto() {
217-
String name = Random.categoryName();
218-
String slug = SlugUtils.slugify(name);
219-
// @todo #548 Introduce name generator for top categories
220-
String parentName = Random.categoryName();
221-
return new CategoryDto(name, slug, parentName);
222-
}
223-
224216
public static EntityWithParentDto createEntityWithParentDto() {
225217
String name = Random.categoryName();
226218
// @todo #702 TestObjects: introduce name generator for transaction participant groups

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

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import io.qala.datagen.RandomShortApi;
2929

3030
import ru.mystamps.web.Db.SeriesImportRequestStatus;
31-
import ru.mystamps.web.dao.dto.CategoryDto;
3231
import ru.mystamps.web.dao.dto.EntityWithIdDto;
3332
import ru.mystamps.web.dao.dto.EntityWithParentDto;
3433
import ru.mystamps.web.service.TestObjects;
@@ -157,18 +156,6 @@ public static List<EntityWithIdDto> listOfEntityWithIdDto() {
157156
);
158157
}
159158

160-
public static List<CategoryDto> listOfCategoryDto() {
161-
final int minSize = 1;
162-
final int maxSize = 3;
163-
int size = integer(minSize, maxSize);
164-
return sampleMultiple(
165-
size,
166-
TestObjects.createCategoryDto(),
167-
TestObjects.createCategoryDto(),
168-
TestObjects.createCategoryDto()
169-
);
170-
}
171-
172159
public static List<EntityWithParentDto> listOfEntityWithParentDto() {
173160
final int minSize = 1;
174161
final int maxSize = 3;

0 commit comments

Comments
 (0)