class Bodhi::User

Attributes

bodhi_context[RW]

Public Class Methods

find(context, user_name) click to toggle source

Queries the Bodhi API for the given user_name and returns a Bodhi::User

context = BodhiContext.new(valid_params)
user = Bodhi::User.find(context, "User1")
user # => #<Bodhi::User:0x007fbff403e808 @username="User1">
# File lib/bodhi-slam/users.rb, line 42
def self.find(context, user_name)
  if context.invalid?
    raise Bodhi::ContextErrors.new(context.errors.messages), context.errors.to_a.to_s
  end

  result = context.connection.get do |request|
    request.url "/#{context.namespace}/users/#{user_name}"
    request.headers[context.credentials_header] = context.credentials
  end

  if result.status != 200
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end

  user = Bodhi::User.new(result.body)
  user.bodhi_context = context
  user
end
find_me(context) click to toggle source

Queries the Bodhi API for the users account info

context = BodhiContext.new(valid_params)
user_properties = Bodhi::User.find_me(context)
# File lib/bodhi-slam/users.rb, line 65
def self.find_me(context)
  if context.invalid?
    raise Bodhi::ContextErrors.new(context.errors.messages), context.errors.to_a.to_s
  end

  result = context.connection.get do |request|
    request.url "/me"
    request.headers[context.credentials_header] = context.credentials
  end

  if result.status != 200
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end

  result.body
end

Public Instance Methods

delete!() click to toggle source
# File lib/bodhi-slam/users.rb, line 128
def delete!
  result = bodhi_context.connection.delete do |request|
    request.url "/#{bodhi_context.namespace}/users/#{username}"
    request.headers[bodhi_context.credentials_header] = bodhi_context.credentials
  end

  if result.status != 204
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end
end
patch!(options) click to toggle source
# File lib/bodhi-slam/users.rb, line 115
def patch!(options)
  result = bodhi_context.connection.patch do |request|
    request.url "/#{bodhi_context.namespace}/users/#{username}"
    request.headers['Content-Type'] = 'application/json'
    request.headers[bodhi_context.credentials_header] = bodhi_context.credentials
    request.body = options.to_json
  end

  if result.status != 204
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end
end
save!() click to toggle source

Saves the resource to the Bodhi Cloud. Raises ArgumentError if record could not be saved.

obj = Resouce.new
obj.save!
obj.persisted? # => true
# File lib/bodhi-slam/users.rb, line 87
def save!
  result = bodhi_context.connection.post do |request|
    request.url "/#{bodhi_context.namespace}/users"
    request.headers['Content-Type'] = 'application/json'
    request.headers[bodhi_context.credentials_header] = bodhi_context.credentials
    request.body = attributes.to_json
  end

  if result.status != 201
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end
end
update!(options) click to toggle source
# File lib/bodhi-slam/users.rb, line 100
def update!(options)
  update_attributes(options)

  result = bodhi_context.connection.put do |request|
    request.url "/#{bodhi_context.namespace}/users/#{username}"
    request.headers['Content-Type'] = 'application/json'
    request.headers[bodhi_context.credentials_header] = bodhi_context.credentials
    request.body = attributes.to_json
  end

  if result.status != 204
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end
end