Class: Mailosaur::Devices
- Inherits:
-
Object
- Object
- Mailosaur::Devices
- Defined in:
- lib/Mailosaur/devices.rb
Overview
Operations for managing virtual security devices and retrieving their current one-time passwords (OTPs), used to automate testing of app-based multi-factor authentication. Accessed via client.devices.
Instance Attribute Summary collapse
-
#conn ⇒ Connection
readonly
The client connection.
Instance Method Summary collapse
-
#create(device_create_options) ⇒ Mailosaur::Models::Device
Creates a new virtual security device.
-
#delete(id) ⇒ nil
Permanently delete a virtual security device.
-
#initialize(conn, handle_http_error) ⇒ Devices
constructor
Creates and initializes a new instance of the Devices class.
-
#list ⇒ Mailosaur::Models::DeviceListResult
Returns a list of your virtual security devices.
-
#otp(query) ⇒ Mailosaur::Models::OtpResult
Retrieves the current one-time password for a saved device, or given base32-encoded shared secret.
Constructor Details
#initialize(conn, handle_http_error) ⇒ Devices
Creates and initializes a new instance of the Devices class.
11 12 13 14 |
# File 'lib/Mailosaur/devices.rb', line 11 def initialize(conn, handle_http_error) @conn = conn @handle_http_error = handle_http_error end |
Instance Attribute Details
#conn ⇒ Connection (readonly)
Returns the client connection.
17 18 19 |
# File 'lib/Mailosaur/devices.rb', line 17 def conn @conn end |
Instance Method Details
#create(device_create_options) ⇒ Mailosaur::Models::Device
Creates a new virtual security device.
39 40 41 42 43 44 |
# File 'lib/Mailosaur/devices.rb', line 39 def create() response = conn.post 'api/devices', .to_json @handle_http_error.call(response) unless response.status == 200 model = JSON.parse(response.body) Mailosaur::Models::Device.new(model) end |
#delete(id) ⇒ nil
Permanently delete a virtual security device. This operation cannot be undone.
78 79 80 81 82 |
# File 'lib/Mailosaur/devices.rb', line 78 def delete(id) response = conn.delete "api/devices/#{id}" @handle_http_error.call(response) unless response.status == 204 nil end |
#list ⇒ Mailosaur::Models::DeviceListResult
Returns a list of your virtual security devices.
24 25 26 27 28 29 |
# File 'lib/Mailosaur/devices.rb', line 24 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) ⇒ Mailosaur::Models::OtpResult
Retrieves the current one-time password for a saved device, or given base32-encoded shared secret.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/Mailosaur/devices.rb', line 55 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 = Mailosaur::Models::DeviceCreateOptions.new .shared_secret = query response = conn.post 'api/devices/otp', .to_json @handle_http_error.call(response) unless response.status == 200 model = JSON.parse(response.body) Mailosaur::Models::OtpResult.new(model) end |