@Test public void description_url_avatarUrl_and_userId_are_optional() { when(system2.now()).thenReturn(SOME_DATE); insertOrganization(copyOf(ORGANIZATION_DTO_1).setDescription(null).setUrl(null).setAvatarUrl(null)); Map<String, Object> row = selectSingleRow(); assertThat(row.get("uuid")).isEqualTo(ORGANIZATION_DTO_1.getUuid()); assertThat(row.get("key")).isEqualTo(ORGANIZATION_DTO_1.getKey()); assertThat(row.get("name")).isEqualTo(ORGANIZATION_DTO_1.getName()); assertThat(row.get("description")).isNull(); assertThat(row.get("url")).isNull(); assertThat(row.get("avatarUrl")).isNull(); assertThat(row.get("guarded")).isEqualTo(toBool(ORGANIZATION_DTO_1.isGuarded())); assertThat(row.get("userId")).isNull(); assertThat(row.get("createdAt")).isEqualTo(SOME_DATE); assertThat(row.get("updatedAt")).isEqualTo(SOME_DATE); assertThat(row.get("defaultTemplate")).isNull(); assertThat(row.get("projectDefaultTemplate")).isNull(); assertThat(row.get("viewDefaultTemplate")).isNull(); }
private OrganizationDto insertOrganization(DbSession dbSession, NewOrganization newOrganization, QualityGateDto builtInQualityGate, Consumer<OrganizationDto>... extendCreation) { OrganizationDto res = new OrganizationDto() .setUuid(uuidFactory.create()) .setName(newOrganization.getName()) .setKey(newOrganization.getKey()) .setDescription(newOrganization.getDescription()) .setUrl(newOrganization.getUrl()) .setDefaultQualityGateUuid(builtInQualityGate.getUuid()) .setAvatarUrl(newOrganization.getAvatar()) .setSubscription(FREE); Arrays.stream(extendCreation).forEach(c -> c.accept(res)); dbClient.organizationDao().insert(dbSession, res, false); return res; }
private OrganizationDto copyOf(OrganizationDto organizationDto) { return new OrganizationDto() .setUuid(organizationDto.getUuid()) .setKey(organizationDto.getKey()) .setName(organizationDto.getName()) .setDescription(organizationDto.getDescription()) .setUrl(organizationDto.getUrl()) .setDefaultQualityGateUuid(organizationDto.getDefaultQualityGateUuid()) .setSubscription(organizationDto.getSubscription()) .setAvatarUrl(organizationDto.getAvatarUrl()); }
/** * Creates a new {@link OrganizationDto} with randomly generated field values. */ public static OrganizationDto newOrganizationDto() { return new OrganizationDto() .setKey(randomAlphanumeric(32)) .setUuid(randomAlphanumeric(40)) .setName(randomAlphanumeric(64)) .setDescription(randomAlphanumeric(256)) .setAvatarUrl(randomAlphanumeric(256)) // Default quality gate should be set explicitly when needed in tests .setDefaultQualityGateUuid("_NOT_SET_") .setSubscription(FREE) .setUrl(randomAlphanumeric(256)); } }
@Override public void handle(Request request, Response response) throws Exception { userSession.checkLoggedIn(); try (DbSession dbSession = dbClient.openSession(false)) { organizationFlags.checkEnabled(dbSession); String key = request.mandatoryParam(PARAM_KEY); UpdateOrganizationRequest updateRequest = new UpdateOrganizationRequest( request.getParam(PARAM_NAME, (rqt, paramKey) -> wsSupport.getAndCheckName(rqt)), request.getParam(PARAM_DESCRIPTION, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckDescription(rqt))), request.getParam(PARAM_URL, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckUrl(rqt))), request.getParam(PARAM_AVATAR_URL, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckAvatar(rqt)))); OrganizationDto dto = getDto(dbSession, key); userSession.checkPermission(ADMINISTER, dto); dto.setName(updateRequest.getName().or(dto::getName)) .setDescription(updateRequest.getDescription().or(dto::getDescription)) .setUrl(updateRequest.getUrl().or(dto::getUrl)) .setAvatarUrl(updateRequest.getAvatar().or(dto::getAvatarUrl)); dbClient.organizationDao().update(dbSession, dto); dbSession.commit(); writeResponse(request, response, dto); } }
private OrganizationDto insertOrganization(DbSession dbSession, NewOrganization newOrganization, QualityGateDto builtInQualityGate, Consumer<OrganizationDto>... extendCreation) { OrganizationDto res = new OrganizationDto() .setUuid(uuidFactory.create()) .setName(newOrganization.getName()) .setKey(newOrganization.getKey()) .setDescription(newOrganization.getDescription()) .setUrl(newOrganization.getUrl()) .setDefaultQualityGateUuid(builtInQualityGate.getUuid()) .setAvatarUrl(newOrganization.getAvatar()); Arrays.stream(extendCreation).forEach(c -> c.accept(res)); dbClient.organizationDao().insert(dbSession, res, false); return res; }
@Override public void handle(Request request, Response response) throws Exception { userSession.checkLoggedIn(); try (DbSession dbSession = dbClient.openSession(false)) { organizationFlags.checkEnabled(dbSession); String key = request.mandatoryParam(PARAM_KEY); UpdateOrganizationRequest updateRequest = new UpdateOrganizationRequest( request.getParam(PARAM_NAME, (rqt, paramKey) -> wsSupport.getAndCheckName(rqt)), request.getParam(PARAM_DESCRIPTION, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckDescription(rqt))), request.getParam(PARAM_URL, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckUrl(rqt))), request.getParam(PARAM_AVATAR_URL, (rqt, paramKey) -> emptyAsNull(wsSupport.getAndCheckAvatar(rqt)))); OrganizationDto dto = getDto(dbSession, key); userSession.checkPermission(ADMINISTER, dto); dto.setName(updateRequest.getName().or(dto::getName)) .setDescription(updateRequest.getDescription().or(dto::getDescription)) .setUrl(updateRequest.getUrl().or(dto::getUrl)) .setAvatarUrl(updateRequest.getAvatar().or(dto::getAvatarUrl)); dbClient.organizationDao().update(dbSession, dto); dbSession.commit(); writeResponse(request, response, dto); } }