Interface SpaceService

All Known Implementing Classes:
SpaceServiceImpl

public interface SpaceService
Provides CRUD operations on Spaces.
Since:
5.5
  • Method Details

    • create

      Space create(Space newSpace, boolean isPrivate) throws ServiceException
      Create a new space.

      If the "isPrivate" flag is set to true the new space will only be visible to the creator.

      Minimum properties to be valid is a key and name.

      Parameters:
      newSpace - the space to create
      isPrivate - whether the space is private (true) or has default permissions (false)
      Returns:
      the space created
      Throws:
      ServiceException - if the space cannot be created
    • createPersonalSpaceForSelf

      Space createPersonalSpaceForSelf(PersonalSpaceDetailsForCreation spaceDetails) throws ServiceException
      Create a personal space for self.

      If the "isPrivate" flag is set to true the personal space will only be visible to the owner.

      Parameters:
      spaceDetails - Details of a Personal Space to be created
      Returns:
      the space created
      Throws:
      ServiceException - if the space cannot be created
      Since:
      9.3.0
    • createPersonalSpaceForUser

      Space createPersonalSpaceForUser(PersonalSpaceDetailsForCreation spaceDetails, String username) throws ServiceException
      Create a personal space for a user by username.

      If the "isPrivate" flag is set to true the personal space will only be visible to the owner.

      Parameters:
      spaceDetails - Details of a Personal Space to be created
      username - Username of the user to create personal space for
      Returns:
      the space created
      Throws:
      ServiceException - if the space cannot be created
      Since:
      9.3.0
    • update

      Space update(Space space) throws ServiceException
      Updates a space.

      Currently limited to changing the space name, description and homepage.

      Parameters:
      space - the updated Space
      Returns:
      the updated space after being persisted
      Throws:
      ServiceException
    • find

      SpaceService.SpaceFinder find(Expansion... expansion)
      Create a space finder to locate spaces, the expansions will be applied to each Space matching the restrictions on the finder. Restrictions can be applied to the finder using the appropriate withFoo() method

      For example:

       spaceService.find()
            .withKeys("DEV","PROD")
            .fetchMany(new SimplePageRequest(0, 10);
       
       
      Parameters:
      expansion - - the expansion to apply to each fetched space
      Returns:
      a new SpaceFinder
    • findAllContentLabelsPaginated

      @Deprecated PageResponse<Label> findAllContentLabelsPaginated(String spaceKey, PageRequest pageRequest)
      Returns a paginated list of all Labels used by Content within the given Space.
      Parameters:
      spaceKey - the key of the Space the User is attempting to search.
      pageRequest - the pagination parameters.
      Returns:
      Paginated list of labels.
      Since:
      8.9.0
    • findPopularContentLabelsPaginated

      @Deprecated PageResponse<Label> findPopularContentLabelsPaginated(String spaceKey, PageRequest pageRequest)
      Returns a paginated list of the most popular Labels used by Content within the given Space.
      Parameters:
      spaceKey - the key of the Space the User is attempting to search.
      pageRequest - the pagination parameters.
      Returns:
      Paginated list of labels.
      Since:
      8.9.0
    • findRecentContentLabelsPaginated

      @Deprecated PageResponse<Label> findRecentContentLabelsPaginated(String spaceKey, PageRequest pageRequest)
      Returns a paginated list of the most recent Labels used by Content within the given Space.
      Parameters:
      spaceKey - the key of the Space the User is attempting to search.
      pageRequest - the pagination parameters.
      Returns:
      Paginated list of labels.
      Since:
      8.9.0
    • findRelatedContentLabelsPaginated

      @Deprecated PageResponse<Label> findRelatedContentLabelsPaginated(String spaceKey, String labelName, PageRequest pageRequest)
      Returns a paginated list of related Labels used by Content within the given Space. A Label is defined as being related to another when it is found attached to the same Content as the Label specified in the request.
      Parameters:
      spaceKey - the key of the Space the User is attempting to search.
      labelName - the Label to match on.
      pageRequest - the pagination parameters.
      Returns:
      Paginated list of labels.
      Since:
      8.9.0
    • archive

      void archive(String spaceKey)
      Archives a space. If the space is already archived, this method does nothing.
      Parameters:
      spaceKey - the key of the space to archive
      Since:
      8.8.0
    • restore

      void restore(String spaceKey)
      Un-archives a space. If the space is already unarchived, this method does nothing.
      Parameters:
      spaceKey - the key of the space to restore
      Since:
      8.8.0
    • emptyTrash

      void emptyTrash(String spaceKey) throws ServiceException
      Purge all the trash in a given space.
      Parameters:
      spaceKey - the key of the space to empty trash
      Throws:
      ServiceException
      Since:
      9.2.5
    • findContent

      SpaceService.SpaceContentFinder findContent(Space space, Expansion... expansion) throws NotFoundException
      A finder to locate content in the space
      Returns:
      a finder
      Throws:
      NotFoundException - if the space does not exist or you do not have permission to view it
    • delete

      LongTaskSubmission delete(Space spaceToDelete) throws ServiceException
      Delete the given space.

      The deletion happens asynchronously so a LongTaskStatus is returned, that can be used to track progress.

      Parameters:
      spaceToDelete - the space to delete
      Returns:
      a LongTaskStatus describing the space-removal operation
      Throws:
      NotFoundException - if the space does not exist or you do not have permission to view it
      PermissionException - if you do not have permission to delete the space
      ServiceException
    • delete

      @ExperimentalApi void delete(long spaceId) throws ServiceException
      Deletes space. It removes space permissions and rename the space key, so the space key can be re-used immediately. Alter that, all remaining space content will be removed in background. Neither instance restart nor problems with the database will not prevent data deletion. It will not leave partial data in the database.
      Parameters:
      spaceId - space id
      Throws:
      NotFoundException - if the space does not exist or you do not have permission to view it
      PermissionException - if you do not have permission to delete the space
      ServiceException
      Since:
      9.1.0
    • deleteSynchronously

      @ExperimentalApi void deleteSynchronously(long spaceId) throws ServiceException
      Deletes space synchronously. It is NOT RECOMMENDED to use in production code, this method should be used in tests to remove space data quickly. Using regular space deletion is not recommended in tests because while one test is being running, data from the previous test could be still being deleted. It could be a source of flakiness. Instance restart will interrupt the process, so some space content can remain in the database.
      Parameters:
      spaceId - space id
      Throws:
      NotFoundException - if the space does not exist or you do not have permission to view it
      PermissionException - if you do not have permission to delete the space
      ServiceException
      Since:
      9.1.0
    • validator

      Get the validator view of the Space Service.