nbostech/wavelabs-client-api

View on GitHub
lib/wavelabs_client_api/client/api/data_models/login_api_model.rb

Summary

Maintainability
A
0 mins
Test Coverage
# This class is a virtual Model for LoginApiModel.
# It have required attributes to create the LoginApiModel object.
# And also it included the Rails ActiveModel::Validations to 
# add errors which will populate on views. Based on the response from
# Wavelabs API server 'add_errors' or 'add_messages' methods add appropriate
# messages to LoginApi model object.

class WavelabsClientApi::Client::Api::DataModels::LoginApiModel < WavelabsClientApi::Client::Api::DataModels::BaseApiModel

  attr_accessor :username, :password, :email, :firstName, :lastName, :phone, :newPassword, :message

  def initialize(login_params = nil)
    if login_params.present?
      @username = login_params["username"]
      @password = login_params["password"]
      @email = login_params["email"]
      @firstName = login_params["firstName"]
      @lastName = login_params["lastName"]
      @phone = login_params["phone"]
      @newPassword = login_params["newPassword"]
    end  
  end

  def add_errors(json_response)
    json_response["errors"].each do |e| 
      property_name = e['propertyName']
      msg = e['message']     
      self.errors[property_name] << msg
    end     
  end

  def add_messages(json_response)
    if json_response["message"].present?
      @message = json_response["message"]
    elsif json_response["error"].present?
      @message = json_response["error"]
    end  
          
  end    

end