nbostech/wavelabs-client-api

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

Summary

Maintainability
A
0 mins
Test Coverage
# This class is a virtual Model for SocialAccountsApiModel.
# It have required attributes to create the SocialAccountsApiModel 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 SocialAccountsApiModel object.

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

  attr_accessor :id, :email, :social_type, :image_url

  def initialize(social_params = nil)
    if social_params.present?
      @id = social_params["id"]
      @email = social_params["email"]
      @social_type = social_params["socialType"]
      @image_url = social_params["imageUrl"]
    else
      @id, @email, @social_type, @image_url = nil
    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