class KakaxiParse::User

Attributes

email[RW]
password[RW]

Public Class Methods

name() click to toggle source
# File lib/kakaxi_parse/user.rb, line 23
def self.name
  '_User'
end
new( id: nil, name: nil, email: nil, password: nil, updated_at: nil, created_at: nil ) click to toggle source
Calls superclass method KakaxiParse::BaseModel::new
# File lib/kakaxi_parse/user.rb, line 6
def initialize(
      id: nil,
      name: nil,
      email: nil,
      password: nil,
      updated_at: nil,
      created_at: nil
      )
  @email = email
  @password = password
  super(id, name, updated_at, created_at)
end
reference_name() click to toggle source
# File lib/kakaxi_parse/user.rb, line 31
def self.reference_name
  'users'
end
short_name() click to toggle source
# File lib/kakaxi_parse/user.rb, line 27
def self.short_name
  'farmer'
end
where(hash, limit: DEFUALT_LIMIT) click to toggle source
Calls superclass method KakaxiParse::BaseModel::where
# File lib/kakaxi_parse/user.rb, line 19
def self.where(hash, limit: DEFUALT_LIMIT)
  to_objects(super(self, name_to_nickname(hash), limit, [], @@related_to)) if valid_key?(hash)
end

Private Class Methods

name_to_nickname(params) click to toggle source
# File lib/kakaxi_parse/user.rb, line 58
def self.name_to_nickname(params)
  replace_key(params, :name, :nickname)
end
to_objects(users) click to toggle source
# File lib/kakaxi_parse/user.rb, line 66
def self.to_objects(users)
  users.map do |user|
    new(
      id: user['objectId'],
      name: user['nickname'],
      email: user['email'],
      updated_at: user['updatedAt'],
      created_at: user['createdAt']
    )
  end
end
valid_key?(hash) click to toggle source
# File lib/kakaxi_parse/user.rb, line 62
def self.valid_key?(hash)
  hash.keys.all? { |key| %i(id name email password updated_at created_at role_id).include? key }
end

Public Instance Methods

farms() click to toggle source
# File lib/kakaxi_parse/user.rb, line 53
def farms
  Farm.where(farmer_id: id)
end
save() click to toggle source
Calls superclass method KakaxiParse::BaseModel#save
# File lib/kakaxi_parse/user.rb, line 39
def save
  id ? false : super(self, { nickname: name, email: email, password: password, username: email })
end
sign_in() click to toggle source
# File lib/kakaxi_parse/user.rb, line 35
def sign_in
  API.new('login', params: {username: email, password: password}).get
end
update(params) click to toggle source
Calls superclass method KakaxiParse::BaseModel#update
# File lib/kakaxi_parse/user.rb, line 43
def update(params)
  original_params = build_original_params(params)
  if super(self, User.name_to_nickname(params))
    original_params.each { |key, value| self.send("#{key}=", value) }
    true
  else
    false
  end
end