argos/dmp-backend/notification-service/notification/src/main/java/gr/cite/notification/service/tenant/TenantServiceImpl.java

52 lines
2.1 KiB
Java

package gr.cite.notification.service.tenant;
import com.fasterxml.jackson.core.JsonProcessingException;
import gr.cite.commons.web.authz.service.AuthorizationService;
import gr.cite.notification.authorization.Permission;
import gr.cite.notification.model.Tenant;
import gr.cite.notification.model.deleter.TenantDeleter;
import gr.cite.notification.model.deleter.UserDeleter;
import gr.cite.notification.model.persist.TenantTouchedIntegrationEventPersist;
import gr.cite.notification.service.user.UserServiceImpl;
import gr.cite.tools.data.deleter.DeleterFactory;
import gr.cite.tools.exception.MyApplicationException;
import gr.cite.tools.exception.MyForbiddenException;
import gr.cite.tools.exception.MyNotFoundException;
import gr.cite.tools.exception.MyValidationException;
import gr.cite.tools.fieldset.FieldSet;
import gr.cite.tools.logging.LoggerService;
import org.slf4j.LoggerFactory;
import javax.management.InvalidApplicationException;
import java.util.List;
import java.util.UUID;
public class TenantServiceImpl implements TenantService {
private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(TenantServiceImpl.class));
private final AuthorizationService authorizationService;
private final DeleterFactory deleterFactory;
public TenantServiceImpl(AuthorizationService authorizationService, DeleterFactory deleterFactory) {
this.authorizationService = authorizationService;
this.deleterFactory = deleterFactory;
}
@Override
public Tenant persist(TenantTouchedIntegrationEventPersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JsonProcessingException {
return null;
}
@Override
public void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException {
logger.debug("deleting Tenant: {}", id);
this.authorizationService.authorizeForce(Permission.DeleteTenant);
this.deleterFactory.deleter(TenantDeleter.class).deleteAndSaveByIds(List.of(id));
}
}