Interface JpaPermissionRequestRepository
- All Superinterfaces:
AtPermissionRequestRepository,org.springframework.data.repository.PagingAndSortingRepository<EdaPermissionRequest,,Long> PermissionRequestRepository<AtPermissionRequest>,org.springframework.data.repository.Repository<EdaPermissionRequest,Long>
@Repository
@Transactional(readOnly=true)
public interface JpaPermissionRequestRepository
extends org.springframework.data.repository.PagingAndSortingRepository<EdaPermissionRequest,Long>, AtPermissionRequestRepository
-
Method Summary
Modifier and TypeMethodDescriptionfindAcceptedAndFulfilledByMeteringPointIdAndDate(String meteringPointId, LocalDate date) This method returns allPermissionProcessStatus.ACCEPTEDandPermissionProcessStatus.FULFILLEDpermission requests that are associated with the given metering point and where the date is between start and end of the permission requestfindByConsentId(String consentId) findByConversationIdAndMeteringPointId(String conversationId, String meteringPointId) Finds a permission request by its conversation id and metering point id.findByConversationIdOrCMRequestId(String conversationId, String cmRequestId) Finds permission requests by either conversation id or CMRequest id.findByMeteringPointIdAndDateAndStateSentToPAOrAfterAccepted(String meteringPointId, LocalDate date) findByOriginalConversationIdOrCMRequestId(String conversationId, String cmRequestId) Finds the consent request context recorded by validation, retaining the current permission status and consent.findByPermissionId(String permissionId) Finds a permission request by its permission id.findByStatusIn(Set<PermissionProcessStatus> status) Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAll, findAllMethods inherited from interface energy.eddie.api.agnostic.process.model.persistence.PermissionRequestRepository
getByPermissionId, save
-
Method Details
-
findByPermissionId
Description copied from interface:PermissionRequestRepositoryFinds a permission request by its permission id. If there is no permission request, it returns an empty optional.- Specified by:
findByPermissionIdin interfacePermissionRequestRepository<AtPermissionRequest>- Parameters:
permissionId- the id of the permission request.- Returns:
- an optional that contains the permission request if it exists.
-
findByOriginalConversationIdOrCMRequestId
@Query(value="WITH original_requests AS (\n SELECT DISTINCT ON (permission_id) permission_id, conversation_id, cm_request_id\n FROM at_eda.permission_event\n WHERE dtype = \'ValidatedEvent\'\n ORDER BY permission_id, id DESC\n)\nSELECT request.permission_id, request.connection_id,\n original.cm_request_id, original.conversation_id,\n request.created, request.data_need_id, request.dso_id, request.granularity,\n request.metering_point_id, request.permission_start, request.permission_end,\n request.cm_consent_id AS consent_id, request.message, request.status, request.cause,\n request.energy_direction, request.participation_factor\nFROM at_eda.eda_permission_request request\nJOIN original_requests original USING (permission_id)\nWHERE original.conversation_id = :conversationId OR original.cm_request_id = :cmRequestId\nORDER BY request.permission_id\n", nativeQuery=true) List<AtPermissionRequestProjection> findByOriginalConversationIdOrCMRequestId(@Param("conversationId") String conversationId, @Param("cmRequestId") @Nullable String cmRequestId) Description copied from interface:AtPermissionRequestRepositoryFinds the consent request context recorded by validation, retaining the current permission status and consent. Unlike the current conversation, the consent request conversation is not replaced by a termination conversation.- Specified by:
findByOriginalConversationIdOrCMRequestIdin interfaceAtPermissionRequestRepository
-
findByConversationIdOrCMRequestId
@Query(value="SELECT request.*, request.cm_consent_id AS consent_id\nFROM at_eda.eda_permission_request request\nWHERE request.permission_id IN (\n SELECT permission_id FROM at_eda.permission_event\n WHERE conversation_id = :conversationId OR cm_request_id = :cmRequestId\n)\nORDER BY request.permission_id\n", nativeQuery=true) List<AtPermissionRequestProjection> findByConversationIdOrCMRequestId(@Param("conversationId") String conversationId, @Param("cmRequestId") @Nullable String cmRequestId) Description copied from interface:AtPermissionRequestRepositoryFinds permission requests by either conversation id or CMRequest id. Might return multiple as receiving permission for multiple metering points create new permission request that share the conversation and CMRequest id.- Specified by:
findByConversationIdOrCMRequestIdin interfaceAtPermissionRequestRepository- Parameters:
conversationId- the conversation id of the request.cmRequestId- the request id of the original CM Request.- Returns:
- a List, which is empty if there is no matching permission request.
-
findByConversationIdAndMeteringPointId
@Query("SELECT pr FROM EdaPermissionRequest pr WHERE pr.conversationId = :conversationId AND pr.meteringPointId = :meteringPointId") Optional<AtPermissionRequest> findByConversationIdAndMeteringPointId(@Param("conversationId") String conversationId, @Param("meteringPointId") @Nullable String meteringPointId) Description copied from interface:AtPermissionRequestRepositoryFinds a permission request by its conversation id and metering point id.- Specified by:
findByConversationIdAndMeteringPointIdin interfaceAtPermissionRequestRepository- Parameters:
conversationId- the conversation id of the request.meteringPointId- the metering point id of the request.- Returns:
- an optional, which is empty if there is no matching permission request.
-
findAcceptedAndFulfilledByMeteringPointIdAndDate
@Query(value="SELECT request.*, request.cm_consent_id AS consent_id\nFROM at_eda.eda_permission_request request\nWHERE request.metering_point_id = :meteringPointId\n AND request.permission_start <= :date\n AND (request.permission_end >= :date OR request.permission_end IS NULL)\n AND request.status IN (\'ACCEPTED\', \'FULFILLED\')\n", nativeQuery=true) List<AtPermissionRequestProjection> findAcceptedAndFulfilledByMeteringPointIdAndDate(@Param("meteringPointId") String meteringPointId, @Param("date") LocalDate date) Description copied from interface:AtPermissionRequestRepositoryThis method returns allPermissionProcessStatus.ACCEPTEDandPermissionProcessStatus.FULFILLEDpermission requests that are associated with the given metering point and where the date is between start and end of the permission request- Specified by:
findAcceptedAndFulfilledByMeteringPointIdAndDatein interfaceAtPermissionRequestRepository- Parameters:
meteringPointId- for which to get permission requestsdate- to filter time relevant permission requests- Returns:
- a list of matching permission requests
-
findByConsentId
@Query(value="SELECT request.*, request.cm_consent_id AS consent_id\nFROM at_eda.eda_permission_request request\nWHERE request.cm_consent_id = :consentId\n", nativeQuery=true) Optional<AtPermissionRequestProjection> findByConsentId(@Param("consentId") String consentId) - Specified by:
findByConsentIdin interfaceAtPermissionRequestRepository
-
findByStatusIn
- Specified by:
findByStatusInin interfaceAtPermissionRequestRepository
-
findByMeteringPointIdAndDateAndStateSentToPAOrAfterAccepted
@Query(value="SELECT request.*, request.cm_consent_id AS consent_id\nFROM at_eda.eda_permission_request request\nWHERE request.metering_point_id = :meteringPointId\n AND request.permission_start <= :date\n AND (request.permission_end >= :date OR request.permission_end IS NULL)\n AND request.status IN (\'ACCEPTED\', \'FULFILLED\', \'SENT_TO_PERMISSION_ADMINISTRATOR\')\n", nativeQuery=true) List<AtPermissionRequestProjection> findByMeteringPointIdAndDateAndStateSentToPAOrAfterAccepted(String meteringPointId, LocalDate date)
-