Module: Legion::Extensions::MicrosoftTeams::Runners::Subscriptions
- Includes:
- Helpers::Lex, Helpers::Client
- Included in:
- Client
- Defined in:
- lib/legion/extensions/microsoft_teams/runners/subscriptions.rb
Instance Method Summary
collapse
-
#create_subscription(resource:, change_type:, notification_url:, expiration:, client_state: nil, include_resource_data: false) ⇒ Object
-
#delete_subscription(subscription_id:) ⇒ Object
-
#get_subscription(subscription_id:) ⇒ Object
-
#list_subscriptions ⇒ Object
-
#renew_subscription(subscription_id:, expiration:) ⇒ Object
-
#subscribe_to_channel_messages(team_id:, channel_id:, notification_url:, expiration:, client_state: nil) ⇒ Object
-
#subscribe_to_chat_messages(chat_id:, notification_url:, expiration:, client_state: nil) ⇒ Object
#bot_connection, #graph_connection, #oauth_connection, #user_path
Instance Method Details
#create_subscription(resource:, change_type:, notification_url:, expiration:, client_state: nil, include_resource_data: false) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 22
def create_subscription(resource:, change_type:, notification_url:, expiration:,
client_state: nil, include_resource_data: false, **)
payload = {
changeType: change_type,
notificationUrl: notification_url,
resource: resource,
expirationDateTime: expiration,
includeResourceData: include_resource_data
}
payload[:clientState] = client_state if client_state
response = graph_connection(**).post('subscriptions', payload)
{ result: response.body }
end
|
#delete_subscription(subscription_id:) ⇒ Object
42
43
44
45
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 42
def delete_subscription(subscription_id:, **)
response = graph_connection(**).delete("subscriptions/#{subscription_id}")
{ result: response.body }
end
|
#get_subscription(subscription_id:) ⇒ Object
17
18
19
20
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 17
def get_subscription(subscription_id:, **)
response = graph_connection(**).get("subscriptions/#{subscription_id}")
{ result: response.body }
end
|
#list_subscriptions ⇒ Object
12
13
14
15
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 12
def list_subscriptions(**)
response = graph_connection(**).get('subscriptions')
{ result: response.body }
end
|
#renew_subscription(subscription_id:, expiration:) ⇒ Object
36
37
38
39
40
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 36
def renew_subscription(subscription_id:, expiration:, **)
payload = { expirationDateTime: expiration }
response = graph_connection(**).patch("subscriptions/#{subscription_id}", payload)
{ result: response.body }
end
|
#subscribe_to_channel_messages(team_id:, channel_id:, notification_url:, expiration:, client_state: nil) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 58
def subscribe_to_channel_messages(team_id:, channel_id:, notification_url:, expiration:,
client_state: nil, **)
create_subscription(
resource: "/teams/#{team_id}/channels/#{channel_id}/messages",
change_type: 'created,updated',
notification_url: notification_url,
expiration: expiration,
client_state: client_state,
**
)
end
|
#subscribe_to_chat_messages(chat_id:, notification_url:, expiration:, client_state: nil) ⇒ Object
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/legion/extensions/microsoft_teams/runners/subscriptions.rb', line 47
def subscribe_to_chat_messages(chat_id:, notification_url:, expiration:, client_state: nil, **)
create_subscription(
resource: "/chats/#{chat_id}/messages",
change_type: 'created,updated',
notification_url: notification_url,
expiration: expiration,
client_state: client_state,
**
)
end
|