diff options
author | Lukasz Jarocki <lukasz.jarocki@sonarsource.com> | 2023-05-17 12:54:41 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-06-01 20:02:59 +0000 |
commit | eacb54feaafed86f4b26b6f4d755f13baf8b9b1c (patch) | |
tree | 88add160c04c84e0d87ac538dd618ac513052628 /server/sonar-db-dao | |
parent | 46effb33d74b5b37f097288d6bac6343a2d06a8c (diff) | |
download | sonarqube-eacb54feaafed86f4b26b6f4d755f13baf8b9b1c.tar.gz sonarqube-eacb54feaafed86f4b26b6f4d755f13baf8b9b1c.zip |
SONAR-18856 Refactor properties and favorites
Diffstat (limited to 'server/sonar-db-dao')
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"> |