Class: Elibom::Client

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

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


9
10
11
12
13
14
15
16
# File 'lib/elibom/client.rb', line 9

def initialize(options={})
  @host = options[:host] || "https://www.elibom.com"
  @user = options[:user]
  @api_password = options[:api_password]

  raise ArgumentError, "Missing key ':user'" if @user.nil? || @user.empty?
  raise ArgumentError, "Missing key ':api_password'" if @api_password.nil? || @api_password.empty?
end

Instance Method Details

#cancel_schedule(schedule_id) ⇒ Object Also known as: unschedule

Raises:

  • (ArgumentError)


57
58
59
60
# File 'lib/elibom/client.rb', line 57

def cancel_schedule(schedule_id)
  raise ArgumentError, "'schedule_id' cannot be nil" if schedule_id.nil?
  delete "/schedules/#{schedule_id}"
end

#schedule_message(args = {}) ⇒ Object

Raises:

  • (ArgumentError)


28
29
30
31
32
33
34
35
36
37
38
# File 'lib/elibom/client.rb', line 28

def schedule_message(args={})
  raise ArgumentError, "No args provided" if args.nil?
  raise ArgumentError, "Missing key ':to'" if args[:to].nil?
  raise ArgumentError, "Missing key ':text'" if args[:text].nil?
  raise ArgumentError, "Invalid argument ':text'. Too long, max 160 characters" if args[:text].length > 160
  raise ArgumentError, "Missing key ':schedule_date'" if args[:schedule_date].nil?
  raise ArgumentError, "Invalid argument ':schedule_date'" unless args[:schedule_date].respond_to?('strftime')

  body = { "to" => args[:to], "text" => args[:text], "scheduleDate" => args[:schedule_date].strftime('%Y-%m-%d %H:%M') }
  post '/messages', body
end

#scheduled_messagesObject Also known as: list_scheduled_messages



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

def scheduled_messages
  get "/schedules/scheduled"
end

#send_message(args = {}) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
23
24
25
26
# File 'lib/elibom/client.rb', line 18

def send_message(args={})
  raise ArgumentError, "No args provided" if args.nil?
  raise ArgumentError, "Missing key ':to'" if args[:to].nil?
  raise ArgumentError, "Missing key ':text'" if args[:text].nil?
  raise ArgumentError, "Text is too long, max 160 characters" if args[:text].length > 160

  body = { "to" => args[:to], "text" => args[:text] }
  post '/messages', body
end

#show_accountObject Also known as: account



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

def 
  get '/account'
end

#show_delivery(delivery_id) ⇒ Object Also known as: delivery

Raises:

  • (ArgumentError)


40
41
42
43
# File 'lib/elibom/client.rb', line 40

def show_delivery(delivery_id)
  raise ArgumentError, "'delivery_id' cannot be nil or empty" if delivery_id.nil? || delivery_id.empty?
  get "/messages/#{delivery_id}"
end

#show_scheduled_message(schedule_id) ⇒ Object Also known as: scheduled_message

Raises:

  • (ArgumentError)


51
52
53
54
# File 'lib/elibom/client.rb', line 51

def show_scheduled_message(schedule_id)
  raise ArgumentError, "'schedule_id' cannot be nil" if schedule_id.nil?
  get "/schedules/#{schedule_id}"
end

#show_user(user_id) ⇒ Object Also known as: user

Raises:

  • (ArgumentError)


68
69
70
71
# File 'lib/elibom/client.rb', line 68

def show_user(user_id)
  raise ArgumentError, "'user_id' cannot be nil" if user_id.nil?
  get "/users/#{user_id}"
end

#usersObject Also known as: list_users



63
64
65
# File 'lib/elibom/client.rb', line 63

def users
  get "/users"
end