Interface AiidaPermissionRequestViewRepository
- All Superinterfaces:
PermissionRequestRepository<AiidaPermissionRequest>,org.springframework.data.repository.Repository<AiidaPermissionRequest,,String> StalePermissionRequestRepository<AiidaPermissionRequest>
@Repository
@Transactional(readOnly=true)
public interface AiidaPermissionRequestViewRepository
extends PermissionRequestRepository<AiidaPermissionRequest>, StalePermissionRequestRepository<AiidaPermissionRequest>, org.springframework.data.repository.Repository<AiidaPermissionRequest,String>
Repository for selecting the aggregate permission request by using the SQL view.
-
Method Summary
Modifier and TypeMethodDescriptiondefault Optional<AiidaPermissionRequest> findByPermissionId(String permissionId) Finds a permission request by its permission id.findStalePermissionRequests(int duration) Finds all permission request that are older than thestalenessDurationand have either the statusVALIDATEDorSENT_TO_PERMISSION_ADMINISTRATOR.default AiidaPermissionRequestgetByPermissionId(String permissionId) Gets a permission request by its permission id.default voidsave(AiidaPermissionRequest request) Save the permission request.
-
Method Details
-
save
Description copied from interface:PermissionRequestRepositorySave the permission request. If a request with the same permission id already exists it will be overwritten.- Specified by:
savein interfacePermissionRequestRepository<AiidaPermissionRequest>- Parameters:
request- the permission request to be saved.
-
findByPermissionId
Description copied from interface:PermissionRequestRepositoryFinds a permission request by its permission id. If there is no permission request, it returns an empty optional.- Specified by:
findByPermissionIdin interfacePermissionRequestRepository<AiidaPermissionRequest>- Parameters:
permissionId- the id of the permission request.- Returns:
- an optional that contains the permission request if it exists.
-
findById
-
getByPermissionId
Description copied from interface:PermissionRequestRepositoryGets a permission request by its permission id. If it cannot be found throwsEntityNotFoundException. Should only be used when sure that the permission request exists- Specified by:
getByPermissionIdin interfacePermissionRequestRepository<AiidaPermissionRequest>- Parameters:
permissionId- the id of the permission request.- Returns:
- the permission request
-
findStalePermissionRequests
@Query(value="SELECT permission_id, status, connection_id, data_need_id, permission_start, permission_end, termination_topic, created, message, aiida_id FROM aiida.aiida_permission_request_view WHERE status = \'SENT_TO_PERMISSION_ADMINISTRATOR\' AND created <= NOW() - :hours * INTERVAL \'1 hour\'", nativeQuery=true) List<AiidaPermissionRequest> findStalePermissionRequests(@Param("hours") int duration) Description copied from interface:StalePermissionRequestRepositoryFinds all permission request that are older than thestalenessDurationand have either the statusVALIDATEDorSENT_TO_PERMISSION_ADMINISTRATOR.- Specified by:
findStalePermissionRequestsin interfaceStalePermissionRequestRepository<AiidaPermissionRequest>- Parameters:
duration- the max amount of hours the permission request has to be created ago to not be considered stale.- Returns:
- all permission request created now -
stalenessDurationhours ago, with above specified status.
-
findActivePermissionRequests
@Query(value="SELECT permission_id, status, connection_id, data_need_id, permission_start, permission_end, termination_topic, created, message, aiida_id FROM aiida.aiida_permission_request_view WHERE status = \'ACCEPTED\' AND permission_start <= NOW() AND permission_end >= NOW()", nativeQuery=true) List<AiidaPermissionRequest> findActivePermissionRequests()
-