99import org .joda .time .DateTime ;
1010import org .springframework .stereotype .Component ;
1111
12+ import java .util .Map ;
13+
1214@ Component
1315public class AvniRwbUserNudgeRepository {
16+ private static final Logger logger = Logger .getLogger (AvniRwbUserNudgeRepository .class );
17+
18+ private static final Map <String , String > QUERY_TO_FLOW_ID = Map .of (
19+ "Work Order Registration" , "36875" ,
20+ "Nudge to register WO" , "36876" ,
21+ "Nudge to Login" , "36859" ,
22+ "Successful WO registration" , "36877" ,
23+ "Daily Recording" , "36878" ,
24+ "Nudge for Endline" , "36879" ,
25+ "Nudge for Work Order Endline" , "36880"
26+ );
27+
1428 private final AvniMessageRepository avniMessageRepository ;
1529 private final AvniQueryRepository avniQueryRepository ;
1630 private final RwbContextProvider rwbContextProvider ;
@@ -21,21 +35,39 @@ public AvniRwbUserNudgeRepository(AvniMessageRepository avniMessageRepository, A
2135 this .rwbContextProvider = rwbContextProvider ;
2236 }
2337
24- public SendMessageResponse sendMessage ( NudgeUserRequestDTO nudgeUserRequestDTO ) {
25- return avniMessageRepository . sendMessage ( createMessageRequestToNudgeUser ( nudgeUserRequestDTO )) ;
38+ public static Map < String , String > getQueryToFlowIdMap ( ) {
39+ return QUERY_TO_FLOW_ID ;
2640 }
2741
28- private ManualMessageContract createMessageRequestToNudgeUser (NudgeUserRequestDTO nudgeUserRequestDTO ) {
29- ManualMessageContract manualMessageContract = new ManualMessageContract ();
30- manualMessageContract .setReceiverId (nudgeUserRequestDTO .getUserId ());
31- manualMessageContract .setReceiverType (ReceiverType .User );
32- manualMessageContract .setMessageTemplateId (rwbContextProvider .get ().getMsgTemplateId ());
33- manualMessageContract .setParameters (new String []{
34- nudgeUserRequestDTO .getUserName (), nudgeUserRequestDTO .getSinceNoOfDays (), nudgeUserRequestDTO .getWithinNoOfDays ()});
35- manualMessageContract .setScheduledDateTime (new DateTime ()); //set current date time
36- return manualMessageContract ;
42+ public SendMessageResponse startFlow (NudgeUserRequestDTO dto , String flowId ) {
43+ logger .info (String .format ("Starting flow %s for user %s" , flowId , dto .getUserId ()));
44+ return avniMessageRepository .startFlowForContact (createFlowRequest (dto , flowId ));
3745 }
3846
47+ private StartFlowForContactRequest createFlowRequest (NudgeUserRequestDTO dto , String flowId ) {
48+ StartFlowForContactRequest request = new StartFlowForContactRequest ();
49+ request .setReceiverId (dto .getUserId ());
50+ request .setReceiverType (ReceiverType .User );
51+ request .setFlowId (flowId );
52+ request .setParameters (new String []{dto .getUserName ()});
53+ return request ;
54+ }
55+
56+ // public SendMessageResponse sendMessage(NudgeUserRequestDTO nudgeUserRequestDTO) {
57+ // return avniMessageRepository.sendMessage(createMessageRequestToNudgeUser(nudgeUserRequestDTO));
58+ // }
59+ //
60+ // private ManualMessageContract createMessageRequestToNudgeUser(NudgeUserRequestDTO nudgeUserRequestDTO) {
61+ // ManualMessageContract manualMessageContract = new ManualMessageContract();
62+ // manualMessageContract.setReceiverId(nudgeUserRequestDTO.getUserId());
63+ // manualMessageContract.setReceiverType(ReceiverType.User);
64+ // manualMessageContract.setMessageTemplateId(rwbContextProvider.get().getMsgTemplateId());
65+ // manualMessageContract.setParameters(new String[]{
66+ // nudgeUserRequestDTO.getUserName(), nudgeUserRequestDTO.getSinceNoOfDays(), nudgeUserRequestDTO.getWithinNoOfDays()});
67+ // manualMessageContract.setScheduledDateTime(new DateTime()); //set current date time
68+ // return manualMessageContract;
69+ // }
70+
3971 public CustomQueryResponse executeCustomQuery (CustomQueryRequest customQueryRequest ) {
4072 return avniQueryRepository .invokeCustomQuery (customQueryRequest );
4173 }
0 commit comments