Class: SmsAeroApi::SmsAero

Inherits:
Object
  • Object
show all
Defined in:
lib/smsaero_api.rb

Constant Summary collapse

GATE_URLS =
[
  '@gate.smsaero.ru/v2/',
  '@gate.smsaero.org/v2/',
  '@gate.smsaero.net/v2/',
]
SIGNATURE =
'SMS Aero'
TYPE_SEND =
2

Instance Method Summary collapse

Constructor Details

#initialize(email, api_key, url_gate: nil, signature: SIGNATURE, type_send: TYPE_SEND) ⇒ SmsAero

Returns a new instance of SmsAero.



28
29
30
31
32
33
34
35
# File 'lib/smsaero_api.rb', line 28

def initialize(email, api_key, url_gate: nil, signature: SIGNATURE, type_send: TYPE_SEND)
  @session = Net::HTTP
  @uri = URI(url_gate || GATE_URLS.first)
  @email = email
  @api_key = api_key
  @signature = signature
  @type_send = type_send
end

Instance Method Details

#add_balance(_sum, card_id) ⇒ Object



101
102
103
# File 'lib/smsaero_api.rb', line 101

def add_balance(_sum, card_id)
  request('balance/add', { 'sum' => _sum, 'cardId' => card_id })
end

#authObject



93
94
95
# File 'lib/smsaero_api.rb', line 93

def auth
  request('auth')
end

#balanceObject



89
90
91
# File 'lib/smsaero_api.rb', line 89

def balance
  request('balance')
end

#blacklist_add(number) ⇒ Object



157
158
159
160
# File 'lib/smsaero_api.rb', line 157

def blacklist_add(number)
  num, number = get_num(number)
  request('blacklist/add', { num => number })
end

#blacklist_delete(blacklist_id) ⇒ Object



167
168
169
# File 'lib/smsaero_api.rb', line 167

def blacklist_delete(blacklist_id)
  request('blacklist/delete', { 'id' => blacklist_id.to_i })
end

#blacklist_list(number = nil, page = nil) ⇒ Object



162
163
164
165
# File 'lib/smsaero_api.rb', line 162

def blacklist_list(number = nil, page = nil)
  data = number && { 'number' => number.to_s }
  request('blacklist/list', data, page)
end

#cardsObject



97
98
99
# File 'lib/smsaero_api.rb', line 97

def cards
  request('cards')
end

#contact_add(number, group_id = nil, birthday = nil, sex = nil, lname = nil, fname = nil, sname = nil, param1 = nil, param2 = nil, param3 = nil) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/smsaero_api.rb', line 125

def contact_add(number, group_id = nil, birthday = nil, sex = nil, lname = nil, fname = nil, sname = nil, param1 = nil, param2 = nil, param3 = nil)
  request('contact/add', {
    'number' => number.to_s,
    'groupId' => group_id,
    'birthday' => birthday,
    'sex' => sex,
    'lname' => lname,
    'fname' => fname,
    'sname' => sname,
    'param1' => param1,
    'param2' => param2,
    'param3' => param3
  })
end

#contact_delete(contact_id) ⇒ Object



140
141
142
# File 'lib/smsaero_api.rb', line 140

def contact_delete(contact_id)
  request('contact/delete', { 'id' => contact_id })
end

#contact_list(number = nil, group_id = nil, birthday = nil, sex = nil, operator = nil, lname = nil, fname = nil, sname = nil, page = nil) ⇒ Object



144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/smsaero_api.rb', line 144

def contact_list(number = nil, group_id = nil, birthday = nil, sex = nil, operator = nil, lname = nil, fname = nil, sname = nil, page = nil)
  request('contact/list', {
    'number' => number && number.to_s,
    'groupId' => group_id,
    'birthday' => birthday,
    'sex' => sex,
    'operator' => operator,
    'lname' => lname,
    'fname' => fname,
    'sname' => sname
  }, page)
end

#group_add(name) ⇒ Object



113
114
115
# File 'lib/smsaero_api.rb', line 113

def group_add(name)
  request('group/add', { 'name' => name })
end

#group_delete(group_id) ⇒ Object



117
118
119
# File 'lib/smsaero_api.rb', line 117

