aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorLukasz Jarocki <lukasz.jarocki@sonarsource.com>2023-05-17 12:54:41 +0200
committersonartech <sonartech@sonarsource.com>2023-06-01 20:02:59 +0000
commiteacb54feaafed86f4b26b6f4d755f13baf8b9b1c (patch)
tree88add160c04c84e0d87ac538dd618ac513052628 /server/sonar-db-dao
parent46effb33d74b5b37f097288d6bac6343a2d06a8c (diff)
downloadsonarqube-eacb54feaafed86f4b26b6f4d755f13baf8b9b1c.tar.gz
sonarqube-eacb54feaafed86f4b26b6f4d755f13baf8b9b1c.zip
SONAR-18856 Refactor properties and favorites
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java26
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java9
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesMapper.java3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/property/PropertiesMapper.xml17
4 files changed, 23 insertions, 32 deletions
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java
index 9c9d8799598..c849a02bad3 100644
--- a/server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java
+++ b/server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java
@@ -617,32 +617,6 @@ public class PropertiesDaoIT {
}
@Test
- public void selectByKeyAndUserUuidAndComponentQualifier() {
- UserDto user1 = db.users().insertUser();
- UserDto user2 = db.users().insertUser();
- ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
- ComponentDto file1 = db.components().insertComponent(ComponentTesting.newFileDto(project1));
- ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
- db.properties().insertProperties(user1.getLogin(), project1.getKey(), project1.name(), project1.qualifier(),
- newPropertyDto("key", "1", project1, user1));
- db.properties().insertProperties(user1.getLogin(), project1.getKey(), project2.name(), project2.qualifier(),
- newPropertyDto("key", "2", project2, user1));
- db.properties().insertProperties(user1.getLogin(), null, file1.name(), null,
- newPropertyDto("key", "3", file1, user1));
- db.properties().insertProperties(user1.getLogin(), project1.getKey(), project1.name(), project1.qualifier(),
- newPropertyDto("another key", "4", project1, user1));
- db.properties().insertProperties(user2.getLogin(), project1.getKey(), project1.name(), project1.qualifier(),
- newPropertyDto("key", "5", project1, user2));
- db.properties().insertProperties(null, null, null, null, newGlobalPropertyDto("key", "global"));
-
- assertThat(underTest.selectByKeyAndUserUuidAndComponentQualifier(db.getSession(), "key", user1.getUuid(), "TRK"))
- .extracting(PropertyDto::getValue).containsExactlyInAnyOrder("1", "2");
- assertThat(underTest.selectByKeyAndUserUuidAndComponentQualifier(db.getSession(), "key", user1.getUuid(), "FIL"))
- .extracting(PropertyDto::getValue).containsExactlyInAnyOrder("3");
- assertThat(underTest.selectByKeyAndUserUuidAndComponentQualifier(db.getSession(), "key", user2.getUuid(), "FIL")).isEmpty();
- }
-
- @Test
public void saveProperty_inserts_global_properties_when_they_do_not_exist_in_db() {
underTest.saveProperty(new PropertyDto().setKey("global.null").setValue(null));
underTest.saveProperty(new PropertyDto().setKey("global.empty").setValue(""));
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java
index 8043b74cb8b..94ad4f03582 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java
@@ -157,9 +157,12 @@ public class PropertiesDao implements Dao {
return getMapper(session).selectByKeyAndMatchingValue(key, value);
}
- //TODO
- public List<PropertyDto> selectByKeyAndUserUuidAndComponentQualifier(DbSession session, String key, String userUuid, String qualifier) {
- return getMapper(session).selectByKeyAndUserUuidAndComponentQualifier(key, userUuid, qualifier);
+ public List<PropertyDto> selectPortfolioPropertyByKeyAndUserUuid(DbSession session, String key, String userUuid) {
+ return getMapper(session).selectPortfolioPropertyByKeyAndUserUuid(key, userUuid);
+ }
+
+ public List<PropertyDto> selectProjectPropertyByKeyAndUserUuid(DbSession session, String key, String userUuid) {
+ return getMapper(session).selectProjectPropertyByKeyAndUserUuid(key, userUuid);
}
/**
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesMapper.java
index 3ba2665e206..fcf55451177 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesMapper.java
@@ -38,7 +38,8 @@ public interface PropertiesMapper {
List<PropertyDto> selectByKeysAndComponentUuids(@Param("keys") List<String> keys, @Param("componentUuids") List<String> componentUuids);
- List<PropertyDto> selectByKeyAndUserUuidAndComponentQualifier(@Param("key") String key, @Param("userUuid") String userUuid, @Param("qualifier") String qualifier);
+ List<PropertyDto> selectPortfolioPropertyByKeyAndUserUuid(@Param("key") String key, @Param("userUuid") String userUuid);
+ List<PropertyDto> selectProjectPropertyByKeyAndUserUuid(@Param("key") String key, @Param("userUuid") String userUuid);
List<PropertyDto> selectByComponentUuids(@Param("componentUuids") List<String> componentUuids);
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/property/PropertiesMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/property/PropertiesMapper.xml
index 72b92e78ae2..03b1d53f133 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/property/PropertiesMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/property/PropertiesMapper.xml
@@ -131,15 +131,28 @@
and p.user_uuid is null
</select>
- <select id="selectByKeyAndUserUuidAndComponentQualifier" parameterType="map" resultType="ScrapProperty">
+ <select id="selectPortfolioPropertyByKeyAndUserUuid" parameterType="map" resultType="ScrapProperty">
select
<include refid="columnsToScrapPropertyDto"/>
from
properties p
- inner join components prj on prj.uuid=p.component_uuid and prj.qualifier = #{qualifier, jdbcType=VARCHAR}
+ inner join portfolio por on por.uuid=p.component_uuid
where
p.prop_key = #{key, jdbcType=VARCHAR}
and p.user_uuid = #{userUuid, jdbcType=VARCHAR}
+ and por.uuid is not null
+ </select>
+
+ <select id="selectProjectPropertyByKeyAndUserUuid" parameterType="map" resultType="ScrapProperty">
+ select
+ <include refid="columnsToScrapPropertyDto"/>
+ from
+ properties p
+ inner join projects prj on prj.uuid=p.component_uuid
+ where
+ p.prop_key = #{key, jdbcType=VARCHAR}
+ and p.user_uuid = #{userUuid, jdbcType=VARCHAR}
+ and prj.uuid is not null
</select>
<select id="selectByQuery" parameterType="map" resultType="ScrapProperty">