Search in sources :

Example 1 with UpdateTenantEntity

use of io.gravitee.rest.api.model.UpdateTenantEntity in project gravitee-management-rest-api by gravitee-io.

the class TenantServiceImpl method update.

@Override
public List<TenantEntity> update(final List<UpdateTenantEntity> tenantEntities, String referenceId, TenantReferenceType referenceType) {
    final List<TenantEntity> savedTenants = new ArrayList<>(tenantEntities.size());
    tenantEntities.forEach(tenantEntity -> {
        try {
            Tenant tenant = convert(tenantEntity);
            Optional<Tenant> tenantOptional = tenantRepository.findByIdAndReference(tenant.getId(), referenceId, repoTenantReferenceType(referenceType));
            if (tenantOptional.isPresent()) {
                Tenant existingTenant = tenantOptional.get();
                tenant.setReferenceId(existingTenant.getReferenceId());
                tenant.setReferenceType(existingTenant.getReferenceType());
                savedTenants.add(convert(tenantRepository.update(tenant)));
                auditService.createEnvironmentAuditLog(Collections.singletonMap(TENANT, tenant.getId()), TENANT_UPDATED, new Date(), tenantOptional.get(), tenant);
            }
        } catch (TechnicalException ex) {
            LOGGER.error("An error occurs while trying to update tenant {}", tenantEntity.getName(), ex);
            throw new TechnicalManagementException("An error occurs while trying to update tenant " + tenantEntity.getName(), ex);
        }
    });
    return savedTenants;
}
Also used : Tenant(io.gravitee.repository.management.model.Tenant) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) NewTenantEntity(io.gravitee.rest.api.model.NewTenantEntity) TenantEntity(io.gravitee.rest.api.model.TenantEntity) UpdateTenantEntity(io.gravitee.rest.api.model.UpdateTenantEntity) TechnicalManagementException(io.gravitee.rest.api.service.exceptions.TechnicalManagementException)

Aggregations

TechnicalException (io.gravitee.repository.exceptions.TechnicalException)1 Tenant (io.gravitee.repository.management.model.Tenant)1 NewTenantEntity (io.gravitee.rest.api.model.NewTenantEntity)1 TenantEntity (io.gravitee.rest.api.model.TenantEntity)1 UpdateTenantEntity (io.gravitee.rest.api.model.UpdateTenantEntity)1 TechnicalManagementException (io.gravitee.rest.api.service.exceptions.TechnicalManagementException)1