def group_delete(group_id)
  request('group/delete', { 'id' => group_id })
end

#group_list(page = nil) ⇒ Object



121
122
123
# File 'lib/smsaero_api.rb', line 121

def group_list(page = nil)
  request('group/list', nil, page)
end

#hlr_check(number) ⇒ Object



171
172
173
174
# File 'lib/smsaero_api.rb', line 171

def hlr_check(number)
  num, number = get_num(number)
  request('hlr/check', { num => number })
end

#hlr_status(hlr_id) ⇒ Object



176
177
178
# File 'lib/smsaero_api.rb', line 176

def hlr_status(hlr_id)
  request('hlr/status', { 'id' => hlr_id.to_i })
end

#number_operator(number) ⇒ Object



180
181
182
183
# File 'lib/smsaero_api.rb', line 180

def number_operator(number)
  num, number = get_num(number)
  request('number/operator', { num => number })
end

#send(number, text, date_send = nil, callback_url = nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/smsaero_api.rb', line 37

def send(number, text, date_send = nil, callback_url = nil)
  num, number = get_num(number)
  data = {
    num => number,
    'sign' => @signature,
    'text' => text,
    'callbackUrl' => callback_url
  }

  if !date_send.nil?
    if date_send.is_a?(Time)
      data['dateSend'] = date_send.to_i
    else
      raise SmsAeroError, 'param `date` is not a Time object'
    end
  end

  request('sms/send', data)
end

#send_telegram(number, code, sign = nil, text = nil) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/smsaero_api.rb', line 61

def send_telegram(number, code, sign = nil, text = nil)
  num, number = get_num(number)
  data = {
    num => number,
    'code' => code.to_i
  }
  
  data['sign'] = sign if sign
  data['text'] = text if text
  
  request('telegram/send', data)
end

#sign_list(page = nil) ⇒ Object



109
110
111
# File 'lib/smsaero_api.rb', line 109

def sign_list(page = nil)
  request('sign/list', nil, page)
end

#sms_list(number = nil, text = nil, page = nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
# File 'lib/smsaero_api.rb', line 78

def sms_list(number = nil, text = nil, page = nil)
  data = {}
  if number
    data['number'] = number.to_s
  end
  if text
    data['text'] = text
  end
  request('sms/list', data, page)
end

#sms_status(sms_id) ⇒ Object



57
58
59
# File 'lib/smsaero_api.rb', line 57

def sms_status(sms_id)
  request('sms/status', { 'id' => sms_id })
end

#tariffsObject



105
106
107
# File 'lib/smsaero_api.rb', line 105

def tariffs
  request('tariffs')
end

#telegram_status(telegram_id) ⇒ Object



74
75
76
# File 'lib/smsaero_api.rb', line 74

def telegram_status(telegram_id)
  request('telegram/status', { 'id' => telegram_id.to_i })
end

#viber_list(page = nil) ⇒ Object



208
209
210
# File 'lib/smsaero_api.rb', line 208

def viber_list(page = nil)
  request('viber/list', nil, page)
end

#viber_send(sign, channel, text, number = nil, group_id = nil, image_source = nil, text_button = nil, link_button = nil, date_send = nil, sign_sms = nil, channel_sms = nil, text_sms = nil, price_sms = nil) ⇒ Object



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/smsaero_api.rb', line 185

def viber_send(sign, channel, text, number = nil, group_id = nil, image_source = nil, text_button = nil, link_button = nil, date_send = nil, sign_sms = nil, channel_sms = nil, text_sms = nil, price_sms = nil)
  num, number = get_num(number)
  request('viber/send', {
    num => number,
    'groupId' => group_id && group_id.to_i,
    'sign' => sign && sign.to_s,
    'channel' => channel && channel.to_s,
    'text' => text,
    'imageSource' => image_source,
    'textButton' => text_button,
    'linkButton' => link_button,
    'dateSend' => date_send,
    'signSms' => sign_sms,
    'channelSms' => channel_sms,
    'textSms' => text_sms,
    'priceSms' => price_sms
  })
end

#viber_sign_listObject



204
205
206
# File 'lib/smsaero_api.rb', line 204

def viber_sign_list
  request('viber/sign/list')
end