Class: Ahub::User

Inherits:
Object
  • Object
show all
Includes:
APIResource
Defined in:
lib/ahub/user.rb

Instance Attribute Summary

Attributes included from APIResource

#attributes

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIResource

#update

Constructor Details

#initialize(attrs) ⇒ User

Returns a new instance of User.



18
19
20
21
# File 'lib/ahub/user.rb', line 18

def initialize(attrs)
  super
  @groups = attrs[:groups].map{|group| Ahub::Group.new(group)} if attrs[:groups]
end

Class Method Details

.create(username:, email:, password:) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/ahub/user.rb', line 5

def self.create(username:, email:, password:)
  url = "#{base_url}.json"

  payload = {email: email, username: username, password: password}

  create_resource(url: url, payload: payload, headers: admin_headers)
end

.find_by_username(username) ⇒ Object



13
14
15
16
# File 'lib/ahub/user.rb', line 13

def self.find_by_username(username)
  matches = find_all(params: {q: username})
  matches.find{|user| user.username.downcase.strip == username.downcase.strip}
end

Instance Method Details

#answersObject



32
33
34
35
36
37
38
39
# File 'lib/ahub/user.rb', line 32

def answers
  unless @answers
    url = "#{self.class.base_url}/#{id}/answer.json"
    @answers = self.class.get_resources(url: url, headers: self.class.admin_headers, klass: Ahub::Answer)
  end

  @answers
end

#questionsObject



23
24
25
26
27
28
29
30
# File 'lib/ahub/user.rb', line 23

def questions
  unless @questions
    url = "#{self.class.base_url}/#{id}/question.json"
    @questions = self.class.get_resources(url: url, headers: self.class.admin_headers, klass: Ahub::Question)
  end

  @questions
end