lib/ahub/user.rb in ahub-0.1.8 vs lib/ahub/user.rb in ahub-0.1.12

- old
+ new

@@ -1,31 +1,42 @@ module Ahub class User extend Ahub::APIHelpers + include Ahub::ClassHelpers - def initialize(attrs) - end - - def self.find(id=nil) - url = "#{Ahub::DOMAIN}/services/v2/user" - url += "/#{id}" if id - url += '.json' - OpenStruct.new(JSON.parse(RestClient.get(url, admin_headers), symbolize_names:true)) - rescue => e - {error: e.message} - end - def self.create(username:, email:, password:nil) - url = "#{Ahub::DOMAIN}/services/v2/user" - data = { + url = "#{base_url}.json" + + payload = { email: email, username: username, password: password || Ahub::DEFAULT_PASSWORD, } - response = RestClient.post(url, data.to_json, admin_headers) - {error: nil, newUserURL: response.headers[:location]} + response = RestClient.post(url, payload.to_json, admin_headers) + find(object_id_from_response(response)) rescue => e - {error: e.message} + new({error: e.message}) + end + + def self.find_by_username(username) + matches = find_all(params: {q: username}) + matches.find{|user| user.username.downcase.strip == username.downcase.strip} + end + + attr_reader :username, :realname, :avatar_url, :post_count, :follow_count, :follower_count, :active, :suspended, :deactivated + def initialize(attrs) + @id = attrs[:id] + @error = attrs[:error] + + @username = attrs[:username] + @realname = attrs[:realname] + @avatar_url = attrs[:avatar] + @post_count = attrs[:postCount] + @follow_count = attrs[:followCount] + @follower_count = attrs[:followerCount] + @active = attrs[:active] + @suspended = attrs[:suspended] + @deactivated =attrs[:deactivated] end end end