Class: MegalabsSms::Client

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

Overview

Класс для взаимодействия с API Megalabs для отправки SMS

Instance Method Summary collapse

Constructor Details

#initialize(api_user, api_password, sleep_time: 0, success_stub: false, error_stub: false) ⇒ Client

Конструктор, инициализирующий параметры клиента:

Parameters:

  • api_user (String)

    логин для Basic Auth

  • api_password (String)

    пароль для Basic Auth

  • sleep_time (Float) (defaults to: 0)

    время задержки в секундах (по умолчанию 0)

  • success_stub (Boolean) (defaults to: false)

    эмулировать успешную отправку?

  • error_stub (Boolean) (defaults to: false)

    эмулировать ошибку отправки?

Raises:

  • (ArgumentError)

    если api_user или api_password отсутствуют или пусты



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/megalabs_sms.rb', line 24

def initialize(api_user,
               api_password,
               sleep_time: 0,
               success_stub: false,
               error_stub: false)
  raise ArgumentError, 'api_user is required' if api_user.nil? || api_user.strip.empty?
  raise ArgumentError, 'api_password is required' if api_password.nil? || api_password.strip.empty?

  @api_user = api_user
  @api_password = api_password
  @sleep_time = sleep_time
  @success_stub = success_stub
  @error_stub = error_stub
end

Instance Method Details

#log_message(message) ⇒ String

Метод для форматирования сообщений логирования

Parameters:

  • message (String)

    исходное сообщение для логирования

Returns:

  • (String)

    отформатированное сообщение с префиксом модуля



46
47
48
# File 'lib/megalabs_sms.rb', line 46

def log_message(message)
  "[MegalabsSms] #{message}"
end

#send_sms(from, to, message) ⇒ String

Метод для отправки SMS через сервис Megalabs.

Parameters:

  • from (String)

    имя/номер отправителя

  • to (String)

    номер телефона получателя

  • message (String)

    текст сообщения

Returns:

  • (String)

    статус отправки или текст ошибки



59
60
61
62
63
64
# File 'lib/megalabs_sms.rb', line 59

def send_sms(from, to, message)
  return handle_stub_response if stub_enabled?

  request = build_request(from, to, message)
  send_request(request)
end