Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-29146

As a developer, I want an API to manage bookmarks

    XMLWordPrintable

Details

    • [2.2] Sprint 6
    • 1

    Description

      Content item bookmarks is a feature that exists in eZ Publish but was never ported to new stack. The major thing that is missing is Public API to handle bookmarks.

      On the lowest level, for a Gateway implementation, in the DB schema, there's just a single table ezcontentbrowsebookmark which contains all the necessary columns.

      First important thing to know about that feature is that we actually bookmark a LocationId (node_id column in the DB schema) not a ContentId as related issues titles might suggest.

      In the AdminUI, implementation for Location View is therefore straightforward. For Content View on the other hand Main Location should be used.

      Required pieces:

      • Public API Service interface (BookmarkService)
      • Core implementation of BookmarkService
      • Persistence Handler (on SPI), including persistence cache
      • Gateway
      • API level: ValueObject containing list of Bookmarks for Locations
      • SPI level: Bookmark ValueObject

      BookmarkService should allow:

      • getting list of bookmarks
      • creating bookmark for Location (disallowing create when Location has already been bookmarked)
      • deleting bookmark for Location
      • checking if Location has been bookmarked

      BookmarkService should work in the context of current Repository (PermissionResolver) user.

      BookmarkService assumes the given Location ValueObject has been loaded by the current user, therefore current User has access to that Location.

      Attachments

        Activity

          People

            Unassigned Unassigned
            sylvain.guittard@ibexa.co Sylvain Guittard
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: