module Adafruit::IO::Client::Permissions

Constants

VALID_TYPES

Public Instance Methods

create_permission(*args) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 28
def create_permission(*args)
  username, arguments = extract_username(args)

  assert_argument_size(arguments, 2)
  assert_resource_type(arguments[0])

  permission_attrs = arguments.pop
  post api_url(username, pluralize_type(arguments[0]), arguments[1], 'acl'), permission_attrs
end
delete_permission(*args) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 38
def delete_permission(*args)
  username, arguments = extract_username(args)

  assert_argument_size(arguments, 3)
  assert_resource_type(arguments[0])

  delete api_url(username, pluralize_type(arguments[0]), arguments[1], 'acl', arguments[2])
end
permission(*args) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 19
def permission(*args)
  username, arguments = extract_username(args)

  assert_argument_size(arguments, 3)
  assert_resource_type(arguments[0])

  get api_url(username, pluralize_type(arguments[0]), arguments[1], 'acl', arguments[2])
end
permissions(*args) click to toggle source

Get all permissions for a resource.

client.permissions(TYPE, KEY)
# File lib/adafruit/io/client/permissions.rb, line 10
def permissions(*args)
  username, arguments = extract_username(args)

  assert_argument_size(arguments, 2)
  assert_resource_type(arguments[0])

  get api_url(username, pluralize_type(arguments[0]), arguments[1], 'acl')
end

Private Instance Methods

assert_argument_size(arguments, size) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 55
def assert_argument_size(arguments, size)
  if size === 3
    if arguments.size < 3
      raise Adafruit::IO::Arguments::ArgumentError.new('permission requires resource type (string), key (string), and permission id (integer) values. valid types are feeds, groups, or dashboards')
    end
  elsif size == 2
    if arguments.size < size
      raise Adafruit::IO::Arguments::ArgumentError.new('permissions requires resource type (string) and resource key (string) values. valid types are feed, group, or dashboard')
    end
  end
end
assert_resource_type(resource_type) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 49
def assert_resource_type(resource_type)
  if !VALID_TYPES.include?(resource_type)
    raise Adafruit::IO::Arguments::ArgumentError.new('permission resource type must be one of: feed, group, or dashboard')
  end
end
pluralize_type(resource_type) click to toggle source
# File lib/adafruit/io/client/permissions.rb, line 67
def pluralize_type(resource_type)
  "#{resource_type}s"
end