diff options
author | BenoƮt Gianinetti <benoit.gianinetti@sonarsource.com> | 2019-02-01 13:57:05 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2019-03-06 11:30:18 +0100 |
commit | ffb6ac23bee90134b99a02959c1eabb986d7d998 (patch) | |
tree | 8270c62110460884aae70fb71fb34e547f87d372 /server/sonar-db-dao/src | |
parent | 8fea84e4d16e93e20930efa3bbea044625071e31 (diff) | |
download | sonarqube-ffb6ac23bee90134b99a02959c1eabb986d7d998.tar.gz sonarqube-ffb6ac23bee90134b99a02959c1eabb986d7d998.zip |
SONARCLOUD-379 Add ORG_ALM_BINDING#MEMBERS_SYNC column
Diffstat (limited to 'server/sonar-db-dao/src')
5 files changed, 44 insertions, 4 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java index dcc495136d2..10c91dd5099 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDao.java @@ -59,7 +59,7 @@ public class OrganizationAlmBindingDao implements Dao { return ofNullable(getMapper(dbSession).selectByInstallationUuid(almAppInstall.getUuid())); } - public void insert(DbSession dbSession, OrganizationDto organization, AlmAppInstallDto almAppInstall, String url, String userUuid) { + public void insert(DbSession dbSession, OrganizationDto organization, AlmAppInstallDto almAppInstall, String url, String userUuid, boolean membersSync) { long now = system2.now(); getMapper(dbSession).insert(new OrganizationAlmBindingDto() .setUuid(uuidFactory.create()) @@ -68,6 +68,7 @@ public class OrganizationAlmBindingDao implements Dao { .setAlmId(almAppInstall.getAlm()) .setUrl(url) .setUserUuid(userUuid) + .setMembersSyncEnabled(membersSync) .setCreatedAt(now)); } @@ -79,6 +80,10 @@ public class OrganizationAlmBindingDao implements Dao { getMapper(dbSession).deleteByAlmAppInstallUuid(almAppInstall.getUuid()); } + public void updateMembersSync(DbSession dbSession, OrganizationAlmBindingDto orgAlmBinding, boolean enabled) { + getMapper(dbSession).updateMembersSync(orgAlmBinding.getUuid(), enabled); + } + private static OrganizationAlmBindingMapper getMapper(DbSession dbSession) { return dbSession.getMapper(OrganizationAlmBindingMapper.class); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java index b8dbf5137d2..6831e87cb85 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingDto.java @@ -53,6 +53,10 @@ public class OrganizationAlmBindingDto { */ private String userUuid; /** + * If the members of the org are automatically sync with the ALM org + */ + private boolean membersSyncEnabled; + /** * Technical creation date */ private long createdAt; @@ -114,6 +118,15 @@ public class OrganizationAlmBindingDto { return this; } + public boolean isMembersSyncEnable() { + return membersSyncEnabled; + } + + public OrganizationAlmBindingDto setMembersSyncEnabled(boolean membersSyncEnabled) { + this.membersSyncEnabled = membersSyncEnabled; + return this; + } + public long getCreatedAt() { return createdAt; } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java index 62961d2cbf1..d59c5bfd0ce 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/OrganizationAlmBindingMapper.java @@ -39,4 +39,6 @@ public interface OrganizationAlmBindingMapper { void deleteByOrganizationUuid(@Param("organizationUuid") String organizationUuid); void deleteByAlmAppInstallUuid(@Param("almAppInstallUuid") String almAppInstallUuid); + + void updateMembersSync(@Param("uuid") String uuid, @Param("membersSyncEnabled") boolean membersSyncEnabled); } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml index 1f636ee415b..e55533434ea 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/OrganizationAlmBindingMapper.xml @@ -10,6 +10,7 @@ alm_id as rawAlmId, url, user_uuid as userUuid, + members_sync_enabled as membersSyncEnabled, created_at as createdAt </sql> @@ -52,6 +53,7 @@ alm_id, url, user_uuid, + members_sync_enabled, created_at ) VALUES ( @@ -61,6 +63,7 @@ #{dto.rawAlmId, jdbcType=VARCHAR}, #{dto.url, jdbcType=VARCHAR}, #{dto.userUuid, jdbcType=VARCHAR}, + #{dto.membersSyncEnabled, jdbcType=BOOLEAN}, #{dto.createdAt, jdbcType=BIGINT} ) </insert> @@ -73,4 +76,10 @@ DELETE FROM organization_alm_bindings WHERE alm_app_install_uuid = #{almAppInstallUuid, jdbcType=VARCHAR} </delete> + <update id="updateMembersSync" parameterType="map"> + update organization_alm_bindings set + members_sync_enabled = #{membersSyncEnabled, jdbcType=BOOLEAN} + where + uuid = #{uuid, jdbcType=VARCHAR} + </update> </mapper> diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java index b1d38519d97..b72e7a6e12c 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/OrganizationAlmBindingDaoTest.java @@ -152,12 +152,12 @@ public class OrganizationAlmBindingDaoTest { UserDto user = db.users().insertUser(); AlmAppInstallDto almAppInstall = db.alm().insertAlmAppInstall(); - underTest.insert(db.getSession(), organization, almAppInstall, "http://myorg.com", user.getUuid()); + underTest.insert(db.getSession(), organization, almAppInstall, "http://myorg.com", user.getUuid(), true); assertThat(db.selectFirst(db.getSession(), "select" + " uuid as \"uuid\", organization_uuid as \"organizationUuid\", alm_app_install_uuid as \"almAppInstallUuid\", url as \"url\", alm_id as \"almId\"," + - " user_uuid as \"userUuid\", created_at as \"createdAt\"" + + " user_uuid as \"userUuid\", members_sync_enabled as \"membersSync\", created_at as \"createdAt\"" + " from organization_alm_bindings" + " where organization_uuid='" + organization.getUuid() + "'")) .contains( @@ -167,7 +167,8 @@ public class OrganizationAlmBindingDaoTest { entry("almId", "github"), entry("url", "http://myorg.com"), entry("userUuid", user.getUuid()), - entry("createdAt", NOW)); + entry("createdAt", NOW), + entry("membersSync", true)); } @Test @@ -200,4 +201,14 @@ public class OrganizationAlmBindingDaoTest { assertThat(underTest.selectByOrganization(db.getSession(), otherOrganization)).isPresent(); } + @Test + public void updateMembersSync() { + OrganizationDto organization = db.organizations().insert(); + AlmAppInstallDto almAppInstall = db.alm().insertAlmAppInstall(); + OrganizationAlmBindingDto orgAlmBindingDto = db.alm().insertOrganizationAlmBinding(organization, almAppInstall); + + underTest.updateMembersSync(db.getSession(), orgAlmBindingDto, false); + + assertThat(db.getDbClient().organizationAlmBindingDao().selectByOrganization(db.getSession(), organization).get().isMembersSyncEnable()).isFalse(); + } } |