Sha256: 61e2d306cf11acaa283b6da957807e62bc95480d9edb95e45812ff50e1439206

Contents?: true

Size: 1.31 KB

Versions: 12

Compression:

Stored size: 1.31 KB

Contents

module Dailycred
  class User
    include ActiveModel::Validations
    include ActiveModel::Serialization

    validates_presence_of :email, :pass

    attr_accessor :client, :email, :pass, :authorized

    def initialize client, user = {}
      self.client = client
      self.authorized = false
      user.each do |k,v|
        self[k] = v if self.respond_to(k)
      end
    end

    def login
      if !self.valid?
        #it didn't work already, return false
        return false
      end

      response = JSON.parse client.login(self.to_hash)
      err_parser response

      return false if !self.valid?
      true
    end

    def to_hash
      {
        :email => self.email,
        :pass => self.pass
      }
    end

    private

    #response is a hash, which is
    #a json-parsed http response body
    def err_parser response
      if !response["worked"]
        self.authorized = false
        response["errors"].each do |err|
          attrib = err["attribute"]
          message = err["message"]
          if attrib == "form"
            self.errors.add_to_base message
          else
            if attrib == "user"
              self.errors.add :email, message
            elsif self.respond_to attrib
              self.errors.add attrib, message
            end
          end
        end
      end
    end

  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
dailycred-0.1.45 lib/dailycred/user.rb
dailycred-0.1.44 lib/dailycred/user.rb
dailycred-0.1.43 lib/dailycred/user.rb
dailycred-0.1.42 lib/dailycred/user.rb
dailycred-0.1.41 lib/dailycred/user.rb
dailycred-0.1.4 lib/dailycred/user.rb
dailycred-0.1.36 lib/dailycred/user.rb
dailycred-0.1.35 lib/dailycred/user.rb
dailycred-0.1.34 lib/dailycred/user.rb
dailycred-0.1.33 lib/dailycred/user.rb
dailycred-0.1.32 lib/dailycred/user.rb
dailycred-0.1.31 lib/dailycred/user.rb