Interface SearchRequestService

All Known Implementing Classes:
DefaultSearchRequestService

@PublicApi public interface SearchRequestService
Service exposing Search Request Management and retrieval.
Since:
v3.13
  • Method Details

    • getFavouriteFilters

      Collection<SearchRequest> getFavouriteFilters(ApplicationUser user)
      Retrieve all filters a user has favourited. Permission checks are done to ensure the user can see the filter, as visibility may have been removed from underneath them.
      Parameters:
      user - The user who has favourite filters. Also to test visibility and with
      Returns:
      a Collection of SearchRequest objects that represent filters the user has favourited.
    • getOwnedFilters

      Collection<SearchRequest> getOwnedFilters(ApplicationUser user)
      Retrieve all filters a user owns/has created.
      Parameters:
      user - The user who created the filters.
      Returns:
      a Collection of SearchRequest objects that represent filters the user has created.
    • getNonPrivateFilters

      Collection<SearchRequest> getNonPrivateFilters(ApplicationUser user)
      Get a user's non private filters. I.e. filters that other users can possibly see.
      Parameters:
      user - The author of the filters
      Returns:
      Collection of SearchRequest objects that do not have private scope.
    • getFiltersFavouritedByOthers

      Collection<SearchRequest> getFiltersFavouritedByOthers(ApplicationUser user)
      Get filters owned by a given user that have been favourited by at least one other user
      Parameters:
      user - The author of the filters
      Returns:
      Collection of SearchRequest objects owned by the given user and favourited by at least one other user
    • deleteFilter

      void deleteFilter(JiraServiceContext serviceCtx, Long filterId)
      Delete a given filter.
      Parameters:
      serviceCtx - JIRA Service context containing an error collection and user performing action. User must be owner of filter, else error is passed back through the error collection.
      filterId - The id of the filter to delete. Id must not be null, else error is passed back through the error collection.
    • deleteAllFiltersForUser

      void deleteAllFiltersForUser(JiraServiceContext serviceCtx, ApplicationUser user)
      Delete all filters for a given user
      Parameters:
      serviceCtx - JIRA Service context containing an error collection and user performing action
      user - The user to remove all filters for
    • getFilter

      SearchRequest getFilter(JiraServiceContext serviceCtx, Long filterId)
      Retrieve a given filter by id.
      Parameters:
      serviceCtx - JIRA Service context containing an error collection and user requesting (to run) the filter. The filter must exist and the user must be able to see filter else an error will result.
      filterId - The id of the filter to retrieve. Id must not be null.
      Returns:
      The Filter as specified by the id, or null if none exists for the user.
    • validateFilterForUpdate

      void validateFilterForUpdate(JiraServiceContext serviceCtx, SearchRequest request)
      Validates that a filter is in a correct state to be updated.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the SearchRequest to validate
    • validateUpdateSearchParameters

      boolean validateUpdateSearchParameters(JiraServiceContext serviceContext, SearchRequest request)
      Validate that the passed SearchRequest's search parameters and search sorts can be persisted. This method does *not* check the validity of the name, description, share permissions or any other fields in the SearchRequest. Any errors will be reported in the passed context.
      Parameters:
      serviceContext - Context containing user, error collection and i18n bean
      request - the request to validate.
      Returns:
      true iff the passed request's parameters can be saved.
    • validateFilterForCreate

      void validateFilterForCreate(JiraServiceContext serviceCtx, SearchRequest request)
      Validates that a filter is in a correct state to be created.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the SearchRequest to validate
    • validateForDelete

      void validateForDelete(JiraServiceContext serviceCtx, Long filterId)
      Validates that the filter can be deleted successfully.
      Parameters:
      serviceCtx - context of the calling user.
      filterId - the filter to delete.
    • validateFilterForChangeOwner

      void validateFilterForChangeOwner(JiraServiceContext serviceCtx, SearchRequest request)
      Validates that the proposed owner can take over the ownership of the filter
      Parameters:
      serviceCtx - containing proposed owner
      request - the SearchRequest that you want to change ownership of
    • createFilter

      SearchRequest createFilter(JiraServiceContext serviceCtx, SearchRequest request)
      Persists a SearchRequest to the database.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the request to save
      Returns:
      the SearchRequest that was persisted to the database.
    • createFilter

      SearchRequest createFilter(JiraServiceContext serviceCtx, SearchRequest request, boolean isFavourite)
      Persists a SearchRequest to the database.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the request to save
      isFavourite - saves the SearchRequest as a favourite (or not)
      Returns:
      the SearchRequest that was persisted to the database.
    • updateFilter

      SearchRequest updateFilter(JiraServiceContext serviceCtx, SearchRequest request)
      Persists a SearchRequest to the database.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the request to update
      Returns:
      the SearchRequest that was persisted to the database.
    • updateFilter

      SearchRequest updateFilter(JiraServiceContext serviceCtx, SearchRequest request, boolean isFavourite)
      Persists a SearchRequest to the database.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the request to update
      isFavourite - saves the SearchRequest as a favourite (or not)
      Returns:
      the SearchRequest that was persisted to the database.
    • updateFilterOwner

      SearchRequest updateFilterOwner(JiraServiceContext serviceCtx, ApplicationUser user, SearchRequest request)
      Persists a SearchRequest to the database - only available to administrators.
      Parameters:
      serviceCtx - Context containing the new owner, error collection and i18n bean
      user - the user requesting the update, must have Permissions.ADMINISTER permissions
      request - the request to update
      Returns:
      the SearchRequest that was persisted to the database
    • updateFilterOwner

      @Nullable SearchRequest updateFilterOwner(JiraServiceContext serviceCtx, Long filterId, ApplicationUser newOwner)
      Changes the owner of the portal page. User performing this operation must be an administrator.

      You should call validateFilterForChangeOwner(JiraServiceContext, SearchRequest) prior to calling this method.

      Parameters:
      serviceCtx - the context of the service call
      filterId - the id of the filter to update
      newOwner - the new owner
      Returns:
      a newly updated SearchRequest, or null if user is not an admin
    • updateSearchParameters

      SearchRequest updateSearchParameters(JiraServiceContext serviceCtx, SearchRequest request)
      Persists changes to passed SearchRequest's search parameters and search sorts. Changes to the SearchRequest's other fields (name, description, share permissions, ...) are not saved. Any errors will be reported in the passed context.

      This method does not check the validity of the SearchRequest's share permissions when saving. This is to allow JIRA to save search parameter changes even when the SearchRequest's permissions are invalid.

      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      request - the request to update.
      Returns:
      the SearchRequest that was persisted to the database. May return null if an error occurs. The passed service context will have details of any errors.
    • validateForSearch

      void validateForSearch(JiraServiceContext serviceCtx, SharedEntitySearchParameters searchParameters)
      This will validate that the input parameters are valid for a search that encompasses ANY share entity type.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      searchParameters - the SharedEntitySearchParameters to validate
    • search

      SharedEntitySearchResult<SearchRequest> search(JiraServiceContext serviceCtx, SharedEntitySearchParameters searchParameters, int pagePosition, int pageWidth)
      Search for the SearchRequests that match the passed searchParameters. The result can be paged so that a subset of the results can be returned.
      Parameters:
      serviceCtx - Context containing user, error collection and i18n bean
      searchParameters - the searchParameters to query.
      pagePosition - the page to return.
      pageWidth - the number of results per page.
      Returns:
      the result of the search.
    • hasShareRights

      @ExperimentalApi boolean hasShareRights(@Nullable ApplicationUser user, @Nonnull SearchRequest searchRequest, @Nonnull ShareRight shareRight)
      Checks if provided user has share rights for given search request.
      Parameters:
      user - user which wants for example view or edit the entity
      searchRequest - search request which permissions and ownership are going to be checked
      shareRight - share rights which will be checked if user has it
      Returns:
      true in case provided user has specified rights for the search request, false otherwise
      Since:
      v7.12