Interface CxSegmentService

All Known Implementing Classes:
DefaultCxSegmentService

public interface CxSegmentService
Service for operations on cxSegment models
  • Method Details

    • getSegment

      Optional<CxSegmentModel> getSegment(String code)
      Retrieves segment with given code
      Parameters:
      code - identifier of segment
      Returns:
      segment with given code of optional.empty if not found
    • getSegments

      SearchPageData<CxSegmentModel> getSegments(Map<String,String> filters, SearchPageData<?> pagination)
      Retrieves segments
      Parameters:
      filters - parameters for filtering
      pagination - holder of pagination data and sort options
      Returns:
      SearchPageData with result list, used pagination and sort options
    • getUsersFromSegment

      Collection<UserModel> getUsersFromSegment(CxSegmentModel segment)
      Retrieves all users related to this segment
      Parameters:
      segment - for which users should be retrieved
      Returns:
      Collection of users. Empty list if no users are related to this segment.
    • getSegmentsFromUser

      Collection<CxSegmentModel> getSegmentsFromUser(UserModel user)
      Retrieves all segments of given user.
      Parameters:
      user - for which segments should be retrieved
      Returns:
      Collection of segments. Empty list if no segments are related to given user.
    • getUserToSegmentForUser

      Collection<CxUserToSegmentModel> getUserToSegmentForUser(UserModel user)
      Retrieves all user to segments of given user.
      Parameters:
      user - for which segments should be retrieved
      Returns:
      Collection of segments. Empty list if no segments are related to given user.
    • getUserToSegmentForCalculation

      Collection<CxUserToSegmentModel> getUserToSegmentForCalculation(UserModel user)
      Retrieves user to segments of given user. This method check also user consent.
      Method will return empty list if consent was not given.
      Parameters:
      user - User for which segments should be retrieved
      Returns:
      Collection of segments. Empty list if no segments are related to given user or user didn't give consent.
    • saveUserToSegments

      void saveUserToSegments(Collection<CxUserToSegmentModel> userToSegments)
      Saves user to segment relations.
      Parameters:
      userToSegments - collection of CxUserToSegmentModel to be saved
    • removeUserToSegments

      void removeUserToSegments(Collection<CxUserToSegmentModel> userToSegments)
      Removes provided user to segment relations from model.
      Parameters:
      userToSegments - collection of CxUserToSegmentModel to be removed
    • getUserToSegmentModel

      SearchPageData<CxUserToSegmentModel> getUserToSegmentModel(UserModel user, CxSegmentModel segment, BaseSiteModel baseSite, SearchPageData<?> pagination)
      Retrieves relation object between user and segment. user and segment may be null. In such case this parameter is ignored and paginated collection of relations is returned.
      Parameters:
      user - defining one side of relation - may be null which means all users
      segment - defining other side of relation - may be null which means all segments
      baseSite - defining other side of relation - may be null which means all segments,users without assigned baseSite
      pagination - holder of pagination data and sort options
      Returns:
      collection of relation between given user and segment. Empty if no relation was found.
    • updateUserSegments

      void updateUserSegments(UserModel user)
      Updates segments for given user.
      Parameters:
      user - to be updated
    • updateUserSegments

      void updateUserSegments(UserModel user, CxCalculationContext context)
      Updates segments for given user.
      Parameters:
      user - to be updated
      context - Context containing additional parameters for update e.g. providers which should be considered with this update process.
      Since:
      1811
    • getSegmentsForCodes

      Collection<CxSegmentModel> getSegmentsForCodes(Collection<String> codes)
      Retrieves all segments of given user.
      Parameters:
      codes - list of identifiers of segments
      Returns:
      Collection of segments. Empty list if no segments are related to given user.
    • updateSegments

      void updateSegments(CxUpdateSegmentContext context)
      Update segments
      Parameters:
      context - - Context containing additional parameters for segment update e.g providers
      Since:
      1905