@burgan-tech/morph-touch-runtime 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/burgan-tech-morph-touch-runtime-0.0.5.tgz +0 -0
- package/{touch → morph-touch}/Functions/check-livekit-room-access.1.0.0.json +2 -2
- package/{touch → morph-touch}/Functions/check-livekit-room-access.http +1 -1
- package/{touch → morph-touch}/Functions/get-absence-entry.1.0.0.json +2 -2
- package/{touch → morph-touch}/Functions/get-advisor-stats.1.0.0.json +2 -2
- package/morph-touch/Functions/get-available-slots.1.0.0.json +30 -0
- package/{touch → morph-touch}/Functions/get-available-slots.http +4 -2
- package/morph-touch/Functions/get-chat-rooms.1.0.0.json +28 -0
- package/{touch → morph-touch}/Functions/get-chat-rooms.http +2 -2
- package/{touch → morph-touch}/Functions/get-customer-info.1.0.0.json +2 -2
- package/{touch → morph-touch}/Functions/get-matrix-sync.1.0.0.json +2 -2
- package/morph-touch/Functions/get-rezervations.1.0.0.json +26 -0
- package/{touch → morph-touch}/Functions/get-rezervations.http +2 -2
- package/{touch → morph-touch}/Functions/get-room-messages.1.0.0.json +2 -2
- package/{touch → morph-touch}/Functions/get-room-messages.http +1 -1
- package/{touch → morph-touch}/Functions/rezervation-transfer.http +1 -1
- package/{touch → morph-touch}/Functions/send-room-message.1.0.0.json +2 -2
- package/{touch → morph-touch}/Functions/src/GetAvailableSlotsMapping.csx +125 -1
- package/{touch → morph-touch}/Functions/src/GetChatRoomsMapping.csx +6 -7
- package/{touch → morph-touch}/Functions/src/GetRezervationsMapping.csx +12 -5
- package/{touch → morph-touch}/Schemas/absence-entry.1.0.0.json +3 -3
- package/{touch → morph-touch}/Schemas/advisor-chat-rooms.1.0.0.json +2 -2
- package/{touch → morph-touch}/Schemas/chat-room.1.0.0.json +2 -2
- package/morph-touch/Schemas/chat-room.1.1.0.json +132 -0
- package/morph-touch/Schemas/chat-room.1.2.0.json +174 -0
- package/{touch → morph-touch}/Schemas/notification-sender.1.0.0.json +2 -2
- package/{touch → morph-touch}/Schemas/portfolio-manager.1.0.0.json +2 -2
- package/{touch → morph-touch}/Schemas/rezervation.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/cancel-absence-entry-for-rezervation.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/check-already-completed-chat-room.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/check-duplicate-portfolio-manager.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/check-duplicate-rezervation.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/check-existing-permanent-chat-room.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/check-randevu-time.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/create-permanent-chat-room.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/determine-transfer-type.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/enrich-rezervations-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/execute-permanent-chatroom-update.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/execute-rez-chatroom-transfer.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/execute-rezervation-transfer.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/fetch-absence-entries-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/fetch-advisors-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/fetch-permanent-chatrooms-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/fetch-rez-chatrooms-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/fetch-rezervations-for-transfer.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-absence-entry-task.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-available-slots-http.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/get-available-slots.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-chat-room-data-for-rezervation.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-chat-token.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/get-matrix-room-messages.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/get-matrix-sync.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/get-rezervation-data-task.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-rezervation-state-task.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-rezervations-task.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/get-user-info-for-rezervation.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/get-video-call-url.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/invite-user-to-rezervation-room.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/join-chat-room-for-rezervation.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/join-matrix-room.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/join-user-to-room.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/merge-invited-user.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/merge-rezervation-update.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/merge-target-advisor-for-transfer.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/merge-update-body-for-randevu-update.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/merge-video-call-urls.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/query-chat-room-instances.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/remove-member-from-room.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/send-matrix-room-message.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/send-push-notification.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/send-sms-notification.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/set-chat-room-status-active.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/set-chat-room-status-deactive.1.0.0.json +1 -1
- package/morph-touch/Tasks/set-matrix-room-history-visibility.1.0.0.json +26 -0
- package/{touch → morph-touch}/Tasks/set-previous-advisor.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/set-user-from-headers-for-rezervation.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/start-absence-entry-for-rezervation.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/start-chat-room-for-rezervation.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/start-notification-sender.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/start-permanent-chat-room.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/start-transfer-from-absence-entry.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/start-video-call.1.0.0.json +2 -2
- package/morph-touch/Tasks/summarize-chat-openai.1.0.0.json +27 -0
- package/morph-touch/Tasks/test-get-rezervation-count-by-advisor.1.0.0.json +22 -0
- package/morph-touch/Tasks/test-get-rezervation-instances-after-date.1.0.0.json +24 -0
- package/{touch → morph-touch}/Tasks/trigger-chat-room-deactivate.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-chat-room-transfer.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-chat-room-update.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-rezervation-add-invited-participant.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-rezervation-apply-update.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-rezervation-to-in-meet.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/trigger-rezervation-video-call-update.1.0.0.json +2 -2
- package/{touch → morph-touch}/Tasks/validate-date-for-rezervation.1.0.0.json +1 -1
- package/{touch → morph-touch}/Tasks/validate-slot-for-rezervation.1.0.0.json +3 -3
- package/{touch → morph-touch}/Tasks/validate-transfer-availability.1.0.0.json +3 -3
- package/{touch → morph-touch}/Workflows/absence-entry.http +21 -21
- package/{touch → morph-touch}/Workflows/absence-entry.json +3 -3
- package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.http +3 -3
- package/{touch → morph-touch}/Workflows/add-participant-to-rezervation.json +23 -24
- package/{touch → morph-touch}/Workflows/chat-room.http +10 -8
- package/{touch → morph-touch}/Workflows/chat-room.json +37 -24
- package/{touch → morph-touch}/Workflows/investment-advisor.json +2 -2
- package/{touch → morph-touch}/Workflows/notification-sender.http +13 -13
- package/{touch → morph-touch}/Workflows/notification-sender.json +5 -5
- package/{touch → morph-touch}/Workflows/portfolio-manager.json +2 -2
- package/{touch → morph-touch}/Workflows/randevu-update.http +6 -6
- package/{touch → morph-touch}/Workflows/rezervation-start.json +16 -16
- package/{touch → morph-touch}/Workflows/rezervation-transfer.json +125 -22
- package/{touch → morph-touch}/Workflows/rezervation-update.http +6 -6
- package/{touch → morph-touch}/Workflows/rezervation-update.json +19 -19
- package/{touch → morph-touch}/Workflows/rezervation.http +6 -6
- package/{touch → morph-touch}/Workflows/rezervation.json +121 -180
- package/{touch → morph-touch}/Workflows/src/CancelAbsenceEntryForRezervationMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/CancelAbsenceForRandevuUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/ChatRoomRemoveMapping.csx +22 -1
- package/{touch → morph-touch}/Workflows/src/ChatRoomTransferInviteMapping.csx +21 -0
- package/{touch → morph-touch}/Workflows/src/ChatRoomUpdateMapping.csx +21 -0
- package/{touch → morph-touch}/Workflows/src/CreateAbsenceEntryForRezervationMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/CreateAbsenceForRandevuUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
- package/{touch → morph-touch}/Workflows/src/CreatePermanentChatRoomMapping.csx +50 -9
- package/morph-touch/Workflows/src/DeactivatePermanentChatRoomFromTransferMapping.csx +133 -0
- package/{touch → morph-touch}/Workflows/src/EnrichRezervationsForTransferMapping.csx +16 -3
- package/{touch → morph-touch}/Workflows/src/ExecutePermanentChatRoomUpdateMapping.csx +23 -18
- package/{touch → morph-touch}/Workflows/src/ExecuteRezChatRoomTransferMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/ExecuteTransferMapping.csx +15 -12
- package/{touch → morph-touch}/Workflows/src/FetchAdvisorsForTransferMapping.csx +55 -7
- package/{touch → morph-touch}/Workflows/src/FetchPermanentChatRoomsMapping.csx +65 -2
- package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +182 -0
- package/{touch → morph-touch}/Workflows/src/GetChatRoomDataForRezervationMapping.csx +2 -2
- package/{touch → morph-touch}/Workflows/src/GetRezervationDataForAddParticipantMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/GetRezervationDataForRandevuUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/GetRezervationDataMapping.csx +2 -2
- package/{touch → morph-touch}/Workflows/src/GetRezervationStateForRandevuUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/GetRezervationStateMapping.csx +2 -2
- package/{touch → morph-touch}/Workflows/src/InvitedUserNotAllowedRule.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/JoinUserToRoomMapping.csx +22 -1
- package/morph-touch/Workflows/src/NoOpGetInstancesTestMapping.csx +19 -0
- package/morph-touch/Workflows/src/PermanentProcessNextTerminationRule.csx +51 -0
- package/{touch → morph-touch}/Workflows/src/SendPushNotificationMapping.csx +2 -2
- package/{touch → morph-touch}/Workflows/src/SendSmsNotificationMapping.csx +1 -1
- package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +178 -0
- package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +109 -0
- package/{touch → morph-touch}/Workflows/src/StartChatRoomForRezervationMapping.csx +4 -3
- package/{touch → morph-touch}/Workflows/src/StartGetChatTokenForRezervationMapping.csx +1 -1
- package/morph-touch/Workflows/src/StartNewPermanentChatRoomFromTransferMapping.csx +197 -0
- package/{touch → morph-touch}/Workflows/src/StartNotificationForAdvisorMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/StartNotificationForRezervationFromUserInfoMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/StartNotificationForUserMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/StartPermanentChatRoomMapping.csx +5 -2
- package/{touch → morph-touch}/Workflows/src/StartTransferFromAbsenceEntryMapping.csx +6 -14
- package/{touch → morph-touch}/Workflows/src/StateInMeetRule.csx +1 -1
- package/morph-touch/Workflows/src/SummarizeChatWithOpenAIMapping.csx +172 -0
- package/{touch → morph-touch}/Workflows/src/TriggerChatRoomDeactivateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/TriggerChatRoomTransferMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/TriggerChatRoomUpdateMapping.csx +3 -3
- package/{touch → morph-touch}/Workflows/src/TriggerRezervationAddInvitedParticipantMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/TriggerRezervationApplyUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/TriggerRezervationToInMeetMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/TriggerRezervationVideoCallUpdateMapping.csx +1 -1
- package/{touch → morph-touch}/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +29 -1
- package/{touch → morph-touch}/Workflows/src/ValidateSlotForRezervationMapping.csx +29 -1
- package/{touch → morph-touch}/Workflows/src/ValidateTransferMapping.csx +2 -2
- package/{touch → morph-touch}/Workflows/start-chat.json +6 -6
- package/{touch → morph-touch}/Workflows/start-video-call.http +3 -3
- package/{touch → morph-touch}/Workflows/start-video-call.json +4 -4
- package/package.json +1 -1
- package/vnext.config.json +7 -7
- package/burgan-tech-morph-touch-runtime-0.0.3.tgz +0 -0
- package/touch/Functions/get-available-slots.1.0.0.json +0 -30
- package/touch/Functions/get-chat-rooms.1.0.0.json +0 -28
- package/touch/Functions/get-rezervations.1.0.0.json +0 -26
- /package/{touch → morph-touch}/Extensions/.gitkeep +0 -0
- /package/{touch → morph-touch}/Functions/.gitkeep +0 -0
- /package/{touch → morph-touch}/Functions/src/CheckLivekitRoomAccessMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/GetAbsenceEntryMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/GetAdvisorStatsMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/GetCustomerInfoMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/GetMatrixSyncMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/GetRoomMessagesMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/SendCancelNotificationMapping.csx +0 -0
- /package/{touch → morph-touch}/Functions/src/SendRoomMessageMapping.csx +0 -0
- /package/{touch → morph-touch}/Schemas/.gitkeep +0 -0
- /package/{touch → morph-touch}/Tasks/.gitkeep +0 -0
- /package/{touch → morph-touch}/Views/.gitkeep +0 -0
- /package/{touch → morph-touch}/Workflows/.gitkeep +0 -0
- /package/{touch → morph-touch}/Workflows/src/AllChatRoomsSuccessRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/AlwaysTrueRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/AnyChatRoomFailedRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/AutoProcessRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/BuildRezChatRoomPlanMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CanStartRezervationTimerMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CanStartTransferMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedFailedRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/ChatRoomCreatedSuccessRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/ChatRoomTransferRemoveMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckAlreadyCompletedChatRoomMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckDuplicatePortfolioManagerMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckDuplicateRezervationMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckRandevuTimeMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CheckRezervationStateActiveOrInMeetRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/CustomerControlToEndRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/DetermineTransferTypeMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/FetchAbsenceEntriesForTransferMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/FetchRezervationsForTransferMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/GetChatTokenMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/GetUserInfoForRezervationMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/GetVideoCallUrlMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/HasChangedAdvisorRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/HasChatIntegrationRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/HasExistingPermanentRoomRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/InvitedUserMergeMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/InvitedUserNotInMeetRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/IsNotfSentRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/JoinChatRoomForRezervationMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/JoinMatrixRoomMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/LoginForAddParticipantChatMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/LoginForRandevuStartChatMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/MergeRezervationUpdateMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/MergeTargetAdvisorForTransferMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/MergeUpdateBodyForRandevuUpdateMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NoExistingPermanentRoomRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationCompleteAlwaysRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromPendingRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationCompleteFromSmsRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationPushFromPendingRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationPushFromSmsRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/NotificationSmsPendingRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/PermanentDoneRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/PermanentProcessNextRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/RezChatRoomProcessNextRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/RezChatRoomsDoneRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusActiveMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SetChatRoomStatusDeactiveMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SetPreviousAdvisorMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SetUserFromHeadersForRezervationMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SlotAvailableRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SlotUnavailableRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StartVideoCallCustomerSubFlowMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StartVideoCallForInvitedParticipantMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StartVideoCallForRandevuStartMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StartVideoCallStaffSubFlowMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StateActiveForUpdateRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StateActiveRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StateNotActiveForUpdateRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StateNotActiveOrInMeetRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StatusCustomerEnterRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/StatusStaffEnterRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/SyncWorkingHoursRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/TokenSuccessRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/TransferAllDoneRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/TransferHasInvalidRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/TransferProcessNextRule.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/ValidateDateForRezervationMapping.csx +0 -0
- /package/{touch → morph-touch}/Workflows/src/VideoCallUrlUpdateMergeMapping.csx +0 -0
|
@@ -26,10 +26,11 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
|
|
|
26
26
|
throw new InvalidOperationException("Instance data is required");
|
|
27
27
|
|
|
28
28
|
var advisorType = GetString(data, "advisorType");
|
|
29
|
+
advisorType = ResolveAdvisorWorkflowKey(advisorType, GetString(data, "sourceAdvisorId"));
|
|
29
30
|
if (string.IsNullOrEmpty(advisorType))
|
|
30
31
|
throw new ArgumentException("advisorType is required.", "advisorType");
|
|
31
32
|
|
|
32
|
-
serviceTask.SetMethodName($"api/v1/touch/workflows/{advisorType}/instances");
|
|
33
|
+
serviceTask.SetMethodName($"api/v1/morph-touch/workflows/{advisorType}/instances");
|
|
33
34
|
|
|
34
35
|
var conditions = new List<string>
|
|
35
36
|
{
|
|
@@ -67,8 +68,8 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
var advisorType = GetString(data, "advisorType");
|
|
70
|
-
|
|
71
|
-
var items =
|
|
71
|
+
advisorType = ResolveAdvisorWorkflowKey(advisorType, GetString(data, "sourceAdvisorId"));
|
|
72
|
+
var items = GetWorkflowInstanceItems(body);
|
|
72
73
|
|
|
73
74
|
var advisorKeys = new List<string>();
|
|
74
75
|
|
|
@@ -77,12 +78,12 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
|
|
|
77
78
|
foreach (var item in items)
|
|
78
79
|
{
|
|
79
80
|
if (item == null) continue;
|
|
80
|
-
var domain = GetString(item, "domain") ?? "touch";
|
|
81
|
-
var key =
|
|
81
|
+
var domain = GetString(item, "domain") ?? GetString(item, "Domain") ?? "morph-touch";
|
|
82
|
+
var key = GetInstanceItemKey(item);
|
|
82
83
|
if (!string.IsNullOrEmpty(key))
|
|
83
84
|
{
|
|
84
|
-
var fullKey = key.Contains(".") ? key : $"{
|
|
85
|
-
advisorKeys.Add(
|
|
85
|
+
//var fullKey = key.Contains(".") ? key : $"{key}";
|
|
86
|
+
advisorKeys.Add(key);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
}
|
|
@@ -114,6 +115,53 @@ public class FetchAdvisorsForTransferMapping : ScriptBase, IMapping
|
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
117
|
|
|
118
|
+
/// <summary>
|
|
119
|
+
/// Ensures we query the same advisor workflow as the source (IA vs PM), even if instance
|
|
120
|
+
/// data.advisorType was wrong or task default pointed at portfolio-manager only.
|
|
121
|
+
/// </summary>
|
|
122
|
+
/// <summary>
|
|
123
|
+
/// Runtime may return { data: { items } } or { data: { data: { items } } } (same as wealth-app extractItems).
|
|
124
|
+
/// </summary>
|
|
125
|
+
private static System.Collections.IEnumerable GetWorkflowInstanceItems(dynamic body)
|
|
126
|
+
{
|
|
127
|
+
if (body == null) return null;
|
|
128
|
+
try
|
|
129
|
+
{
|
|
130
|
+
dynamic responseData = body.data ?? body.Data;
|
|
131
|
+
if (responseData == null) return null;
|
|
132
|
+
var items = responseData.items ?? responseData.Items;
|
|
133
|
+
if (items != null) return items;
|
|
134
|
+
dynamic inner = responseData.data ?? responseData.Data;
|
|
135
|
+
if (inner != null)
|
|
136
|
+
{
|
|
137
|
+
items = inner.items ?? inner.Items;
|
|
138
|
+
if (items != null) return items;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch { }
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private string GetInstanceItemKey(dynamic item)
|
|
146
|
+
{
|
|
147
|
+
if (item == null) return null;
|
|
148
|
+
var key = GetString(item, "key");
|
|
149
|
+
if (!string.IsNullOrEmpty(key)) return key;
|
|
150
|
+
return GetString(item, "Key");
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
private static string ResolveAdvisorWorkflowKey(string advisorType, string sourceAdvisorId)
|
|
154
|
+
{
|
|
155
|
+
if (!string.IsNullOrEmpty(sourceAdvisorId))
|
|
156
|
+
{
|
|
157
|
+
if (sourceAdvisorId.IndexOf("investment-advisor", StringComparison.OrdinalIgnoreCase) >= 0)
|
|
158
|
+
return "investment-advisor";
|
|
159
|
+
if (sourceAdvisorId.IndexOf("portfolio-manager", StringComparison.OrdinalIgnoreCase) >= 0)
|
|
160
|
+
return "portfolio-manager";
|
|
161
|
+
}
|
|
162
|
+
return advisorType;
|
|
163
|
+
}
|
|
164
|
+
|
|
117
165
|
private string GetString(dynamic obj, string name)
|
|
118
166
|
{
|
|
119
167
|
if (obj == null) return null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
using System;
|
|
2
2
|
using System.Collections.Generic;
|
|
3
|
+
using System.Linq;
|
|
3
4
|
using System.Threading.Tasks;
|
|
4
5
|
using BBT.Workflow.Scripting;
|
|
5
6
|
using BBT.Workflow.Definitions;
|
|
@@ -34,7 +35,7 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
|
|
|
34
35
|
{
|
|
35
36
|
"{\"attributes\":{\"advisorId\":{\"eq\":\"" + escapedAdvisor + "\"}}}",
|
|
36
37
|
"{\"attributes\":{\"roomType\":{\"ne\":\"rezervation\"}}}",
|
|
37
|
-
"{\"
|
|
38
|
+
"{\"currentState\":{\"eq\":\"activated\"}}"
|
|
38
39
|
};
|
|
39
40
|
|
|
40
41
|
var filterJson = "{\"and\":[" + string.Join(",", filterParts) + "]}";
|
|
@@ -71,12 +72,17 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
|
|
|
71
72
|
if (attrs != null && HasProperty(attrs, "chatIntegration") && attrs.chatIntegration != null)
|
|
72
73
|
roomId = GetString(attrs.chatIntegration, "roomId");
|
|
73
74
|
|
|
75
|
+
var advisorTypeAttr = attrs != null ? GetString(attrs, "advisorType") : null;
|
|
76
|
+
var occupiedAdvisorIds = BuildOccupiedAdvisorIds(attrs);
|
|
77
|
+
|
|
74
78
|
permanentChatRooms.Add(new Dictionary<string, object>
|
|
75
79
|
{
|
|
76
80
|
["chatRoomKey"] = key,
|
|
77
81
|
["user"] = user,
|
|
78
82
|
["roomType"] = roomType,
|
|
79
|
-
["roomId"] = roomId
|
|
83
|
+
["roomId"] = roomId,
|
|
84
|
+
["advisorType"] = advisorTypeAttr,
|
|
85
|
+
["occupiedAdvisorIds"] = occupiedAdvisorIds
|
|
80
86
|
});
|
|
81
87
|
}
|
|
82
88
|
}
|
|
@@ -97,6 +103,63 @@ public class FetchPermanentChatRoomsMapping : ScriptBase, IMapping
|
|
|
97
103
|
return Task.FromResult(new ScriptResponse { Data = result });
|
|
98
104
|
}
|
|
99
105
|
|
|
106
|
+
/// <summary>Primary advisor, members array, and memberWithoutArray keys — for excluding already-in-room advisors from transfer pickers.</summary>
|
|
107
|
+
private List<string> BuildOccupiedAdvisorIds(dynamic attrs)
|
|
108
|
+
{
|
|
109
|
+
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
|
110
|
+
if (attrs == null)
|
|
111
|
+
return new List<string>();
|
|
112
|
+
|
|
113
|
+
var primary = GetString(attrs, "advisorId");
|
|
114
|
+
if (!string.IsNullOrWhiteSpace(primary))
|
|
115
|
+
set.Add(primary.Trim());
|
|
116
|
+
|
|
117
|
+
if (HasProperty(attrs, "members") && attrs.members != null)
|
|
118
|
+
{
|
|
119
|
+
foreach (var m in attrs.members)
|
|
120
|
+
{
|
|
121
|
+
var mid = GetString(m, "memberId");
|
|
122
|
+
if (string.IsNullOrWhiteSpace(mid))
|
|
123
|
+
mid = GetString(m, "advisorId");
|
|
124
|
+
if (!string.IsNullOrWhiteSpace(mid))
|
|
125
|
+
set.Add(mid.Trim());
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
AddKeysFromMemberWithoutArray(attrs, set);
|
|
130
|
+
|
|
131
|
+
return set.OrderBy(x => x, StringComparer.OrdinalIgnoreCase).ToList();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
private void AddKeysFromMemberWithoutArray(dynamic attrs, HashSet<string> set)
|
|
135
|
+
{
|
|
136
|
+
if (attrs == null || !HasProperty(attrs, "memberWithoutArray") || attrs.memberWithoutArray == null)
|
|
137
|
+
return;
|
|
138
|
+
try
|
|
139
|
+
{
|
|
140
|
+
var mwa = attrs.memberWithoutArray;
|
|
141
|
+
if (mwa is System.Collections.Generic.IDictionary<string, object> d)
|
|
142
|
+
{
|
|
143
|
+
foreach (var k in d.Keys)
|
|
144
|
+
{
|
|
145
|
+
if (!string.IsNullOrWhiteSpace(k))
|
|
146
|
+
set.Add(k.Trim());
|
|
147
|
+
}
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (mwa is System.Collections.IDictionary raw)
|
|
151
|
+
{
|
|
152
|
+
foreach (System.Collections.DictionaryEntry de in raw)
|
|
153
|
+
{
|
|
154
|
+
var k = de.Key?.ToString();
|
|
155
|
+
if (!string.IsNullOrWhiteSpace(k))
|
|
156
|
+
set.Add(k.Trim());
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch { }
|
|
161
|
+
}
|
|
162
|
+
|
|
100
163
|
private string GetString(dynamic obj, string name)
|
|
101
164
|
{
|
|
102
165
|
if (obj == null) return null;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
using System;
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.Linq;
|
|
4
|
+
using System.Threading.Tasks;
|
|
5
|
+
using BBT.Workflow.Scripting;
|
|
6
|
+
using BBT.Workflow.Definitions;
|
|
7
|
+
|
|
8
|
+
/// <summary>
|
|
9
|
+
/// Mapping for get-matrix-room-messages HttpTask (Type 6) in the termination transfer loop.
|
|
10
|
+
/// Reads roomId from permanentChatRooms (matched by chatRoomKey) and fetches the last 100 messages.
|
|
11
|
+
/// Stores formatted messages in lastRoomMessages for AI summarization.
|
|
12
|
+
/// </summary>
|
|
13
|
+
public class FetchRoomMessagesForSummaryMapping : ScriptBase, IMapping
|
|
14
|
+
{
|
|
15
|
+
public async Task<ScriptResponse> InputHandler(WorkflowTask task, ScriptContext context)
|
|
16
|
+
{
|
|
17
|
+
var httpTask = task as HttpTask;
|
|
18
|
+
if (httpTask == null)
|
|
19
|
+
throw new InvalidOperationException("Task must be an HttpTask");
|
|
20
|
+
|
|
21
|
+
var data = context.Instance?.Data;
|
|
22
|
+
if (data == null)
|
|
23
|
+
return new ScriptResponse { Data = new { skipped = true, reason = "no-instance-data" } };
|
|
24
|
+
|
|
25
|
+
var roomId = GetString(data, "lastDeactivatedRoomId");
|
|
26
|
+
if (string.IsNullOrWhiteSpace(roomId))
|
|
27
|
+
return new ScriptResponse { Data = new { skipped = true, reason = "no-roomId" } };
|
|
28
|
+
|
|
29
|
+
string user = null;
|
|
30
|
+
var permanentRoomPlan = data.permanentRoomPlan;
|
|
31
|
+
if (permanentRoomPlan != null)
|
|
32
|
+
{
|
|
33
|
+
int processedIndex = 0;
|
|
34
|
+
if (HasProperty(data, "permanentProcessedIndex"))
|
|
35
|
+
int.TryParse(data.permanentProcessedIndex?.ToString() ?? "0", out processedIndex);
|
|
36
|
+
|
|
37
|
+
var items = permanentRoomPlan as IEnumerable<object>;
|
|
38
|
+
if (items != null)
|
|
39
|
+
{
|
|
40
|
+
var itemsList = items.ToList();
|
|
41
|
+
if (processedIndex < itemsList.Count)
|
|
42
|
+
{
|
|
43
|
+
dynamic currentItem = itemsList[processedIndex];
|
|
44
|
+
var chatRoomKey = currentItem?.chatRoomKey?.ToString();
|
|
45
|
+
if (!string.IsNullOrEmpty(chatRoomKey))
|
|
46
|
+
user = LookupUser(data, chatRoomKey);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (string.IsNullOrWhiteSpace(user))
|
|
52
|
+
return new ScriptResponse { Data = new { skipped = true, reason = "no-user" } };
|
|
53
|
+
|
|
54
|
+
var matrixBaseUrl = await GetSecretAsync("vnext-secret", "workflow-secret", "MatrixBaseUrl");
|
|
55
|
+
if (string.IsNullOrWhiteSpace(matrixBaseUrl))
|
|
56
|
+
return new ScriptResponse { Data = new { skipped = true, reason = "no-MatrixBaseUrl" } };
|
|
57
|
+
|
|
58
|
+
var fullUrl = matrixBaseUrl.TrimEnd('/') +
|
|
59
|
+
"/_matrix/client/v3/rooms/" + Uri.EscapeDataString(roomId) +
|
|
60
|
+
"/messages?dir=b&limit=100";
|
|
61
|
+
|
|
62
|
+
httpTask.SetUrl(fullUrl);
|
|
63
|
+
httpTask.SetHeaders(new Dictionary<string, string>
|
|
64
|
+
{
|
|
65
|
+
["Accept"] = "application/json",
|
|
66
|
+
["X-Matrix-User"] = user
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
return new ScriptResponse();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public Task<ScriptResponse> OutputHandler(ScriptContext context)
|
|
73
|
+
{
|
|
74
|
+
var data = context.Instance?.Data;
|
|
75
|
+
var result = new Dictionary<string, object>();
|
|
76
|
+
CopyAllFields(result, data);
|
|
77
|
+
|
|
78
|
+
try
|
|
79
|
+
{
|
|
80
|
+
var response = context.Body;
|
|
81
|
+
var bodyData = response?.data;
|
|
82
|
+
|
|
83
|
+
string errcode = GetString(bodyData, "errcode");
|
|
84
|
+
if (!string.IsNullOrEmpty(errcode))
|
|
85
|
+
{
|
|
86
|
+
result["lastRoomMessages"] = new List<string>();
|
|
87
|
+
result["lastRoomMessagesSuccess"] = false;
|
|
88
|
+
return Task.FromResult(new ScriptResponse { Data = result });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var messages = new List<string>();
|
|
92
|
+
if (bodyData != null && HasProperty(bodyData, "chunk") && bodyData.chunk != null)
|
|
93
|
+
{
|
|
94
|
+
foreach (var evt in bodyData.chunk)
|
|
95
|
+
{
|
|
96
|
+
var evtType = GetString(evt, "type");
|
|
97
|
+
if (evtType != "m.room.message") continue;
|
|
98
|
+
|
|
99
|
+
var content = evt?.content;
|
|
100
|
+
if (content == null) continue;
|
|
101
|
+
|
|
102
|
+
string body = GetString(content, "body");
|
|
103
|
+
string sender = GetString(evt, "sender");
|
|
104
|
+
if (!string.IsNullOrWhiteSpace(body) && !string.IsNullOrWhiteSpace(sender))
|
|
105
|
+
messages.Add(sender + ": " + body);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
messages.Reverse();
|
|
110
|
+
result["lastRoomMessages"] = messages;
|
|
111
|
+
result["lastRoomMessagesSuccess"] = messages.Count > 0;
|
|
112
|
+
}
|
|
113
|
+
catch
|
|
114
|
+
{
|
|
115
|
+
result["lastRoomMessages"] = new List<string>();
|
|
116
|
+
result["lastRoomMessagesSuccess"] = false;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return Task.FromResult(new ScriptResponse { Data = result });
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private string LookupUser(dynamic data, string chatRoomKey)
|
|
123
|
+
{
|
|
124
|
+
if (!HasProperty(data, "permanentChatRooms") || data.permanentChatRooms == null)
|
|
125
|
+
return null;
|
|
126
|
+
|
|
127
|
+
foreach (var room in data.permanentChatRooms)
|
|
128
|
+
{
|
|
129
|
+
var key = GetString(room, "chatRoomKey");
|
|
130
|
+
if (string.Equals(key, chatRoomKey, StringComparison.OrdinalIgnoreCase))
|
|
131
|
+
return GetString(room, "user");
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
private string GetString(dynamic obj, string name)
|
|
137
|
+
{
|
|
138
|
+
if (obj == null) return null;
|
|
139
|
+
try
|
|
140
|
+
{
|
|
141
|
+
if (HasProperty(obj, name))
|
|
142
|
+
{
|
|
143
|
+
var v = GetPropertyValue(obj, name);
|
|
144
|
+
return v?.ToString()?.Trim();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch { }
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private void CopyAllFields(Dictionary<string, object> result, dynamic data)
|
|
152
|
+
{
|
|
153
|
+
CopyIfPresent(result, data, "transferPlan");
|
|
154
|
+
CopyIfPresent(result, data, "validationResult");
|
|
155
|
+
CopyIfPresent(result, data, "sourceAdvisorId");
|
|
156
|
+
CopyIfPresent(result, data, "advisorType");
|
|
157
|
+
CopyIfPresent(result, data, "startDate");
|
|
158
|
+
CopyIfPresent(result, data, "endDate");
|
|
159
|
+
CopyIfPresent(result, data, "transferType");
|
|
160
|
+
CopyIfPresent(result, data, "enrichedRezervations");
|
|
161
|
+
CopyIfPresent(result, data, "rezChatRoomPlan");
|
|
162
|
+
CopyIfPresent(result, data, "permanentRoomPlan");
|
|
163
|
+
CopyIfPresent(result, data, "permanentChatRooms");
|
|
164
|
+
CopyIfPresent(result, data, "permanentProcessedIndex");
|
|
165
|
+
CopyIfPresent(result, data, "lastPermanentDeactivateSuccess");
|
|
166
|
+
CopyIfPresent(result, data, "lastDeactivatedRoomId");
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private void CopyIfPresent(Dictionary<string, object> target, dynamic source, string name)
|
|
170
|
+
{
|
|
171
|
+
if (source == null) return;
|
|
172
|
+
try
|
|
173
|
+
{
|
|
174
|
+
if (HasProperty(source, name))
|
|
175
|
+
{
|
|
176
|
+
var v = GetPropertyValue(source, name);
|
|
177
|
+
if (v != null) target[name] = v;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch { }
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
|
|
|
6
6
|
|
|
7
7
|
/// <summary>
|
|
8
8
|
/// Mapping for get-chat-room-data-for-rezervation DaprServiceTask.
|
|
9
|
-
/// Calls api/v1/touch/workflows/chat-room/instances/{chatRoomInstanceKey}/functions/data
|
|
9
|
+
/// Calls api/v1/morph-touch/workflows/chat-room/instances/{chatRoomInstanceKey}/functions/data
|
|
10
10
|
/// to get chat-room instance data (e.g. chatIntegration). Merges chatIntegration into flow instance for trigger-rezervation-to-in-meet.
|
|
11
11
|
/// </summary>
|
|
12
12
|
public class GetChatRoomDataForRezervationMapping : ScriptBase, IMapping
|
|
@@ -26,7 +26,7 @@ public class GetChatRoomDataForRezervationMapping : ScriptBase, IMapping
|
|
|
26
26
|
if (string.IsNullOrWhiteSpace(chatRoomInstanceKey))
|
|
27
27
|
throw new InvalidOperationException("chatRoomInstanceKey is required (set by previous start-chat-room-for-rezervation task)");
|
|
28
28
|
|
|
29
|
-
var path = $"api/v1/touch/workflows/chat-room/instances/{Uri.EscapeDataString(chatRoomInstanceKey)}/functions/data";
|
|
29
|
+
var path = $"api/v1/morph-touch/workflows/chat-room/instances/{Uri.EscapeDataString(chatRoomInstanceKey)}/functions/data";
|
|
30
30
|
serviceTask.SetMethodName(path);
|
|
31
31
|
|
|
32
32
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -25,7 +25,7 @@ public class GetRezervationDataForAddParticipantMapping : ScriptBase, IMapping
|
|
|
25
25
|
if (string.IsNullOrWhiteSpace(randevuKey))
|
|
26
26
|
throw new InvalidOperationException("randevuKey is required");
|
|
27
27
|
|
|
28
|
-
var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
28
|
+
var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
29
29
|
serviceTask.SetMethodName(path);
|
|
30
30
|
|
|
31
31
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -24,7 +24,7 @@ public class GetRezervationDataForRandevuUpdateMapping : ScriptBase, IMapping
|
|
|
24
24
|
if (string.IsNullOrWhiteSpace(randevuKey))
|
|
25
25
|
throw new InvalidOperationException("randevuKey is required");
|
|
26
26
|
|
|
27
|
-
var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
27
|
+
var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
28
28
|
serviceTask.SetMethodName(path);
|
|
29
29
|
|
|
30
30
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
|
|
|
6
6
|
|
|
7
7
|
/// <summary>
|
|
8
8
|
/// Mapping for get-rezervation-data-task DaprServiceTask.
|
|
9
|
-
/// Calls api/v1/touch/workflows/rezervation/instances/{randevuKey}/functions/data
|
|
9
|
+
/// Calls api/v1/morph-touch/workflows/rezervation/instances/{randevuKey}/functions/data
|
|
10
10
|
/// to get user, advisor, startDateTime, chatIntegration. Merges into flow instance.
|
|
11
11
|
/// </summary>
|
|
12
12
|
public class GetRezervationDataMapping : ScriptBase, IMapping
|
|
@@ -26,7 +26,7 @@ public class GetRezervationDataMapping : ScriptBase, IMapping
|
|
|
26
26
|
if (string.IsNullOrWhiteSpace(randevuKey))
|
|
27
27
|
throw new InvalidOperationException("randevuKey is required");
|
|
28
28
|
|
|
29
|
-
var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
29
|
+
var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/data";
|
|
30
30
|
serviceTask.SetMethodName(path);
|
|
31
31
|
|
|
32
32
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -24,7 +24,7 @@ public class GetRezervationStateForRandevuUpdateMapping : ScriptBase, IMapping
|
|
|
24
24
|
if (string.IsNullOrWhiteSpace(randevuKey))
|
|
25
25
|
throw new InvalidOperationException("randevuKey is required");
|
|
26
26
|
|
|
27
|
-
var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
|
|
27
|
+
var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
|
|
28
28
|
serviceTask.SetMethodName(path);
|
|
29
29
|
|
|
30
30
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -6,7 +6,7 @@ using BBT.Workflow.Definitions;
|
|
|
6
6
|
|
|
7
7
|
/// <summary>
|
|
8
8
|
/// Mapping for get-rezervation-state-task DaprServiceTask.
|
|
9
|
-
/// Calls api/v1/touch/workflows/rezervation/instances/{randevuKey}/functions/state
|
|
9
|
+
/// Calls api/v1/morph-touch/workflows/rezervation/instances/{randevuKey}/functions/state
|
|
10
10
|
/// State response: { "state": "active", "status": "A", "transitions": [...], ... } - NO user, advisor, chatIntegration.
|
|
11
11
|
/// Output: state only. Use get-rezervation-data-task for user, advisor, startDateTime, chatIntegration.
|
|
12
12
|
/// </summary>
|
|
@@ -27,7 +27,7 @@ public class GetRezervationStateMapping : ScriptBase, IMapping
|
|
|
27
27
|
if (string.IsNullOrWhiteSpace(randevuKey))
|
|
28
28
|
throw new InvalidOperationException("randevuKey is required");
|
|
29
29
|
|
|
30
|
-
var path = $"api/v1/touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
|
|
30
|
+
var path = $"api/v1/morph-touch/workflows/rezervation/instances/{Uri.EscapeDataString(randevuKey)}/functions/state";
|
|
31
31
|
serviceTask.SetMethodName(path);
|
|
32
32
|
|
|
33
33
|
return Task.FromResult(new ScriptResponse());
|
|
@@ -36,7 +36,7 @@ public class InvitedUserNotAllowedRule : ScriptBase, IConditionMapping
|
|
|
36
36
|
if (!HasProperty(source, "invitedUser")) return new List<string>();
|
|
37
37
|
var arr = source.invitedUser;
|
|
38
38
|
if (arr == null) return new List<string>();
|
|
39
|
-
var list = arr as IEnumerable;
|
|
39
|
+
var list = arr as System.Collections.IEnumerable;
|
|
40
40
|
if (list == null || list is string) return new List<string>();
|
|
41
41
|
var result = new List<string>();
|
|
42
42
|
foreach (var item in list)
|
|
@@ -86,6 +86,8 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
|
|
|
86
86
|
var startDateTime = GetString(data, "startDateTime");
|
|
87
87
|
var endDateTime = GetString(data, "endDateTime");
|
|
88
88
|
|
|
89
|
+
var memberWithoutArray = BuildMemberWithoutArray(members);
|
|
90
|
+
|
|
89
91
|
result.Data = new
|
|
90
92
|
{
|
|
91
93
|
user,
|
|
@@ -95,7 +97,8 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
|
|
|
95
97
|
roomType,
|
|
96
98
|
startDateTime,
|
|
97
99
|
endDateTime,
|
|
98
|
-
members = members
|
|
100
|
+
members = members,
|
|
101
|
+
memberWithoutArray = memberWithoutArray
|
|
99
102
|
};
|
|
100
103
|
|
|
101
104
|
return Task.FromResult(result);
|
|
@@ -115,4 +118,22 @@ public class JoinUserToRoomMapping : ScriptBase, IMapping
|
|
|
115
118
|
catch { }
|
|
116
119
|
return null;
|
|
117
120
|
}
|
|
121
|
+
|
|
122
|
+
private static Dictionary<string, string> BuildMemberWithoutArray(IEnumerable<object> members)
|
|
123
|
+
{
|
|
124
|
+
var map = new Dictionary<string, string>();
|
|
125
|
+
if (members == null) return map;
|
|
126
|
+
foreach (dynamic m in members)
|
|
127
|
+
{
|
|
128
|
+
try
|
|
129
|
+
{
|
|
130
|
+
if (m == null) continue;
|
|
131
|
+
var mid = m.memberId?.ToString() ?? m.advisorId?.ToString();
|
|
132
|
+
if (string.IsNullOrWhiteSpace(mid)) continue;
|
|
133
|
+
map[mid] = m.role?.ToString() ?? "";
|
|
134
|
+
}
|
|
135
|
+
catch { }
|
|
136
|
+
}
|
|
137
|
+
return map;
|
|
138
|
+
}
|
|
118
139
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
using System.Threading.Tasks;
|
|
2
|
+
using BBT.Workflow.Scripting;
|
|
3
|
+
using BBT.Workflow.Definitions;
|
|
4
|
+
|
|
5
|
+
/// <summary>
|
|
6
|
+
/// No-op mapping for temporary GetInstances (type 15) test tasks on absence-entry start.
|
|
7
|
+
/// </summary>
|
|
8
|
+
public class NoOpGetInstancesTestMapping : ScriptBase, IMapping
|
|
9
|
+
{
|
|
10
|
+
public Task<ScriptResponse> InputHandler(WorkflowTask task, ScriptContext context)
|
|
11
|
+
{
|
|
12
|
+
return Task.FromResult(new ScriptResponse());
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public Task<ScriptResponse> OutputHandler(ScriptContext context)
|
|
16
|
+
{
|
|
17
|
+
return Task.FromResult(new ScriptResponse { Data = new { success = true, items = context.Body.data } });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
using System;
|
|
2
|
+
using System.Threading.Tasks;
|
|
3
|
+
using BBT.Workflow.Scripting;
|
|
4
|
+
|
|
5
|
+
/// <summary>
|
|
6
|
+
/// Condition for process-next-permanent-termination auto transition in updating-permanent-chatrooms state.
|
|
7
|
+
/// Rule: transferType == "termination" AND permanentProcessedIndex less than permanentRoomPlan.Count
|
|
8
|
+
/// </summary>
|
|
9
|
+
public class PermanentProcessNextTerminationRule : ScriptBase, IConditionMapping
|
|
10
|
+
{
|
|
11
|
+
public Task<bool> Handler(ScriptContext context)
|
|
12
|
+
{
|
|
13
|
+
try
|
|
14
|
+
{
|
|
15
|
+
if (context?.Instance?.Data == null)
|
|
16
|
+
return Task.FromResult(false);
|
|
17
|
+
|
|
18
|
+
var data = context.Instance.Data;
|
|
19
|
+
|
|
20
|
+
if (!HasProperty(data, "transferType") || data.transferType == null)
|
|
21
|
+
return Task.FromResult(false);
|
|
22
|
+
|
|
23
|
+
var transferType = data.transferType?.ToString()?.Trim();
|
|
24
|
+
if (!string.Equals(transferType, "termination", StringComparison.OrdinalIgnoreCase))
|
|
25
|
+
return Task.FromResult(false);
|
|
26
|
+
|
|
27
|
+
if (!HasProperty(data, "permanentRoomPlan") || data.permanentRoomPlan == null)
|
|
28
|
+
return Task.FromResult(false);
|
|
29
|
+
|
|
30
|
+
var plan = data.permanentRoomPlan as System.Collections.IEnumerable;
|
|
31
|
+
if (plan == null)
|
|
32
|
+
return Task.FromResult(false);
|
|
33
|
+
|
|
34
|
+
int totalCount = 0;
|
|
35
|
+
foreach (var item in plan) totalCount++;
|
|
36
|
+
|
|
37
|
+
if (totalCount == 0)
|
|
38
|
+
return Task.FromResult(false);
|
|
39
|
+
|
|
40
|
+
int processedIndex = 0;
|
|
41
|
+
if (HasProperty(data, "permanentProcessedIndex"))
|
|
42
|
+
int.TryParse(data.permanentProcessedIndex?.ToString() ?? "0", out processedIndex);
|
|
43
|
+
|
|
44
|
+
return Task.FromResult(processedIndex < totalCount);
|
|
45
|
+
}
|
|
46
|
+
catch (Exception)
|
|
47
|
+
{
|
|
48
|
+
return Task.FromResult(false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -74,12 +74,12 @@ public class SendPushNotificationMapping : ScriptBase, IMapping
|
|
|
74
74
|
content,
|
|
75
75
|
customerNo,
|
|
76
76
|
customParameters = (string)null,
|
|
77
|
-
tags = new string[] { "touch", "notification", "reservation" },
|
|
77
|
+
tags = new string[] { "morph-touch", "notification", "reservation" },
|
|
78
78
|
saveInbox = true,
|
|
79
79
|
notificationType = "push",
|
|
80
80
|
process = new
|
|
81
81
|
{
|
|
82
|
-
name = "touch",
|
|
82
|
+
name = "morph-touch",
|
|
83
83
|
itemId = reservationKey ?? "",
|
|
84
84
|
action = "notification-sender",
|
|
85
85
|
identity = "system"
|