Class: MpesaStk::IoT
Overview
IoT SIM management and messaging via Safaricom SIM portal API.
Constant Summary
Constants inherited
from Client
Client::AUTH_KEYS
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#delete_message(message_id) ⇒ Object
-
#delete_message_thread(msisdn) ⇒ Object
-
#filter_messages(start_date:, end_date:, status: '', page_no: 1, page_size: 10) ⇒ Object
-
#get_activation_trends(start_date:, stop_date:) ⇒ Object
-
#get_all_messages(page_no: 1, page_size: 10) ⇒ Object
-
#get_all_sims(start_at_index: 0, page_size: 10) ⇒ Object
-
#get_location_info(msisdn) ⇒ Object
-
#initialize(key: nil, secret: nil, api_key: nil, vpn_group: nil, username: nil, **options) ⇒ IoT
constructor
-
#query_customer_info(msisdn) ⇒ Object
-
#query_lifecycle_status(msisdn) ⇒ Object
-
#rename_asset(msisdn, asset_name) ⇒ Object
-
#search_messages(search_value, page_no: 1, page_size: 5) ⇒ Object
-
#send_single_message(msisdn, message) ⇒ Object
-
#sim_activation(msisdn) ⇒ Object
-
#suspend_unsuspend_sub(msisdn, product, operation) ⇒ Object
Methods inherited from Client
extract_auth_options, #json_headers, #option, #optional_option, #post, #random_reference, #stk_password, #stk_timestamp, #token
Constructor Details
#initialize(key: nil, secret: nil, api_key: nil, vpn_group: nil, username: nil, **options) ⇒ IoT
Returns a new instance of IoT.
28
29
30
31
32
33
|
# File 'lib/mpesa_stk/iot.rb', line 28
def initialize(key: nil, secret: nil, api_key: nil, vpn_group: nil, username: nil, **options)
super(key: key, secret: secret, **options)
@api_key = Config.env('iot_api_key', api_key) || 'Yl4S3KEcr173mbeUdYdjf147IuG3rJ824ArMkP6Z'
@vpn_group = Config.env('vpn_group', vpn_group) || ''
@username = Config.env('username', username) || ''
end
|
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
26
27
28
|
# File 'lib/mpesa_stk/iot.rb', line 26
def api_key
@api_key
end
|
#username ⇒ Object
Returns the value of attribute username.
26
27
28
|
# File 'lib/mpesa_stk/iot.rb', line 26
def username
@username
end
|
#vpn_group ⇒ Object
Returns the value of attribute vpn_group.
26
27
28
|
# File 'lib/mpesa_stk/iot.rb', line 26
def vpn_group
@vpn_group
end
|
Class Method Details
.call(action, *args, **options) ⇒ Object
10
11
12
|
# File 'lib/mpesa_stk/iot.rb', line 10
def call(action, *args, **options)
new(**options).public_send(action, *args)
end
|
.list_sims(**options) ⇒ Object
14
15
16
17
18
19
|
# File 'lib/mpesa_stk/iot.rb', line 14
def list_sims(**options)
new(**options).get_all_sims(
start_at_index: options.fetch(:start_at_index, 0),
page_size: options.fetch(:page_size, 10)
)
end
|
.send_message(msisdn, message, **options) ⇒ Object
21
22
23
|
# File 'lib/mpesa_stk/iot.rb', line 21
def send_message(msisdn, message, **options)
new(**options).send_single_message(msisdn, message)
end
|
Instance Method Details
#delete_message(message_id) ⇒ Object
119
120
121
|
# File 'lib/mpesa_stk/iot.rb', line 119
def delete_message(message_id)
post_request('/deletemessage', { id: message_id, vpnGroup: vpn_group, username: username })
end
|
#delete_message_thread(msisdn) ⇒ Object
123
124
125
|
# File 'lib/mpesa_stk/iot.rb', line 123
def delete_message_thread(msisdn)
post_request('/deleteMessageThread', { msisdn: msisdn, vpnGroup: vpn_group, username: username })
end
|
#filter_messages(start_date:, end_date:, status: '', page_no: 1, page_size: 10) ⇒ Object
100
101
102
103
104
105
106
107
108
|
# File 'lib/mpesa_stk/iot.rb', line 100
def filter_messages(start_date:, end_date:, status: '', page_no: 1, page_size: 10)
get_request("/filtermessages?pageNo=#{page_no}&pageSize=#{page_size}", {
startDate: start_date,
endDate: end_date,
status: status,
vpnGroup: vpn_group,
username: username
})
end
|
#get_activation_trends(start_date:, stop_date:) ⇒ Object
56
57
58
59
60
61
62
63
|
# File 'lib/mpesa_stk/iot.rb', line 56
def get_activation_trends(start_date:, stop_date:)
post_request('/getactivationtrends', {
vpnGroup: vpn_group,
startDate: start_date,
stopDate: stop_date,
username: username
})
end
|
#get_all_messages(page_no: 1, page_size: 10) ⇒ Object
88
89
90
|
# File 'lib/mpesa_stk/iot.rb', line 88
def get_all_messages(page_no: 1, page_size: 10)
get_request("/getallmessages?pageNo=#{page_no}&pageSize=#{page_size}", { vpnGroup: vpn_group })
end
|
#get_all_sims(start_at_index: 0, page_size: 10) ⇒ Object
35
36
37
38
39
40
41
42
|
# File 'lib/mpesa_stk/iot.rb', line 35
def get_all_sims(start_at_index: 0, page_size: 10)
post_request('/allsims', {
vpnGroup: [vpn_group],
startAtIndex: start_at_index.to_s,
pageSize: page_size.to_s,
username: username
})
end
|
#get_location_info(msisdn) ⇒ Object
74
75
76
|
# File 'lib/mpesa_stk/iot.rb', line 74
def get_location_info(msisdn)
post_request('/getlocationinfo', { msisdn: msisdn, vpnGroup: vpn_group, username: username })
end
|
#query_customer_info(msisdn) ⇒ Object
48
49
50
|
# File 'lib/mpesa_stk/iot.rb', line 48
def query_customer_info(msisdn)
post_request('/querycustomerinfo', { msisdn: msisdn, vpnGroup: vpn_group, username: username })
end
|
#query_lifecycle_status(msisdn) ⇒ Object
44
45
46
|
# File 'lib/mpesa_stk/iot.rb', line 44
def query_lifecycle_status(msisdn)
post_request('/queryLifeCycleStatus', { msisdn: msisdn, vpnGroup: vpn_group, username: username })
end
|
#rename_asset(msisdn, asset_name) ⇒ Object
65
66
67
68
69
70
71
72
|
# File 'lib/mpesa_stk/iot.rb', line 65
def rename_asset(msisdn, asset_name)
post_request('/renameasset', {
msisdn: msisdn,
vpnGroup: vpn_group,
username: username,
assetName: asset_name
})
end
|
#search_messages(search_value, page_no: 1, page_size: 5) ⇒ Object
92
93
94
95
96
97
98
|
# File 'lib/mpesa_stk/iot.rb', line 92
def search_messages(search_value, page_no: 1, page_size: 5)
get_request("/searchmessages?pageNo=#{page_no}&pageSize=#{page_size}", {
searchValue: search_value,
vpnGroup: vpn_group,
username: username
})
end
|
#send_single_message(msisdn, message) ⇒ Object
110
111
112
113
114
115
116
117
|
# File 'lib/mpesa_stk/iot.rb', line 110
def send_single_message(msisdn, message)
post_request('/sendsinglemessage', {
msisdn: msisdn,
message: message,
vpnGroup: vpn_group,
username: username
})
end
|
#sim_activation(msisdn) ⇒ Object
52
53
54
|
# File 'lib/mpesa_stk/iot.rb', line 52
def sim_activation(msisdn)
post_request('/simactivation', { msisdn: msisdn, vpnGroup: vpn_group, username: username })
end
|
#suspend_unsuspend_sub(msisdn, product, operation) ⇒ Object
78
79
80
81
82
83
84
85
86
|
# File 'lib/mpesa_stk/iot.rb', line 78
def suspend_unsuspend_sub(msisdn, product, operation)
post_request('/suspend_unsuspend_sub', {
msisdn: msisdn,
username: username,
vpnGroup: vpn_group,
product: product,
operation: operation
})
end
|