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 Details

    • save

      default void save(AiidaPermissionRequest request)
      Description copied from interface: PermissionRequestRepository
      Save the permission request. If a request with the same permission id already exists it will be overwritten.
      Specified by:
      save in interface PermissionRequestRepository<AiidaPermissionRequest>
      Parameters:
      request - the permission request to be saved.
    • findByPermissionId

      default Optional<AiidaPermissionRequest> findByPermissionId(String permissionId)
      Description copied from interface: PermissionRequestRepository
      Finds a permission request by its permission id. If there is no permission request, it returns an empty optional.
      Specified by:
      findByPermissionId in interface PermissionRequestRepository<AiidaPermissionRequest>
      Parameters:
      permissionId - the id of the permission request.
      Returns:
      an optional that contains the permission request if it exists.
    • findById

      Optional<AiidaPermissionRequest> findById(String permissionId)
    • getByPermissionId

      default AiidaPermissionRequest getByPermissionId(String permissionId)
      Description copied from interface: PermissionRequestRepository
      Gets a permission request by its permission id. If it cannot be found throws EntityNotFoundException. Should only be used when sure that the permission request exists
      Specified by:
      getByPermissionId in interface PermissionRequestRepository<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: StalePermissionRequestRepository
      Finds all permission request that are older than the stalenessDuration and have either the status VALIDATED or SENT_TO_PERMISSION_ADMINISTRATOR.
      Specified by:
      findStalePermissionRequests in interface StalePermissionRequestRepository<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 - stalenessDuration hours 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()