Class: Mailosaur::Devices

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(conn, handle_http_error) ⇒ Devices

Creates and initializes a new instance of the Devices class.

Parameters:

  • client

    connection.



7
8
9
10
# File 'lib/Mailosaur/devices.rb', line 7

def initialize(conn, handle_http_error)
  @conn = conn
  @handle_http_error = handle_http_error
end

Instance Attribute Details

#connConnection (readonly)

Returns the client connection.

Returns:

  • (Connection)

    the client connection.



13
14
15
# File 'lib/Mailosaur/devices.rb', line 13

def conn
  @conn
end

Instance Method Details

#create(device_create_options) ⇒ Device

Create a device

Creates a new virtual security device and returns it.

Parameters:

  • device_create_options (DeviceCreateOptions)

Returns:

  • (Device)

    operation results.



38
39
40
41
42
43
# File 'lib/Mailosaur/devices.rb', line 38

def create(device_create_options)
  response = conn.post 'api/devices', device_create_options.to_json
  @handle_http_error.call(response) unless response.status == 200
  model = JSON.parse(response.body)
  Mailosaur::Models::Device.new(model)
end

#delete(id) ⇒ Object

Delete a device

Permanently deletes a device. This operation cannot be undone.

Parameters:

  • id (String)

    The identifier of the device to be deleted.



77
78
79
80
81
# File 'lib/Mailosaur/devices.rb', line 77

def delete(id)
  response = conn.delete "api/devices/#{id}"
  @handle_http_error.call(response) unless response.status == 204
  nil
end

#listDeviceListResult

List all devices

Returns a list of your virtual security devices.

Returns:

  • (DeviceListResult)

    operation results.



22
23
24
25
26
27
# File 'lib/Mailosaur/devices.rb', line 22

def list
  response = conn.get 'api/devices'
  @handle_http_error.call(response) unless response.status == 200
  model = JSON.parse(response.body)
  Mailosaur::Models::DeviceListResult.new(model)
end

#otp(query) ⇒ OtpResult

Retrieve OTP

Retrieves the current one-time password for a saved device, or given base32-encoded shared secret.

Parameters:

  • query (String)

    Either the unique identifier of the device, or a base32-encoded shared secret.

Returns:

  • (OtpResult)

    operation results.



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/Mailosaur/devices.rb', line 54

def otp(query)
  if query.include? '-'
    response = conn.get "api/devices/#{query}/otp"
    @handle_http_error.call(response) unless response.status == 200
    model = JSON.parse(response.body)
    return Mailosaur::Models::OtpResult.new(model)
  end

  options = Mailosaur::Models::DeviceCreateOptions.new
  options.shared_secret = query
  response = conn.post 'api/devices/otp', options.to_json
  @handle_http_error.call(response) unless response.status == 200
  model = JSON.parse(response.body)
  Mailosaur::Models::OtpResult.new(model)
end