Class: Ahub::User

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIResource

#destroy, #update

Constructor Details

#initialize(attrs) ⇒ User

Returns a new instance of User.



22
23
24
25
# File 'lib/ahub/user.rb', line 22

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

Class Method Details

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



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

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

  payload = {
    email: email,
    username: username,
    password: password || Ahub::DEFAULT_PASSWORD,
  }

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

.find_by_username(username) ⇒ Object



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

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



36
37
38
39
40
41
42
43
# File 'lib/ahub/user.rb', line 36

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



27
28
29
30
31
32
33
34
# File 'lib/ahub/user.rb', line 27

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