Commit 209f860ada0f6edb690971849ed3c75ccad1ee70
1 parent
0ee70d95
New Reminder text and Droolslogic
Showing
9 changed files
with
290 additions
and
46 deletions
docker/rasa_nlu/volumes/data/api/intents/createReminder.json
@@ -26,10 +26,19 @@ | @@ -26,10 +26,19 @@ | ||
26 | }, | 26 | }, |
27 | { | 27 | { |
28 | "id": "b8be17f8-0174-401c-b5a4-fabacaf8cfd6", | 28 | "id": "b8be17f8-0174-401c-b5a4-fabacaf8cfd6", |
29 | + "required": false, | ||
29 | "dataType": "@eventDate", | 30 | "dataType": "@eventDate", |
30 | "name": "eventDate", | 31 | "name": "eventDate", |
31 | "value": "$eventDate", | 32 | "value": "$eventDate", |
32 | "isList": false | 33 | "isList": false |
34 | + }, | ||
35 | + { | ||
36 | + "id": "efe0fc3c-12c1-4596-b708-629f85eff4d4", | ||
37 | + "required": false, | ||
38 | + "dataType": "@sys.time", | ||
39 | + "name": "time", | ||
40 | + "value": "$time", | ||
41 | + "isList": false | ||
33 | } | 42 | } |
34 | ], | 43 | ], |
35 | "messages": [ | 44 | "messages": [ |
docker/rasa_nlu/volumes/data/api/intents/createReminder_usersays_de.json
1 | [ | 1 | [ |
2 | { | 2 | { |
3 | - "id": "048b511c-bfd1-4c84-bcaf-b0e5682ae312", | 3 | + "id": "67f7964a-dce7-4850-bc8d-1c54cc9322f9", |
4 | + "data": [ | ||
5 | + { | ||
6 | + "text": "Schicke mir ", | ||
7 | + "userDefined": false | ||
8 | + }, | ||
9 | + { | ||
10 | + "text": "täglich", | ||
11 | + "alias": "date", | ||
12 | + "meta": "@date", | ||
13 | + "userDefined": true | ||
14 | + }, | ||
15 | + { | ||
16 | + "text": " um ", | ||
17 | + "userDefined": false | ||
18 | + }, | ||
19 | + { | ||
20 | + "text": "9:15", | ||
21 | + "alias": "time", | ||
22 | + "meta": "@sys.time", | ||
23 | + "userDefined": true | ||
24 | + }, | ||
25 | + { | ||
26 | + "text": " den ", | ||
27 | + "userDefined": false | ||
28 | + }, | ||
29 | + { | ||
30 | + "text": "Mensaplan", | ||
31 | + "alias": "event", | ||
32 | + "meta": "@event", | ||
33 | + "userDefined": false | ||
34 | + } | ||
35 | + ], | ||
36 | + "isTemplate": false, | ||
37 | + "count": 0 | ||
38 | + }, | ||
39 | + { | ||
40 | + "id": "57817744-75c2-4506-9aa9-c4fe64c79cf7", | ||
41 | + "data": [ | ||
42 | + { | ||
43 | + "text": "Schick mir ", | ||
44 | + "userDefined": false | ||
45 | + }, | ||
46 | + { | ||
47 | + "text": "jeden Tag", | ||
48 | + "alias": "date", | ||
49 | + "meta": "@date", | ||
50 | + "userDefined": true | ||
51 | + }, | ||
52 | + { | ||
53 | + "text": " um ", | ||
54 | + "userDefined": false | ||
55 | + }, | ||
56 | + { | ||
57 | + "text": "10:30", | ||
58 | + "alias": "time", | ||
59 | + "meta": "@sys.time", | ||
60 | + "userDefined": true | ||
61 | + }, | ||
62 | + { | ||
63 | + "text": " was es in der ", | ||
64 | + "userDefined": false | ||
65 | + }, | ||
66 | + { | ||
67 | + "text": "Mensa", | ||
68 | + "alias": "event", | ||
69 | + "meta": "@event", | ||
70 | + "userDefined": true | ||
71 | + }, | ||
72 | + { | ||
73 | + "text": " gibt", | ||
74 | + "userDefined": false | ||
75 | + } | ||
76 | + ], | ||
77 | + "isTemplate": false, | ||
78 | + "count": 0 | ||
79 | + }, | ||
80 | + { | ||
81 | + "id": "dfb1541a-6488-46fc-9780-3e8c1e59a8d0", | ||
82 | + "data": [ | ||
83 | + { | ||
84 | + "text": "Schick mir ", | ||
85 | + "userDefined": false | ||
86 | + }, | ||
87 | + { | ||
88 | + "text": "jeden Tag", | ||
89 | + "alias": "date", | ||
90 | + "meta": "@date", | ||
91 | + "userDefined": true | ||
92 | + }, | ||
93 | + { | ||
94 | + "text": " um ", | ||
95 | + "userDefined": false | ||
96 | + }, | ||
97 | + { | ||
98 | + "text": "12", | ||
99 | + "alias": "time", | ||
100 | + "meta": "@sys.time", | ||
101 | + "userDefined": true | ||
102 | + }, | ||
103 | + { | ||
104 | + "text": " den ", | ||
105 | + "userDefined": false | ||
106 | + }, | ||
107 | + { | ||
108 | + "text": "Mensaplan", | ||
109 | + "alias": "event", | ||
110 | + "meta": "@event", | ||
111 | + "userDefined": true | ||
112 | + } | ||
113 | + ], | ||
114 | + "isTemplate": false, | ||
115 | + "count": 0 | ||
116 | + }, | ||
117 | + { | ||
118 | + "id": "cb34aa7b-a3d5-44bb-ae99-8517a3cd87a1", | ||
119 | + "data": [ | ||
120 | + { | ||
121 | + "text": "Sag mir ", | ||
122 | + "userDefined": false | ||
123 | + }, | ||
124 | + { | ||
125 | + "text": "morgen", | ||
126 | + "alias": "date", | ||
127 | + "meta": "@date", | ||
128 | + "userDefined": false | ||
129 | + }, | ||
130 | + { | ||
131 | + "text": " um ", | ||
132 | + "userDefined": false | ||
133 | + }, | ||
134 | + { | ||
135 | + "text": "10 Uhr", | ||
136 | + "alias": "time", | ||
137 | + "meta": "@sys.time", | ||
138 | + "userDefined": true | ||
139 | + }, | ||
140 | + { | ||
141 | + "text": " was es zu ", | ||
142 | + "userDefined": false | ||
143 | + }, | ||
144 | + { | ||
145 | + "text": "essen", | ||
146 | + "alias": "event", | ||
147 | + "meta": "@event", | ||
148 | + "userDefined": false | ||
149 | + }, | ||
150 | + { | ||
151 | + "text": " gibt", | ||
152 | + "userDefined": false | ||
153 | + } | ||
154 | + ], | ||
155 | + "isTemplate": false, | ||
156 | + "count": 0 | ||
157 | + }, | ||
158 | + { | ||
159 | + "id": "e57f06f3-b85b-430c-9f80-d5eea3add061", | ||
4 | "data": [ | 160 | "data": [ |
5 | { | 161 | { |
6 | "text": "Sag mir ", | 162 | "text": "Sag mir ", |
@@ -27,7 +183,7 @@ | @@ -27,7 +183,7 @@ | ||
27 | "count": 0 | 183 | "count": 0 |
28 | }, | 184 | }, |
29 | { | 185 | { |
30 | - "id": "3db29b3b-0dae-4960-b1b8-2472086f9ab2", | 186 | + "id": "66d04c31-2ae0-431d-a9fd-9f978280e255", |
31 | "data": [ | 187 | "data": [ |
32 | { | 188 | { |
33 | "text": "Sag mir ", | 189 | "text": "Sag mir ", |
@@ -58,7 +214,7 @@ | @@ -58,7 +214,7 @@ | ||
58 | "count": 0 | 214 | "count": 0 |
59 | }, | 215 | }, |
60 | { | 216 | { |
61 | - "id": "15128099-9cc8-4d75-b463-8a9c14cbbe71", | 217 | + "id": "6355f4ca-616b-4679-a97f-218d132c9548", |
62 | "data": [ | 218 | "data": [ |
63 | { | 219 | { |
64 | "text": "Erinner mich ", | 220 | "text": "Erinner mich ", |
@@ -85,7 +241,7 @@ | @@ -85,7 +241,7 @@ | ||
85 | "count": 0 | 241 | "count": 0 |
86 | }, | 242 | }, |
87 | { | 243 | { |
88 | - "id": "3ac087fd-5dec-4da0-892e-da5158942427", | 244 | + "id": "3bd103d7-59ae-4d78-85e2-7c18832eb2c9", |
89 | "data": [ | 245 | "data": [ |
90 | { | 246 | { |
91 | "text": "Schick mir ", | 247 | "text": "Schick mir ", |
@@ -112,7 +268,7 @@ | @@ -112,7 +268,7 @@ | ||
112 | "count": 0 | 268 | "count": 0 |
113 | }, | 269 | }, |
114 | { | 270 | { |
115 | - "id": "e3964a35-45c4-486e-9f0c-570ebbb65c41", | 271 | + "id": "be93cedf-afc5-4e2c-9a74-2e712bd2003b", |
116 | "data": [ | 272 | "data": [ |
117 | { | 273 | { |
118 | "text": "Schick mir ", | 274 | "text": "Schick mir ", |
@@ -139,7 +295,7 @@ | @@ -139,7 +295,7 @@ | ||
139 | "count": 0 | 295 | "count": 0 |
140 | }, | 296 | }, |
141 | { | 297 | { |
142 | - "id": "0c89a079-064f-4d8f-9aa5-93d0cd17d289", | 298 | + "id": "90359a1d-f4c6-4d0b-8c68-e0d533310bf2", |
143 | "data": [ | 299 | "data": [ |
144 | { | 300 | { |
145 | "text": "Erinnere mich ", | 301 | "text": "Erinnere mich ", |
@@ -166,7 +322,7 @@ | @@ -166,7 +322,7 @@ | ||
166 | "count": 0 | 322 | "count": 0 |
167 | }, | 323 | }, |
168 | { | 324 | { |
169 | - "id": "1f6e6f74-a322-4a2c-852b-5603b21cc197", | 325 | + "id": "c89bd8fc-05ac-4a83-805c-791bc34875d2", |
170 | "data": [ | 326 | "data": [ |
171 | { | 327 | { |
172 | "text": "Erinner mich ", | 328 | "text": "Erinner mich ", |
@@ -193,7 +349,7 @@ | @@ -193,7 +349,7 @@ | ||
193 | "count": 0 | 349 | "count": 0 |
194 | }, | 350 | }, |
195 | { | 351 | { |
196 | - "id": "8fddff73-5b7f-4323-8406-22278c29a921", | 352 | + "id": "506ac56c-af5d-417b-8f6d-4756a26f961e", |
197 | "data": [ | 353 | "data": [ |
198 | { | 354 | { |
199 | "text": "Ich möchte ", | 355 | "text": "Ich möchte ", |
@@ -224,7 +380,7 @@ | @@ -224,7 +380,7 @@ | ||
224 | "count": 0 | 380 | "count": 0 |
225 | }, | 381 | }, |
226 | { | 382 | { |
227 | - "id": "b986f29a-4e3f-4d5e-80ec-f8a24bf65682", | 383 | + "id": "3a1f5110-eca8-488f-86b7-6a2eb14af696", |
228 | "data": [ | 384 | "data": [ |
229 | { | 385 | { |
230 | "text": "Ich möchte ", | 386 | "text": "Ich möchte ", |
@@ -255,7 +411,7 @@ | @@ -255,7 +411,7 @@ | ||
255 | "count": 0 | 411 | "count": 0 |
256 | }, | 412 | }, |
257 | { | 413 | { |
258 | - "id": "283d3114-0f98-439b-97dc-4533acae7819", | 414 | + "id": "52aed8c1-f5d1-4ac5-b70e-713f4030d91a", |
259 | "data": [ | 415 | "data": [ |
260 | { | 416 | { |
261 | "text": "Ich möchte ", | 417 | "text": "Ich möchte ", |
@@ -296,7 +452,7 @@ | @@ -296,7 +452,7 @@ | ||
296 | "count": 0 | 452 | "count": 0 |
297 | }, | 453 | }, |
298 | { | 454 | { |
299 | - "id": "8cc39102-5715-4aab-a75b-dce15852daf0", | 455 | + "id": "9b459ffc-24ae-4abd-89ca-ee40555b7c79", |
300 | "data": [ | 456 | "data": [ |
301 | { | 457 | { |
302 | "text": "Ich möchte ", | 458 | "text": "Ich möchte ", |
@@ -337,7 +493,7 @@ | @@ -337,7 +493,7 @@ | ||
337 | "count": 0 | 493 | "count": 0 |
338 | }, | 494 | }, |
339 | { | 495 | { |
340 | - "id": "30cfae78-6f8a-4342-8510-df3668148c1b", | 496 | + "id": "e498660c-8e55-4847-b874-09789e622efe", |
341 | "data": [ | 497 | "data": [ |
342 | { | 498 | { |
343 | "text": "Ich will ", | 499 | "text": "Ich will ", |
@@ -378,7 +534,7 @@ | @@ -378,7 +534,7 @@ | ||
378 | "count": 0 | 534 | "count": 0 |
379 | }, | 535 | }, |
380 | { | 536 | { |
381 | - "id": "da87cf85-1e1d-473c-b2f8-d4783cb912a8", | 537 | + "id": "4c82899c-5dfe-4408-8554-e27da2c697d9", |
382 | "data": [ | 538 | "data": [ |
383 | { | 539 | { |
384 | "text": "Ich will ", | 540 | "text": "Ich will ", |
@@ -409,7 +565,7 @@ | @@ -409,7 +565,7 @@ | ||
409 | "count": 0 | 565 | "count": 0 |
410 | }, | 566 | }, |
411 | { | 567 | { |
412 | - "id": "e0205bbe-d5fd-456c-8da1-302e7e47090c", | 568 | + "id": "b25fbdf2-c155-43b1-a293-e88eae55e2f8", |
413 | "data": [ | 569 | "data": [ |
414 | { | 570 | { |
415 | "text": "Ich will ", | 571 | "text": "Ich will ", |
@@ -440,7 +596,7 @@ | @@ -440,7 +596,7 @@ | ||
440 | "count": 0 | 596 | "count": 0 |
441 | }, | 597 | }, |
442 | { | 598 | { |
443 | - "id": "3b09fc0e-cf73-4752-8510-1896b086fce0", | 599 | + "id": "0899dbf0-698c-4e34-a2b3-bc94d3de86ba", |
444 | "data": [ | 600 | "data": [ |
445 | { | 601 | { |
446 | "text": "Ich möchte ", | 602 | "text": "Ich möchte ", |
@@ -471,7 +627,7 @@ | @@ -471,7 +627,7 @@ | ||
471 | "count": 0 | 627 | "count": 0 |
472 | }, | 628 | }, |
473 | { | 629 | { |
474 | - "id": "66cbbf17-d8b3-4ed6-b619-cf73396cb99a", | 630 | + "id": "8b8db57f-ba18-4527-a639-d47fb47a3a4b", |
475 | "data": [ | 631 | "data": [ |
476 | { | 632 | { |
477 | "text": "Ich möchte ", | 633 | "text": "Ich möchte ", |
@@ -502,7 +658,7 @@ | @@ -502,7 +658,7 @@ | ||
502 | "count": 0 | 658 | "count": 0 |
503 | }, | 659 | }, |
504 | { | 660 | { |
505 | - "id": "0f080528-e477-4fbe-8e10-74c93b90b956", | 661 | + "id": "a5fa7401-96dc-4a5c-93c9-9a57fc45d567", |
506 | "data": [ | 662 | "data": [ |
507 | { | 663 | { |
508 | "text": "Ich möchte ", | 664 | "text": "Ich möchte ", |
@@ -533,7 +689,7 @@ | @@ -533,7 +689,7 @@ | ||
533 | "count": 0 | 689 | "count": 0 |
534 | }, | 690 | }, |
535 | { | 691 | { |
536 | - "id": "fa1ef3a4-6e89-4de9-b935-b5c483a2a528", | 692 | + "id": "a0c7e8cf-620f-47df-bf60-b7e217ec137e", |
537 | "data": [ | 693 | "data": [ |
538 | { | 694 | { |
539 | "text": "Erinnere mich jeden ", | 695 | "text": "Erinnere mich jeden ", |
@@ -560,7 +716,7 @@ | @@ -560,7 +716,7 @@ | ||
560 | "count": 0 | 716 | "count": 0 |
561 | }, | 717 | }, |
562 | { | 718 | { |
563 | - "id": "fe089fe4-6be1-4a66-b1f5-1b646faacc90", | 719 | + "id": "043ba90b-2cd0-4411-b7ae-2e48f407bbae", |
564 | "data": [ | 720 | "data": [ |
565 | { | 721 | { |
566 | "text": "Erinner mich ", | 722 | "text": "Erinner mich ", |
@@ -587,7 +743,7 @@ | @@ -587,7 +743,7 @@ | ||
587 | "count": 0 | 743 | "count": 0 |
588 | }, | 744 | }, |
589 | { | 745 | { |
590 | - "id": "786a4f45-8367-4442-bb67-ae585ae4a593", | 746 | + "id": "75c7a2e0-54ca-47b6-bf5c-661d45ffacb3", |
591 | "data": [ | 747 | "data": [ |
592 | { | 748 | { |
593 | "text": "Erinnere mich ", | 749 | "text": "Erinnere mich ", |
docker/wildfly/volumes/conf/beuthbot.properties
docu/attachmentstore.md
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | 10 | ||
11 | ## Description | 11 | ## Description |
12 | 12 | ||
13 | -The AttachmentStore represents a Service to persist Data in any variation. For example: an audio-file from a messenger need to be stored locally to be processed further. | 13 | +The AttachmentStore represents a Service to persist Data in any variation. For example: an audio-file from a _messenger need to be stored locally to be processed further. |
14 | 14 | ||
15 | ## Functionality | 15 | ## Functionality |
16 | 16 |
docu/facebook.md
@@ -27,7 +27,7 @@ | @@ -27,7 +27,7 @@ | ||
27 | 27 | ||
28 | ##### ii. Facebook App | 28 | ##### ii. Facebook App |
29 | 29 | ||
30 | -- after you created the app, add the 'messenger product' in the control panel on the left side | 30 | +- after you created the app, add the '_messenger product' in the control panel on the left side |
31 | - generate an messaging key for your Facebook page and store it under 'FACEBOOK_BOT_TOKEN' in the config.properties | 31 | - generate an messaging key for your Facebook page and store it under 'FACEBOOK_BOT_TOKEN' in the config.properties |
32 | - setup a webhook by using your webhook address (https://yourdomain.com/rest/facebook/getUpdates) and the identification key set in 'FACEBOOK_WEBHOOK_TOKEN' in the config.properties | 32 | - setup a webhook by using your webhook address (https://yourdomain.com/rest/facebook/getUpdates) and the identification key set in 'FACEBOOK_WEBHOOK_TOKEN' in the config.properties |
33 | - subscribe the webhook to your Facebook page | 33 | - subscribe the webhook to your Facebook page |
services/MainBot/src/main/java/de/bht/beuthbot/scheduler/SchedulerBean.java
@@ -15,6 +15,8 @@ import de.bht.beuthbot.conf.Configuration; | @@ -15,6 +15,8 @@ import de.bht.beuthbot.conf.Configuration; | ||
15 | import de.bht.beuthbot.jms.ProcessQueue; | 15 | import de.bht.beuthbot.jms.ProcessQueue; |
16 | import de.bht.beuthbot.jms.TaskMessage; | 16 | import de.bht.beuthbot.jms.TaskMessage; |
17 | 17 | ||
18 | +import java.text.ParseException; | ||
19 | +import java.text.SimpleDateFormat; | ||
18 | import java.util.*; | 20 | import java.util.*; |
19 | import javax.annotation.PostConstruct; | 21 | import javax.annotation.PostConstruct; |
20 | import javax.annotation.Resource; | 22 | import javax.annotation.Resource; |
@@ -48,7 +50,7 @@ public class SchedulerBean { | @@ -48,7 +50,7 @@ public class SchedulerBean { | ||
48 | //list of reminders to be populated with data from the DB | 50 | //list of reminders to be populated with data from the DB |
49 | private ArrayList<Reminder> _reminders = new ArrayList<>(); | 51 | private ArrayList<Reminder> _reminders = new ArrayList<>(); |
50 | 52 | ||
51 | - boolean isActive = false; | 53 | + boolean isActive = true; |
52 | 54 | ||
53 | public SchedulerBean() { | 55 | public SchedulerBean() { |
54 | 56 | ||
@@ -67,31 +69,78 @@ public class SchedulerBean { | @@ -67,31 +69,78 @@ public class SchedulerBean { | ||
67 | 69 | ||
68 | if (!isActive) return; | 70 | if (!isActive) return; |
69 | 71 | ||
70 | - Long messageID = 1L; | ||
71 | - Long senderID = 1L; //TODO: Fill with correct value from DB | ||
72 | - Messenger messenger = Messenger.TELEGRAM; //TODO: Fill with correct value from DB | ||
73 | - String text = ""; | ||
74 | - String intent = "remind"; | ||
75 | - Map entities = Collections.emptyMap(); | 72 | + SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy KK:mm"); |
73 | + String dateNow = formatter.format(new Date()); | ||
74 | + | ||
75 | + for (Reminder reminder : _reminders) { | ||
76 | + //Check if date time now equals reminder date time | ||
77 | + if(dateNow.equals(formatter.format(reminder.getCycleDate()))) { | ||
78 | + Long messageID = 1L; | ||
79 | + Long senderID = reminder.getUserID(); //TODO: Fill with correct value from DB | ||
80 | + Messenger messenger = reminder.getMessenger(); //TODO: Fill with correct value from DB | ||
81 | + String text = ""; | ||
82 | + String intent = "showFood"; | ||
83 | + Map entities = Collections.emptyMap(); | ||
84 | + try { | ||
85 | + TaskMessage message = new TaskMessage(1L, Target.MAINBOT, messageID, senderID, messenger, text, null, intent, entities); | ||
86 | + processQueue.route(new TaskMessage(message)); | ||
87 | + } catch (Exception e) { | ||
88 | + logger.error("Something went wrong while attempting to send reminder!", e); | ||
89 | + } | ||
90 | + } | ||
91 | + } | ||
92 | + } | ||
93 | + | ||
94 | + public String createReminder(TaskMessage message) { | ||
95 | + Long user = message.getSenderID(); | ||
96 | + ReminderCycle cycle = ReminderCycle.DAILY; | ||
97 | + Messenger messener = message.getMessenger(); | ||
98 | + String intent = message.getEntities().getOrDefault("event",""); | ||
99 | + Date date; | ||
76 | try { | 100 | try { |
77 | - TaskMessage message = new TaskMessage(1L, Target.MAINBOT, messageID, senderID, messenger, text, null, intent, entities); | ||
78 | - processQueue.route(new TaskMessage(message)); | 101 | + //Read out time for Reminder |
102 | + | ||
103 | + String messageTime = message.getEntities().getOrDefault("time",""); | ||
104 | + //time should not be empty | ||
105 | + if(!messageTime.equals("")) { | ||
106 | + //get Date new for day, month, year | ||
107 | + String dateNow = new SimpleDateFormat("dd.MM.yyyy").format(new Date()); | ||
108 | + //remove all chars from time String (e.g. "10 Uhr") | ||
109 | + String reminderTime = messageTime.replaceAll("[^0-9:]", ""); | ||
110 | + //trim spaces | ||
111 | + reminderTime = reminderTime.trim(); | ||
112 | + //check if given time is e.g. "11:15" | ||
113 | + if(reminderTime.contains(":")) { | ||
114 | + //split for hours and minutes | ||
115 | + String[] splittedTime = reminderTime.split(":"); | ||
116 | + //add hours and minutes to date | ||
117 | + if(splittedTime.length > 1) | ||
118 | + dateNow = dateNow + " " + splittedTime[0] + ":" + splittedTime[1]; | ||
119 | + } else { | ||
120 | + //add hours from time and set to "00" | ||
121 | + dateNow = dateNow + " " + reminderTime + ":" + "00"; | ||
122 | + } | ||
123 | + | ||
124 | + SimpleDateFormat f = new SimpleDateFormat("dd.MM.yyyy hh:mm"); | ||
125 | + Date d = f.parse(dateNow); | ||
126 | + long milliseconds = d.getTime(); | ||
127 | + date = new Date(milliseconds); | ||
128 | + | ||
129 | + } else | ||
130 | + date = new Date(); | ||
79 | 131 | ||
80 | } catch (Exception e) { | 132 | } catch (Exception e) { |
81 | - logger.error("Something went wrong while attempting to send reminder!", e); | 133 | + return "Fehler beim Anlegen der Erinnerung"; |
82 | } | 134 | } |
83 | 135 | ||
136 | + Reminder reminder = new Reminder(user, cycle, date, messener, intent); | ||
137 | + _reminders.add(reminder); | ||
84 | 138 | ||
139 | + return "Erinnerung erstellt:\n" + | ||
140 | + "Wann: um " + new SimpleDateFormat("KK:mm").format(reminder.getCycleDate()) + " Uhr\n" + | ||
141 | + "Was: " + reminder.getIntent(); | ||
85 | 142 | ||
86 | - | ||
87 | - } | ||
88 | - | ||
89 | - public boolean createReminder(TaskMessage message) { | ||
90 | - //Reminder newReminder = new Reminder(message.getSenderID()); //, reminderCycle, cycleDate); | ||
91 | //TODO: Insert the new Reminder into Database | 143 | //TODO: Insert the new Reminder into Database |
92 | - | ||
93 | - return true; | ||
94 | - | ||
95 | } | 144 | } |
96 | 145 | ||
97 | } | 146 | } |
services/MainBot/src/main/java/de/bht/beuthbot/scheduler/model/Reminder.java
1 | package de.bht.beuthbot.scheduler.model; | 1 | package de.bht.beuthbot.scheduler.model; |
2 | 2 | ||
3 | -import de.bht.beuthbot.scheduler.model.ReminderCycle; | 3 | +import de.bht.beuthbot.model.Messenger; |
4 | 4 | ||
5 | import java.util.Date; | 5 | import java.util.Date; |
6 | 6 | ||
@@ -11,11 +11,33 @@ public class Reminder { | @@ -11,11 +11,33 @@ public class Reminder { | ||
11 | private ReminderCycle _reminderCycle; | 11 | private ReminderCycle _reminderCycle; |
12 | //Date of Cycle | 12 | //Date of Cycle |
13 | private Date _cycleDate; | 13 | private Date _cycleDate; |
14 | + //Used Messenger | ||
15 | + private Messenger _messenger; | ||
16 | + //Intent after Reminder is triggered | ||
17 | + private String _intent; | ||
14 | 18 | ||
15 | - public Reminder(Long userID, ReminderCycle reminderCycle, Date cycleDate) { | 19 | + public Reminder(Long userID, ReminderCycle reminderCycle, Date cycleDate, Messenger messenger, String intent) { |
16 | _userID = userID; | 20 | _userID = userID; |
17 | _reminderCycle = reminderCycle; | 21 | _reminderCycle = reminderCycle; |
18 | _cycleDate = cycleDate; | 22 | _cycleDate = cycleDate; |
23 | + _messenger = messenger; | ||
24 | + _intent = intent; | ||
25 | + } | ||
26 | + | ||
27 | + public Messenger getMessenger() { | ||
28 | + return _messenger; | ||
29 | + } | ||
30 | + | ||
31 | + public void setMessenger(Messenger messenger) { | ||
32 | + _messenger = messenger; | ||
33 | + } | ||
34 | + | ||
35 | + public String getIntent() { | ||
36 | + return _intent; | ||
37 | + } | ||
38 | + | ||
39 | + public void setIntent(String intent) { | ||
40 | + _intent = intent; | ||
19 | } | 41 | } |
20 | 42 | ||
21 | public Long getUserID() { | 43 | public Long getUserID() { |
services/MainBot/src/main/resources/de/bht/beuthbot/drools/Canteen.drl
@@ -31,7 +31,13 @@ import de.bht.beuthbot.model.EntityName; | @@ -31,7 +31,13 @@ import de.bht.beuthbot.model.EntityName; | ||
31 | import de.bht.beuthbot.drools.model.DroolsMessage; | 31 | import de.bht.beuthbot.drools.model.DroolsMessage; |
32 | 32 | ||
33 | import de.bht.beuthbot.scheduler.SchedulerBean | 33 | import de.bht.beuthbot.scheduler.SchedulerBean |
34 | -import de.bht.beuthbot.jms.TaskMessage; | 34 | +import de.bht.beuthbot.jms.TaskMessage |
35 | +import de.bht.beuthbot.scheduler.model.ReminderCycle | ||
36 | +import java.util.Date | ||
37 | +import java.text.SimpleDateFormat | ||
38 | +import java.text.ParseException | ||
39 | +import de.bht.beuthbot.model.Messenger | ||
40 | +import de.bht.beuthbot.scheduler.model.Reminder; | ||
35 | 41 | ||
36 | global de.bht.beuthbot.canteen.model.CanteenData canteenData; | 42 | global de.bht.beuthbot.canteen.model.CanteenData canteenData; |
37 | 43 | ||
@@ -118,7 +124,9 @@ rule "Create reminder" | @@ -118,7 +124,9 @@ rule "Create reminder" | ||
118 | 124 | ||
119 | then | 125 | then |
120 | SchedulerBean s = new SchedulerBean(); | 126 | SchedulerBean s = new SchedulerBean(); |
121 | - if (s.createReminder(new TaskMessage(m)) == true) { m.setText("Ich werde dich erinnern!"); } | 127 | + TaskMessage message = new TaskMessage(m); |
128 | + String messageText = s.createReminder(message); | ||
129 | + m.setText(messageText); | ||
122 | 130 | ||
123 | end | 131 | end |
124 | 132 |
src/main/plantuml/model.puml
@@ -5,7 +5,7 @@ class Message { | @@ -5,7 +5,7 @@ class Message { | ||
5 | ID: Long | 5 | ID: Long |
6 | messageID: String | 6 | messageID: String |
7 | senderID: String | 7 | senderID: String |
8 | - messenger: Messenger | 8 | + _messenger: Messenger |
9 | text: String | 9 | text: String |
10 | attechments: Attachment[] | 10 | attechments: Attachment[] |
11 | } | 11 | } |