Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2015 the original author or authors
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * 	http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.clusterra.iam.core.application.tenant;
 
 import  org.springframework.beans.factory.annotation.Autowired;
 import  org.springframework.context.ApplicationEventPublisher;
 import  org.springframework.stereotype.Service;
 import  org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;

Author(s):
Alexander Fyodorov
Denis Kuchugurov
 
 @Service
 public class TenantCommandServiceImpl implements TenantCommandService {
 
     @Autowired
 
     @Autowired
     private ApplicationEventPublisher applicationEventPublisher;
 
     @Autowired
     private Environment environment;
 
     @Transactional
 
         if (.findByName(name) != null) {
             throw new TenantAlreadyExistsException(name);
         }
 
         Tenant tenant = new Tenant(nameemail);
 
         .save(tenant);
         .publishEvent(new TenantCreatedEvent(thisnew TenantId(tenant.getId())));
         return tenant;
     }
 
     @Transactional
     public void enable(TenantId tenantIdthrows TenantNotFoundException {
         Tenant tenant = getTenant(tenantId);
         tenant.enable();
         .publishEvent(new TenantEnabledEvent(thistenantId));
     }
 
     private Tenant getTenant(TenantId tenantIdthrows TenantNotFoundException {
         Tenant tenant = .findOne(tenantId.getId());
         if (tenant == null) {
             throw new TenantNotFoundException(tenantId);
         }
         return tenant;
     }
 
     @Transactional
     public void disable(TenantId tenantIdthrows TenantNotFoundException {
         Tenant tenant = getTenant(tenantId);
         tenant.disable();
         .publishEvent(new TenantDisabledEvent(thistenantId));
     }
 
     @Transactional
     public void delete(TenantId tenantIdthrows TenantNotFoundException {
         Tenant tenant = getTenant(tenantId);
         .publishEvent(new TenantDeletingEvent(thistenantId));
         .delete(tenant);
         .publishEvent(new TenantDeletedEvent(thistenantId));
     }
    @Transactional
        if (.findBySignUpEmail(email) != null) {
            throw new EmailAlreadyExistsException(email);
        }
        Tenant tenant = create(nameemail);
        Integer signUpTimeoutDays = .getRequiredProperty("clusterra.iam-core.tenant-sign-up-timeout-days".);
        tenant.setActivationToken(signUpTimeoutDays);
        .save(tenant);
        .publishEvent(new TenantSignedUpEvent(thisnew TenantId(tenant.getId()), tenant.getActivationToken(), email));
        return tenant;
    }
    @Transactional
    public Tenant activate(String activationTokenString loginString passwordString firstNameString lastNamethrows InvalidTenantActivationTokenException {
        if (StringUtils.isEmpty(activationToken)) {
            throw new InvalidTenantActivationTokenException(activationToken);
        }
        Tenant tenant = .findByToken(activationToken);
        if (tenant == null) {
            throw new InvalidTenantActivationTokenException(activationToken);
        }
        if (DateTime.now().minusMinutes(1).isAfter(tenant.getActivationToken().getExpiresAt().getTime())) {
            throw new InvalidTenantActivationTokenException(activationTokentenant.getActivationToken().getExpiresAt());
        }
        tenant.enable();
        .publishEvent(new TenantActivatedEvent(thisnew TenantId(tenant.getId()), loginpasswordtenant.getSignUpEmail(), firstNamelastName));
        return tenant;
    }
    @Transactional
    public Tenant update(TenantId tenantIdString nameString descriptionString webSiteString languageString locationthrows TenantAlreadyExistsExceptionTenantNotFoundExceptionInvalidTenantNameException {
        Tenant tenant = getTenant(tenantId);
        if (.findByName(name) != null) {
            throw new TenantAlreadyExistsException(name);
        }
        tenant.setName(name);
        tenant.setDescription(description);
        tenant.setWebSite(webSite);
        tenant.setLanguage(language);
        tenant.setLocation(location);
        .publishEvent(new TenantUpdatedEvent(thistenantId));
        return tenant;
    }
    @Transactional
    public Integer purgeExpiredSignUps() {
        List<Tenantexpired = .findExpired(DateTime.now().toDate());
        if (!expired.isEmpty()) {
            .delete(expired);
        }
        return expired.size();
    }
    @Transactional
    public Tenant updateAvatar(TenantId tenantIdString avatarIdthrows TenantNotFoundException {
        Tenant tenant = getTenant(tenantId);
        tenant.setAvatarId(avatarId);
        return tenant;
    }
New to GrepCode? Check out our FAQ X