Skip to content

Commit bfe7fea

Browse files
dev-marekphiz71
authored andcommitted
refactor: simplify and cleanup portal page content and navigation components
1 parent 86ba9e6 commit bfe7fea

File tree

23 files changed

+95
-338
lines changed

23 files changed

+95
-338
lines changed

gravitee-apim-repository/gravitee-apim-repository-api/src/main/java/io/gravitee/repository/management/api/PortalPageContentRepository.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,4 @@
2121

2222
public interface PortalPageContentRepository extends CrudRepository<PortalPageContent, String> {
2323
List<PortalPageContent> findAllByType(PortalPageContent.Type type) throws TechnicalException;
24-
25-
void deleteByType(PortalPageContent.Type type) throws TechnicalException;
2624
}

gravitee-apim-repository/gravitee-apim-repository-jdbc/src/main/java/io/gravitee/repository/jdbc/management/JdbcPortalNavigationItemRepository.java

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.List;
2424
import lombok.extern.slf4j.Slf4j;
2525
import org.springframework.beans.factory.annotation.Value;
26-
import org.springframework.jdbc.core.RowMapper;
2726
import org.springframework.stereotype.Repository;
2827

2928
@Repository
@@ -51,35 +50,12 @@ protected JdbcObjectMapper<PortalNavigationItem> buildOrm() {
5150
.build();
5251
}
5352

