-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcamel-routes.xml
More file actions
executable file
·129 lines (116 loc) · 5.49 KB
/
Copy pathcamel-routes.xml
File metadata and controls
executable file
·129 lines (116 loc) · 5.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?xml version="1.0" encoding="UTF-8"?>
<routes xmlns="http://camel.apache.org/schema/spring">
<!-- Trasa do odbierania wiadomości email przez IMAP -->
<route id="email-receiver">
<from uri="imaps://{{email.host}}:{{email.port}}?username={{email.username}}&password={{email.password}}&delete=false&unseen=true&delay=60000"/>
<log message="Odebrano nową wiadomość email: ${header.subject}"/>
<to uri="direct:process-email"/>
</route>
<!-- Trasa do przetwarzania wiadomości email -->
<route id="email-processor">
<from uri="direct:process-email"/>
<log message="Przetwarzanie wiadomości: ${header.subject}"/>
<!-- Wywołanie serwisu JavaScript do przetworzenia wiadomości -->
<to uri="javascript:resource:classpath:src/services/emailService.js?method=processEmail"/>
<choice>
<when>
<!-- Wywołanie serwisu JavaScript do sprawdzenia, czy wysłać automatyczną odpowiedź -->
<method ref="emailService" method="shouldAutoReply"/>
<to uri="direct:send-auto-reply"/>
</when>
<otherwise>
<log message="Brak automatycznej odpowiedzi dla wiadomości: ${header.subject}"/>
</otherwise>
</choice>
</route>
<!-- Trasa do wysyłania automatycznych odpowiedzi -->
<route id="email-auto-responder">
<from uri="direct:send-auto-reply"/>
<log message="Przygotowanie automatycznej odpowiedzi dla: ${header.from}"/>
<!-- Wywołanie serwisu JavaScript do generowania odpowiedzi -->
<to uri="javascript:resource:classpath:src/services/emailService.js?method=generateReply"/>
<setHeader name="subject">
<simple>Re: ${header.subject}</simple>
</setHeader>
<setHeader name="to">
<simple>${header.from}</simple>
</setHeader>
<setHeader name="from">
<simple>{{email.username}}</simple>
</setHeader>
<to uri="smtp://{{email.host}}:{{email.port}}?username={{email.username}}&password={{email.password}}&mail.smtp.auth=false&mail.smtp.starttls.enable=false"/>
<log message="Wysłano automatyczną odpowiedź do: ${header.to}"/>
</route>
<!-- Trasa do analizy wiadomości przez LLM -->
<route id="llm-analysis">
<from uri="direct:analyze-with-llm"/>
<log message="Analizowanie wiadomości przez LLM..."/>
<!-- Wywołanie serwisu JavaScript do analizy treści przez LLM -->
<to uri="javascript:resource:classpath:src/services/llmService.js?method=analyzeTone"/>
<log message="Analiza LLM zakończona"/>
</route>
<!-- Trasa REST API do ręcznego procesowania wiadomości email -->
<route id="rest-api">
<from uri="rest:post:/api/emails/process"/>
<log message="Otrzymano żądanie REST API do przetworzenia wiadomości"/>
<to uri="direct:process-email"/>
<marshal>
<json/>
</marshal>
</route>
<!-- Trasa do monitorowania statusu aplikacji -->
<route id="health-check">
<from uri="rest:get:/health"/>
<setBody>
<constant>{"status":"UP","timestamp":"${date:now:yyyy-MM-dd'T'HH:mm:ss.SSSZ}"}</constant>
</setBody>
<marshal>
<json/>
</marshal>
</route>
<!-- Trasa do cyklicznego sprawdzania konfiguracji -->
<route id="config-refresh">
<from uri="timer:config-refresh?period=60000"/>
<log message="Odświeżanie konfiguracji..."/>
<to uri="javascript:resource:classpath:src/utils/dbUtils.js?method=loadConfig"/>
</route>
<!-- Trasa do archiwizacji wiadomości email -->
<route id="email-archiver">
<from uri="direct:archive-email"/>
<log message="Archiwizacja wiadomości od: ${header.from}"/>
<to uri="javascript:resource:classpath:src/services/emailService.js?method=archiveEmail"/>
<log message="Wiadomość zarchiwizowana"/>
</route>
<!-- Trasa do generowania zaawansowanych odpowiedzi -->
<route id="advanced-reply-generator">
<from uri="direct:generate-advanced-reply"/>
<log message="Generowanie zaawansowanej odpowiedzi dla: ${header.from}"/>
<to uri="javascript:resource:classpath:src/services/advancedReplyService.js?method=generateReply"/>
<log message="Wygenerowano zaawansowaną odpowiedź"/>
</route>
<!-- Trasa do ładowania historii email -->
<route id="email-history-loader">
<from uri="direct:load-email-history"/>
<log message="Ładowanie historii komunikacji dla: ${header.email}"/>
<to uri="javascript:resource:classpath:src/services/advancedReplyService.js?method=getEmailHistory"/>
<log message="Historia komunikacji załadowana"/>
</route>
<!-- Trasa REST API do zarządzania szablonami -->
<route id="template-management">
<from uri="rest:get:/api/templates"/>
<log message="Pobieranie listy szablonów"/>
<to uri="bean:advancedReplyService?method=getTemplateList"/>
<marshal>
<json/>
</marshal>
</route>
<!-- Trasa REST API do pobierania pojedynczego szablonu -->
<route id="template-retrieval">
<from uri="rest:get:/api/templates/{key}"/>
<log message="Pobieranie szablonu: ${header.key}"/>
<to uri="bean:advancedReplyService?method=getTemplate(${header.key})"/>
<marshal>
<json/>
</marshal>
</route>
</routes>