-
Notifications
You must be signed in to change notification settings - Fork 2
/
events.py
90 lines (70 loc) · 2.46 KB
/
events.py
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
"""
Copyright 2022 SeaTalk Open Platform
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from enum import Enum
from typing import Union
from pydantic import BaseModel
class EventType(Enum):
"""
EventType definition of the Event Callback from Seatalk Open Platform.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
SINGLE_CHAT = "message_from_bot_subscriber"
NEW_SUBSCRIBER = "new_bot_subscriber"
VERIFICATION = "event_verification"
class Text(BaseModel):
"""
TextMessage definition.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
content: str
class ChatMessage(BaseModel):
"""
Message definition.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
tag: str
text: Text
class EventSingleChat(BaseModel):
"""
Event Definition of the Callback Event <message_from_bot_subscriber>.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
employee_code: str
message: ChatMessage
class EventNewSubscriber(BaseModel):
"""
Event Definition of the Callback Event <new_bot_subscriber>.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
employee_code: str
class EventURLVerification(BaseModel):
"""
Event Definition of the Callback Event <event_verification>.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
seatalk_challenge: str
class CallbackRequestBase(BaseModel):
"""
Common Fields of the Event Callback Request.
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
event_id: str
event_type: EventType
timestamp: int
app_id: str
class CallbackRequest(CallbackRequestBase):
"""
Event Callback Request definition
See details in https://open.seatalk.io/docs/messaging_messaging-events .
"""
event: Union[EventSingleChat, EventNewSubscriber, EventURLVerification]