54-
@Override
55-
protected RowMapper<PortalNavigationItem> getRowMapper() {
56-
return (rs, rowNum) -> {
57-
PortalNavigationItem item = new PortalNavigationItem();
58-
getOrm().setFromResultSet(item, rs);
59-
return item;
60-
};
61-
}
62-
63-
@Override
64-
public PortalNavigationItem create(PortalNavigationItem item) throws TechnicalException {
65-
log.debug("JdbcPortalNavigationItemRepository.create({})", item.getId());
66-
try {
67-
jdbcTemplate.update(getOrm().buildInsertPreparedStatementCreator(item));
68-
return this.findById(item.getId()).orElse(null);
69-
} catch (Exception e) {
70-
throw new TechnicalException("Failed to create portal navigation item", e);
71-
}
72-
}
73-
7453
@Override
7554
public List<PortalNavigationItem> findAllByOrganizationIdAndEnvironmentId(String organizationId, String environmentId)
7655
throws TechnicalException {
7756
log.debug("JdbcPortalNavigationItemRepository.findAllByOrganizationIdAndEnvironmentId({}, {})", organizationId, environmentId);
7857
try {
79-
final String sql =
80-
"select id, organization_id, environment_id, title, type, area, parent_id, \"order\", configuration from " +
81-
this.tableName +
82-
" where organization_id = ? and environment_id = ?";
58+
final String sql = getOrm().getSelectAllSql() + " where organization_id = ? and environment_id = ?";
8359
return jdbcTemplate.query(sql, getOrm().getRowMapper(), organizationId, environmentId);
8460
} catch (Exception ex) {
8561
log.error("Failed to find portal navigation items", ex);
@@ -100,10 +76,7 @@ public List<PortalNavigationItem> findAllByAreaAndOrganizationIdAndEnvironmentId
10076
environmentId
10177
);
10278
try {
103-
final String sql =
104-
"select id, organization_id, environment_id, title, type, area, parent_id, \"order\", configuration from " +
105-
this.tableName +
106-
" where area = ? and organization_id = ? and environment_id = ?";
79+
final String sql = getOrm().getSelectAllSql() + " where area = ? and organization_id = ? and environment_id = ?";
10780
return jdbcTemplate.query(sql, getOrm().getRowMapper(), area.name(), organizationId, environmentId);
10881
} catch (Exception ex) {
10982
log.error("Failed to find portal navigation items by area", ex);

gravitee-apim-repository/gravitee-apim-repository-jdbc/src/main/java/io/gravitee/repository/jdbc/management/JdbcPortalPageContentRepository.java

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.List;
2424
import lombok.extern.slf4j.Slf4j;
2525
import org.springframework.beans.factory.annotation.Value;
26-
import org.springframework.jdbc.core.RowMapper;
2726
import org.springframework.stereotype.Repository;
2827

2928
@Repository
@@ -46,49 +45,18 @@ protected JdbcObjectMapper<PortalPageContent> buildOrm() {
4645
.build();
4746
}
4847

49-
@Override
50-
protected RowMapper<PortalPageContent> getRowMapper() {
51-
return (rs, rowNum) -> {
52-
PortalPageContent item = new PortalPageContent();
53-
getOrm().setFromResultSet(item, rs);
54-
return item;
55-
};
56-
}
57-
58-
@Override
59-
public PortalPageContent create(PortalPageContent item) throws TechnicalException {
60-
log.debug("JdbcPortalPageContentRepository.create({})", item.getId());
61-
try {
62-
jdbcTemplate.update(getOrm().buildInsertPreparedStatementCreator(item));
63-
return this.findById(item.getId()).orElse(null);
64-
} catch (Exception e) {
65-
throw new TechnicalException("Failed to create portal page content", e);
66-
}
67-
}
68-
6948
@Override
7049
public List<PortalPageContent> findAllByType(PortalPageContent.Type type) throws TechnicalException {
7150
log.debug("JdbcPortalPageContentRepository.findAllByType({})", type);
7251
try {
73-
final String sql = "select id, type, configuration, content from " + this.tableName + " where type = ?";
52+
final String sql = getOrm().getSelectAllSql() + " where type = ?";
7453
return jdbcTemplate.query(sql, getOrm().getRowMapper(), type.name());
7554
} catch (Exception ex) {
7655
log.error("Failed to find portal page contents by type", ex);
7756
throw new TechnicalException("Failed to find portal page contents by type", ex);
7857
}
7958
}
8059

81-
@Override
82-
public void deleteByType(PortalPageContent.Type type) throws TechnicalException {
83-
log.debug("JdbcPortalPageContentRepository.deleteByType({})", type);
84-
try {
85-
jdbcTemplate.update("delete from " + this.tableName + " where type = ?", type.name());
86-
} catch (Exception ex) {
87-
log.error("Failed to delete portal page contents by type", ex);
88-
throw new TechnicalException("Failed to delete portal page contents by type", ex);
89-
}
90-
}
91-
9260
@Override
9361
protected String getId(PortalPageContent item) {
9462
return item.getId();

gravitee-apim-repository/gravitee-apim-repository-jdbc/src/main/resources/liquibase/changelogs/v4_10_0/01_add_portal_page_contents_table.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,11 @@ databaseChangeLog:
77
tableName: ${gravitee_prefix}portal_page_contents
88
columns:
99
- column: {name: id, type: nvarchar(64), constraints: { nullable: false } }
10-
- column: {name: page_id, type: nvarchar(64), constraints: { nullable: true } }
1110
- column: {name: type, type: nvarchar(64), constraints: { nullable: false } }
1211
- column: {name: configuration, type: nclob, constraints: { nullable: true } }
1312
- column: {name: content, type: nclob, constraints: { nullable: true } }
14-
- column: {name: created_at, type: timestamp(6), constraints: { nullable: true } }
15-
- column: {name: updated_at, type: timestamp(6), constraints: { nullable: true } }
1613
- addPrimaryKey:
1714
constraintName: pk_${gravitee_prefix}portal_page_contents
1815
columnNames: id
1916
tableName: ${gravitee_prefix}portal_page_contents
20-
- addUniqueConstraint:
21-
columnNames: page_id, type
22-
constraintName: uk_${gravitee_prefix}portal_page_contents_page_type
23-
tableName: ${gravitee_prefix}portal_page_contents
2417

gravitee-apim-repository/gravitee-apim-repository-jdbc/src/main/resources/liquibase/changelogs/v4_10_0/02_add_portal_navigation_items_table.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@ databaseChangeLog:
1313
- column: {name: type, type: nvarchar(64), constraints: { nullable: false } }
1414
- column: {name: area, type: nvarchar(64), constraints: { nullable: false } }
1515
- column: {name: parent_id, type: nvarchar(64), constraints: { nullable: true } }
16-
- column: {name: "order", type: integer, constraints: { nullable: true } }
16+
- column: {name: order, type: integer, constraints: { nullable: true } }
1717
- column: {name: configuration, type: nclob, constraints: { nullable: true } }
18-
- column: {name: created_at, type: timestamp(6), constraints: { nullable: true } }
19-
- column: {name: updated_at, type: timestamp(6), constraints: { nullable: true } }
2018
- addPrimaryKey:
2119
constraintName: pk_${gravitee_prefix}portal_navigation_items
2220
columnNames: id

gravitee-apim-repository/gravitee-apim-repository-mongodb/src/main/java/io/gravitee/repository/mongodb/management/MongoPortalNavigationItemRepository.java

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.gravitee.repository.management.model.PortalNavigationItem;
2121
import io.gravitee.repository.mongodb.management.internal.model.PortalNavigationItemMongo;
2222
import io.gravitee.repository.mongodb.management.internal.portalnavigationitem.PortalNavigationItemMongoRepository;
23+
import io.gravitee.repository.mongodb.management.mapper.GraviteeMapper;
2324
import java.util.List;
2425
import java.util.Optional;
2526
import java.util.Set;
@@ -35,20 +36,22 @@ public class MongoPortalNavigationItemRepository implements PortalNavigationItem
3536
@Autowired
3637
private PortalNavigationItemMongoRepository internalRepo;
3738

39+
@Autowired
40+
private GraviteeMapper mapper;
41+
3842
@Override
3943
public Optional<PortalNavigationItem> findById(String id) throws TechnicalException {
4044
log.debug("Find PortalNavigationItem by id [{}]", id);
41-
Optional<PortalNavigationItem> maybe = internalRepo.findById(id).map(this::map);
45+
Optional<PortalNavigationItem> maybe = internalRepo.findById(id).map(mapper::map);
4246
log.debug("Find PortalNavigationItem by id [{}] - Done", id);
4347
return maybe;
4448
}
4549

4650
@Override
47-
public List<PortalNavigationItem> findAllByOrganizationIdAndEnvironmentId(String organizationId, String environmentId)
48-
throws TechnicalException {
51+
public List<PortalNavigationItem> findAllByOrganizationIdAndEnvironmentId(String organizationId, String environmentId) {
4952
log.debug("Find all PortalNavigationItem by organizationId [{}] and environmentId [{}]", organizationId, environmentId);
5053
Set<PortalNavigationItemMongo> items = internalRepo.findAllByOrganizationIdAndEnvironmentId(organizationId, environmentId);
51-
List<PortalNavigationItem> mapped = items.stream().map(this::map).collect(Collectors.toList());
54+
List<PortalNavigationItem> mapped = items.stream().map(mapper::map).collect(Collectors.toList());
5255
log.debug("Find all PortalNavigationItem - Done, found {} items", mapped.size());
5356
return mapped;
5457
}
@@ -58,7 +61,7 @@ public List<PortalNavigationItem> findAllByAreaAndOrganizationIdAndEnvironmentId
5861
PortalNavigationItem.Area area,
5962
String organizationId,
6063
String environmentId
61-
) throws TechnicalException {
64+
) {
6265
log.debug(
6366
"Find all PortalNavigationItem by area [{}], organizationId [{}], environmentId [{}]",
6467
area,
@@ -70,21 +73,21 @@ public List<PortalNavigationItem> findAllByAreaAndOrganizationIdAndEnvironmentId
7073
organizationId,
7174
environmentId
7275
);
73-
return items.stream().map(this::map).collect(Collectors.toList());
76+
return items.stream().map(mapper::map).collect(Collectors.toList());
7477
}
7578

7679
@Override
7780
public PortalNavigationItem create(PortalNavigationItem item) throws TechnicalException {
7881
log.debug("Create PortalNavigationItem [{}]", item.getId());
79-
PortalNavigationItemMongo created = internalRepo.insert(map(item));
80-
return map(created);
82+
PortalNavigationItemMongo created = internalRepo.insert(mapper.map(item));
83+
return mapper.map(created);
8184
}
8285

8386
@Override
8487
public PortalNavigationItem update(PortalNavigationItem item) throws TechnicalException {
8588
log.debug("Update PortalNavigationItem [{}]", item.getId());
86-
PortalNavigationItemMongo saved = internalRepo.save(map(item));
87-
return map(saved);
89+
PortalNavigationItemMongo saved = internalRepo.save(mapper.map(item));
90+
return mapper.map(saved);
8891
}
8992

9093
@Override
@@ -108,34 +111,6 @@ public void deleteByEnvironmentId(String environmentId) throws TechnicalExceptio
108111
@Override
109112
public Set<PortalNavigationItem> findAll() throws TechnicalException {
110113
java.util.List<PortalNavigationItemMongo> results = internalRepo.findAll();
111-
return results.stream().map(this::map).collect(Collectors.toSet());
112-
}
113-
114-
private PortalNavigationItem map(PortalNavigationItemMongo mongo) {
115-
PortalNavigationItem item = new PortalNavigationItem();
116-
item.setId(mongo.getId());
117-
item.setOrganizationId(mongo.getOrganizationId());
118-
item.setEnvironmentId(mongo.getEnvironmentId());
119-
item.setTitle(mongo.getTitle());
120-
item.setType(mongo.getType());
121-
item.setArea(mongo.getArea());
122-
item.setParentId(mongo.getParentId());
123-
item.setOrder(mongo.getOrder());
124-
item.setConfiguration(mongo.getConfiguration());
125-
return item;
126-
}
127-
128-
private PortalNavigationItemMongo map(PortalNavigationItem item) {
129-
PortalNavigationItemMongo mongo = new PortalNavigationItemMongo();
130-
mongo.setId(item.getId());
131-
mongo.setOrganizationId(item.getOrganizationId());
132-
mongo.setEnvironmentId(item.getEnvironmentId());
133-
mongo.setTitle(item.getTitle());
134-
mongo.setType(item.getType());
135-
mongo.setArea(item.getArea());
136-
mongo.setParentId(item.getParentId());
137-
mongo.setOrder(item.getOrder());
138-
mongo.setConfiguration(item.getConfiguration());
139-
return mongo;
114+
return results.stream().map(mapper::map).collect(Collectors.toSet());
140115
}
141116
}

gravitee-apim-repository/gravitee-apim-repository-mongodb/src/main/java/io/gravitee/repository/mongodb/management/MongoPortalPageContentRepository.java

Lines changed: 11 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.gravitee.repository.management.model.PortalPageContent;
2222
import io.gravitee.repository.mongodb.management.internal.model.PortalPageContentMongo;
2323
import io.gravitee.repository.mongodb.management.internal.portalpagecontent.PortalPageContentMongoRepository;
24+
import io.gravitee.repository.mongodb.management.mapper.GraviteeMapper;
2425
import java.util.List;
2526
import java.util.Set;
2627
import java.util.stream.Collectors;
@@ -37,11 +38,14 @@ public class MongoPortalPageContentRepository implements PortalPageContentReposi
3738
@Autowired
3839
private PortalPageContentMongoRepository internalRepo;
3940

41+
@Autowired
42+
private GraviteeMapper mapper;
43+
4044
@Override
4145
public List<PortalPageContent> findAllByType(PortalPageContent.Type type) throws TechnicalException {
4246
try {
4347
Set<PortalPageContentMongo> results = internalRepo.findAllByType(type);
44-
return results.stream().map(this::map).collect(Collectors.toList());
48+
return results.stream().map(mapper::map).collect(Collectors.toList());
4549
} catch (Exception ex) {
4650
logger.error("Failed to find portal page contents by type", ex);
4751
throw new TechnicalException("Failed to find portal page contents by type", ex);
@@ -51,7 +55,7 @@ public List<PortalPageContent> findAllByType(PortalPageContent.Type type) throws
5155
@Override
5256
public java.util.Optional<PortalPageContent> findById(String id) throws TechnicalException {
5357
try {
54-
return internalRepo.findById(id).map(this::map);
58+
return internalRepo.findById(id).map(mapper::map);
5559
} catch (Exception ex) {
5660
logger.error("Failed to find portal page content by id", ex);
5761
throw new TechnicalException("Failed to find portal page content by id", ex);
@@ -61,8 +65,8 @@ public java.util.Optional<PortalPageContent> findById(String id) throws Technica
6165
@Override
6266
public PortalPageContent create(PortalPageContent item) throws TechnicalException {
6367
try {
64-
PortalPageContentMongo created = internalRepo.insert(map(item));
65-
return map(created);
68+
PortalPageContentMongo created = internalRepo.insert(mapper.map(item));
69+
return mapper.map(created);
6670
} catch (Exception ex) {
6771
logger.error("Failed to create portal page content", ex);
6872
throw new TechnicalException("Failed to create portal page content", ex);
@@ -72,8 +76,8 @@ public PortalPageContent create(PortalPageContent item) throws TechnicalExceptio
7276
@Override
7377
public PortalPageContent update(PortalPageContent item) throws TechnicalException {
7478
try {
75-
PortalPageContentMongo saved = internalRepo.save(map(item));
76-
return map(saved);
79+
PortalPageContentMongo saved = internalRepo.save(mapper.map(item));
80+
return mapper.map(saved);
7781
} catch (Exception ex) {
7882
logger.error("Failed to update portal page content", ex);
7983
throw new TechnicalException("Failed to update portal page content", ex);
@@ -90,42 +94,14 @@ public void delete(String id) throws TechnicalException {
9094
}
9195
}
9296

93-
@Override
94-
public void deleteByType(PortalPageContent.Type type) throws TechnicalException {
95-
try {
96-
internalRepo.deleteByType(type);
97-
} catch (Exception ex) {
98-
logger.error("Failed to delete portal page contents by type", ex);
99-
throw new TechnicalException("Failed to delete portal page contents by type", ex);
100-
}
101-
}
102-
10397
@Override
10498
public java.util.Set<PortalPageContent> findAll() throws TechnicalException {
10599
try {
106100
java.util.List<PortalPageContentMongo> results = internalRepo.findAll();
107-
return results.stream().map(this::map).collect(Collectors.toSet());
101+
return results.stream().map(mapper::map).collect(Collectors.toSet());
108102
} catch (Exception ex) {
109103
logger.error("Failed to find all portal page contents", ex);
110104
throw new TechnicalException("Failed to find all portal page contents", ex);
111105
}
112106
}
113-
114-
private PortalPageContent map(PortalPageContentMongo mongo) {
115-
PortalPageContent p = new PortalPageContent();
116-
p.setId(mongo.getId());
117-
p.setType(mongo.getType());
118-
p.setConfiguration(mongo.getConfiguration());
119-
p.setContent(mongo.getContent());
120-
return p;
121-
}
122-
123-
private PortalPageContentMongo map(PortalPageContent item) {
124-
PortalPageContentMongo mongo = new PortalPageContentMongo();
125-
mongo.setId(item.getId());
126-
mongo.setType(item.getType());
127-
mongo.setConfiguration(item.getConfiguration());
128-
mongo.setContent(item.getContent());
129-
return mongo;
130-
}
131107
}

gravitee-apim-repository/gravitee-apim-repository-mongodb/src/main/java/io/gravitee/repository/mongodb/management/internal/portalpagecontent/PortalPageContentMongoRepository.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,9 @@
1919
import io.gravitee.repository.mongodb.management.internal.model.PortalPageContentMongo;
2020
import java.util.Set;
2121
import org.springframework.data.mongodb.repository.MongoRepository;
22-
import org.springframework.data.mongodb.repository.Query;
2322
import org.springframework.stereotype.Repository;
2423

2524
@Repository
2625
public interface PortalPageContentMongoRepository extends MongoRepository<PortalPageContentMongo, String> {
2726
Set<PortalPageContentMongo> findAllByType(PortalPageContent.Type type);
28-
29-
@Query(value = "{ 'type' : ?0 }", delete = true)
30-
void deleteByType(PortalPageContent.Type type);
3127
}

gravitee-apim-repository/gravitee-apim-repository-mongodb/src/main/java/io/gravitee/repository/mongodb/management/mapper/GraviteeMapper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,4 +347,12 @@ public interface GraviteeMapper {
347347

348348
Cluster map(ClusterMongo source);
349349
ClusterMongo map(Cluster source);
350+
351+
// PortalNavigationItem mapping
352+
PortalNavigationItem map(PortalNavigationItemMongo toMap);
353+
PortalNavigationItemMongo map(PortalNavigationItem toMap);
354+
355+
// PortalPageContent mapping
356+
PortalPageContent map(PortalPageContentMongo toMap);
357+
PortalPageContentMongo map(PortalPageContent toMap);
350358
}

gravitee-apim-repository/gravitee-apim-repository-mongodb/src/main/java/io/gravitee/repository/mongodb/management/upgrade/upgrader/index/portalnavigationindex/PortalNavigationItemEnvironmentIdIndexUpgrader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ protected Index buildIndex() {
2727
return Index.builder()
2828
.collection("portal_navigation_items")
2929
.key("environmentId", ascending())
30-
.name("portal_navigation_items_environment_idx")
30+
.name("e1")
3131
.build();
3232
}
3333
}

0 commit comments

Comments
 (0)