package eu.eudat.service.user; import com.fasterxml.jackson.core.JsonProcessingException; import eu.eudat.model.DescriptionTemplateType; import eu.eudat.model.User; import eu.eudat.model.persist.DescriptionTemplateTypePersist; import eu.eudat.model.persist.UserPersist; import eu.eudat.model.persist.UserRolePatchPersist; 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 javax.management.InvalidApplicationException; import java.io.IOException; import java.util.UUID; public interface UserService { User persist(UserPersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JsonProcessingException; void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; byte[] exportCsv() throws IOException; User patchRoles(UserRolePatchPersist model, FieldSet fields) throws InvalidApplicationException; }