Class: Square::Devices::Client

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

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Square::Devices::Client



7
8
9
# File 'lib/square/devices/client.rb', line 7

def initialize(client:)
  @client = client
end

Instance Method Details

#codesSquare::Codes::Client

Returns:

  • (Square::Codes::Client)


67
68
69
# File 'lib/square/devices/client.rb', line 67

def codes
  @codes ||= Square::Devices::Codes::Client.new(client: @client)
end

#get(request_options: {}, **params) ⇒ Square::Types::GetDeviceResponse

Retrieves Device with the associated ‘device_id`.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/square/devices/client.rb', line 46

def get(request_options: {}, **params)
  _request = Square::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
    method: "GET",
    path: "v2/devices/#{params[:device_id]}"
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Square::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Square::Types::GetDeviceResponse.load(_response.body)
  else
    error_class = Square::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end

#list(request_options: {}, **params) ⇒ Square::Types::ListDevicesResponse

List devices associated with the merchant. Currently, only Terminal API devices are supported.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/square/devices/client.rb', line 15

def list(request_options: {}, **params)
  _query_param_names = [
    %w[cursor sort_order limit location_id],
    %i[cursor sort_order limit location_id]
  ].flatten
  _query = params.slice(*_query_param_names)
  params.except(*_query_param_names)

  _request = Square::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Square::Environment::PRODUCTION,
    method: "GET",
    path: "v2/devices",
    query: _query
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Square::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Square::Types::ListDevicesResponse.load(_response.body)
  else
    error_class = Square::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end