ZOHOCRMSDK2_0 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/src/ZOHOCRMSDK2_0.rb +6 -0
- data/src/com/zoho/api/authenticator/oauth_token.rb +86 -32
- data/src/com/zoho/api/authenticator/store/db_store.rb +71 -29
- data/src/com/zoho/api/authenticator/store/file_store.rb +95 -24
- data/src/com/zoho/api/authenticator/store/token_store.rb +7 -0
- data/src/com/zoho/api/logger/sdk_logger.rb +19 -9
- data/src/com/zoho/crm/api/contact_roles/api_exception.rb +4 -0
- data/src/com/zoho/crm/api/contact_roles/contact_role_wrapper.rb +61 -0
- data/src/com/zoho/crm/api/contact_roles/contact_roles_operations.rb +118 -0
- data/src/com/zoho/crm/api/contact_roles/record_action_handler.rb +10 -0
- data/src/com/zoho/crm/api/contact_roles/record_action_wrapper.rb +63 -0
- data/src/com/zoho/crm/api/contact_roles/record_body_wrapper.rb +61 -0
- data/src/com/zoho/crm/api/contact_roles/record_response_handler.rb +10 -0
- data/src/com/zoho/crm/api/contact_roles/record_response_wrapper.rb +84 -0
- data/src/com/zoho/crm/api/dc/au_datacenter.rb +3 -3
- data/src/com/zoho/crm/api/dc/cn_datacenter.rb +3 -3
- data/src/com/zoho/crm/api/dc/datacenter.rb +3 -2
- data/src/com/zoho/crm/api/dc/eu_datacenter.rb +3 -3
- data/src/com/zoho/crm/api/dc/in_datacenter.rb +3 -3
- data/src/com/zoho/crm/api/dc/us_datacenter.rb +3 -3
- data/src/com/zoho/crm/api/initializer.rb +44 -16
- data/src/com/zoho/crm/api/record/record_operations.rb +198 -1
- data/src/com/zoho/crm/api/related_records/related_records_operations.rb +299 -40
- data/src/com/zoho/crm/api/request_proxy.rb +3 -4
- data/src/com/zoho/crm/api/sdk_config.rb +2 -68
- data/src/com/zoho/crm/api/util/api_http_connector.rb +6 -6
- data/src/com/zoho/crm/api/util/constants.rb +113 -16
- data/src/com/zoho/crm/api/util/converter.rb +21 -4
- data/src/com/zoho/crm/api/util/data_type_converter.rb +8 -2
- data/src/com/zoho/crm/api/util/form_data_converter.rb +4 -16
- data/src/com/zoho/crm/api/util/json_converter.rb +7 -9
- data/src/com/zoho/crm/api/util/module_fields_handler.rb +1 -1
- data/src/com/zoho/crm/api/util/utility.rb +197 -82
- data/src/resources/JSONDetails.json +1 -1
- data/src/version.rb +2 -2
- metadata +8 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 95f0344d741c13094abf8b93a67139018a0b83895f612a9be53fb7e32f14217b
         | 
| 4 | 
            +
              data.tar.gz: 8fc22f398327570fe85162016f887c280d2485e6ffdc6e82c671963a1bd7976e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a30421d88bd8b9b915998fbfaecf567e7f99a2534f86427e0f8e804a6a55a247f31f36239287e22b7e1112ee7902b768b7f783f80180dfca77e6f951d605bc69
         | 
| 7 | 
            +
              data.tar.gz: 7481d802d6be8ca33d3f723b560e312d21f49dfc6afa27e0e2ea03599f2a23458417d9a0a18fbf9ef7ba5e1ade40e0601cc41eb0718fb892ffd5e0569c78a209
         | 
    
        data/src/ZOHOCRMSDK2_0.rb
    CHANGED
    
    | @@ -202,11 +202,17 @@ require 'com/zoho/crm/api/contact_roles/contact_role.rb' | |
| 202 202 | 
             
            require 'com/zoho/crm/api/contact_roles/body_wrapper.rb'
         | 
| 203 203 | 
             
            require 'com/zoho/crm/api/contact_roles/action_handler.rb'
         | 
| 204 204 | 
             
            require 'com/zoho/crm/api/contact_roles/action_wrapper.rb'
         | 
| 205 | 
            +
            require 'com/zoho/crm/api/contact_roles/record_action_handler.rb'
         | 
| 206 | 
            +
            require 'com/zoho/crm/api/contact_roles/record_response_handler.rb'
         | 
| 207 | 
            +
            require 'com/zoho/crm/api/contact_roles/record_action_wrapper.rb'
         | 
| 208 | 
            +
            require 'com/zoho/crm/api/contact_roles/record_body_wrapper.rb'
         | 
| 209 | 
            +
            require 'com/zoho/crm/api/contact_roles/record_response_wrapper.rb'
         | 
| 205 210 | 
             
            require 'com/zoho/crm/api/contact_roles/response_wrapper.rb'
         | 
| 206 211 | 
             
            require 'com/zoho/crm/api/contact_roles/api_exception.rb'
         | 
| 207 212 | 
             
            require 'com/zoho/crm/api/contact_roles/contact_roles_operations.rb'
         | 
| 208 213 | 
             
            require 'com/zoho/crm/api/contact_roles/success_response.rb'
         | 
| 209 214 | 
             
            require 'com/zoho/crm/api/contact_roles/action_response.rb'
         | 
| 215 | 
            +
            require 'com/zoho/crm/api/contact_roles/contact_role_wrapper.rb'
         | 
| 210 216 | 
             
            require 'com/zoho/crm/api/contact_roles/response_handler.rb'
         | 
| 211 217 | 
             
            require 'com/zoho/crm/api/layouts/layouts_operations.rb'
         | 
| 212 218 | 
             
            require 'com/zoho/crm/api/layouts/section.rb'
         | 
| @@ -11,19 +11,19 @@ require_relative '../../crm/api/exception/sdk_exception' | |
| 11 11 | 
             
            module Authenticator
         | 
| 12 12 | 
             
              # This class gets and refreshes the tokens based on the expiry time.
         | 
| 13 13 | 
             
              class OAuthToken < Token
         | 
| 14 | 
            +
                attr_accessor :client_id , :client_secret ,:redirect_url ,:grant_token,:refresh_token, :access_token ,:user_mail ,:id ,:expires_in
         | 
| 14 15 | 
             
                @@sync_lock = Monitor.new
         | 
| 15 16 |  | 
| 16 | 
            -
                attr_accessor :client_id, :client_secret, :redirect_url, :grant_token, :refresh_token, :access_token, :expires_in, :user_mail, :id
         | 
| 17 | 
            -
             | 
| 18 17 | 
             
                # Creates an OAuthToken class instance with the specified parameters.
         | 
| 19 18 | 
             
                # @param client_id [string] A String containing the OAuth client id.
         | 
| 20 19 | 
             
                # @param client_secret [string] A String containing the OAuth client secret.
         | 
| 20 | 
            +
                # @param grant_token [string]  A String containing the grant token.
         | 
| 21 | 
            +
                # @param refresh_token [string] A String containing the refresh token.
         | 
| 21 22 | 
             
                # @param redirect_url [string]  A String containing the OAuth redirect URL.
         | 
| 22 | 
            -
                # @param  | 
| 23 | 
            -
                 | 
| 24 | 
            -
                def initialize(client_id | 
| 25 | 
            -
                  error = | 
| 26 | 
            -
             | 
| 23 | 
            +
                # @param id [string] A String containing ID
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
                def initialize(client_id:, client_secret:, grant_token: nil, refresh_token: nil, redirect_url: nil,id: nil)
         | 
| 26 | 
            +
                  error ={}
         | 
| 27 27 | 
             
                  unless client_id.is_a?(String)
         | 
| 28 28 | 
             
                    error[Constants::ERROR_HASH_FIELD] = Constants::CLIENT_ID
         | 
| 29 29 |  | 
| @@ -35,7 +35,7 @@ module Authenticator | |
| 35 35 |  | 
| 36 36 | 
             
                  end
         | 
| 37 37 |  | 
| 38 | 
            -
                  unless client_secret. | 
| 38 | 
            +
                  unless client_secret.is_a?(String)
         | 
| 39 39 | 
             
                    error[Constants::ERROR_HASH_FIELD] = Constants::CLIENT_SECRET
         | 
| 40 40 |  | 
| 41 41 | 
             
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
         | 
| @@ -46,8 +46,41 @@ module Authenticator | |
| 46 46 |  | 
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| 49 | 
            -
                   | 
| 50 | 
            -
                    error[Constants::ERROR_HASH_FIELD] = Constants:: | 
| 49 | 
            +
                  if !grant_token.nil? && !grant_token.is_a?(String)
         | 
| 50 | 
            +
                    error[Constants::ERROR_HASH_FIELD] = Constants::GRANT_TOKEN
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                    error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                    raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                  if !refresh_token.nil? && !refresh_token.is_a?(String)
         | 
| 61 | 
            +
                    error[Constants::ERROR_HASH_FIELD] = Constants::REFRESH_TOKEN
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  if !redirect_url.nil? && !redirect_url.is_a?(String)
         | 
| 72 | 
            +
                    error[Constants::ERROR_HASH_FIELD] = Constants::REDIRECT_URL
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                    error[Constants::ERROR_HASH_CLASS] = OAuthToken.class
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                  end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                  if !id.nil? && !id.is_a?(String)
         | 
| 83 | 
            +
                    error[Constants::ERROR_HASH_FIELD] = Constants::ID
         | 
| 51 84 |  | 
| 52 85 | 
             
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = String
         | 
| 53 86 |  | 
| @@ -57,7 +90,7 @@ module Authenticator | |
| 57 90 |  | 
| 58 91 | 
             
                  end
         | 
| 59 92 |  | 
| 60 | 
            -
                   | 
| 93 | 
            +
                  if  grant_token.nil? && refresh_token.nil?
         | 
| 61 94 | 
             
                    error[Constants::ERROR_HASH_FIELD] = Constants::TYPE
         | 
| 62 95 |  | 
| 63 96 | 
             
                    error[Constants::ERROR_HASH_EXPECTED_TYPE] = Constants::EXPECTED_TOKEN_TYPES
         | 
| @@ -66,28 +99,39 @@ module Authenticator | |
| 66 99 |  | 
| 67 100 | 
             
                    raise SDKException.new(Constants::INPUT_ERROR, nil, error, nil)
         | 
| 68 101 | 
             
                  end
         | 
| 69 | 
            -
             | 
| 70 102 | 
             
                  @client_id = client_id
         | 
| 71 103 |  | 
| 72 104 | 
             
                  @client_secret = client_secret
         | 
| 73 105 |  | 
| 74 106 | 
             
                  @redirect_url = redirect_url
         | 
| 75 107 |  | 
| 76 | 
            -
                  @refresh_token =  | 
| 108 | 
            +
                  @refresh_token = refresh_token
         | 
| 77 109 |  | 
| 78 | 
            -
                  @grant_token =  | 
| 79 | 
            -
             | 
| 110 | 
            +
                  @grant_token = grant_token
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                  @access_token = nil
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                  @expires_in = nil
         | 
| 80 115 |  | 
| 116 | 
            +
                  @user_mail = nil
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                  @id = id
         | 
| 119 | 
            +
                end
         | 
| 120 | 
            +
                
         | 
| 81 121 | 
             
                def authenticate(url_connection)
         | 
| 82 122 | 
             
                  @@sync_lock.synchronize do
         | 
| 83 123 | 
             
                    initializer = Initializer.get_initializer
         | 
| 84 124 | 
             
                    store = initializer.store
         | 
| 85 | 
            -
             | 
| 86 125 | 
             
                    user = initializer.user
         | 
| 87 126 |  | 
| 88 | 
            -
                    oauth_token =  | 
| 127 | 
            +
                    oauth_token = nil
         | 
| 128 | 
            +
                    if !@id.nil?
         | 
| 129 | 
            +
                      oauth_token = initializer.store.get_token_by_id(@id, self)
         | 
| 130 | 
            +
                    else
         | 
| 131 | 
            +
                      oauth_token = initializer.store.get_token(user, self)
         | 
| 132 | 
            +
                    end
         | 
| 89 133 |  | 
| 90 | 
            -
                    token =  | 
| 134 | 
            +
                    token = ""
         | 
| 91 135 |  | 
| 92 136 | 
             
                    if oauth_token.nil?
         | 
| 93 137 | 
             
                      token = @refresh_token.nil? ? generate_access_token(user, store).access_token : refresh_access_token(user, store).access_token
         | 
| @@ -97,7 +141,6 @@ module Authenticator | |
| 97 141 | 
             
                    else
         | 
| 98 142 | 
             
                      token = oauth_token.access_token
         | 
| 99 143 | 
             
                    end
         | 
| 100 | 
            -
             | 
| 101 144 | 
             
                    url_connection.headers[Constants::AUTHORIZATION] = Constants::OAUTH_HEADER_PREFIX + token
         | 
| 102 145 | 
             
                  end
         | 
| 103 146 | 
             
                end
         | 
| @@ -115,8 +158,8 @@ module Authenticator | |
| 115 158 | 
             
                  json_body[Constants::CLIENT_ID] = @client_id
         | 
| 116 159 |  | 
| 117 160 | 
             
                  json_body[Constants::CLIENT_SECRET] = @client_secret
         | 
| 118 | 
            -
             | 
| 119 | 
            -
                  json_body[Constants::REDIRECT_URI] = @redirect_url
         | 
| 161 | 
            +
             
         | 
| 162 | 
            +
                  json_body[Constants::REDIRECT_URI] = @redirect_url if !@redirect_url.nil?
         | 
| 120 163 |  | 
| 121 164 | 
             
                  json_body[Constants::GRANT_TYPE] = Constants::GRANT_TYPE_AUTH_CODE
         | 
| 122 165 |  | 
| @@ -125,7 +168,11 @@ module Authenticator | |
| 125 168 | 
             
                  response = get_response_from_server(json_body)
         | 
| 126 169 |  | 
| 127 170 | 
             
                  begin
         | 
| 128 | 
            -
                     | 
| 171 | 
            +
                    parse_response(response)
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                    generate_id()
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                    store.save_token(user,self)
         | 
| 129 176 | 
             
                  rescue SDKException => e
         | 
| 130 177 | 
             
                    raise e
         | 
| 131 178 | 
             
                  rescue StandardError => e
         | 
| @@ -141,7 +188,7 @@ module Authenticator | |
| 141 188 |  | 
| 142 189 | 
             
                  json_body[Constants::CLIENT_SECRET] = @client_secret
         | 
| 143 190 |  | 
| 144 | 
            -
                  json_body[Constants::REDIRECT_URI] = @redirect_url
         | 
| 191 | 
            +
                  json_body[Constants::REDIRECT_URI] = @redirect_url if !@redirect_url.nil?
         | 
| 145 192 |  | 
| 146 193 | 
             
                  json_body[Constants::GRANT_TYPE] = Constants::REFRESH_TOKEN
         | 
| 147 194 |  | 
| @@ -150,7 +197,11 @@ module Authenticator | |
| 150 197 | 
             
                  response = get_response_from_server(json_body)
         | 
| 151 198 |  | 
| 152 199 | 
             
                  begin
         | 
| 153 | 
            -
                     | 
| 200 | 
            +
                    parse_response(response)
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                    generate_id()
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                    store.save_token(user,self)
         | 
| 154 205 | 
             
                  rescue SDKException => e
         | 
| 155 206 | 
             
                    raise e
         | 
| 156 207 | 
             
                  rescue StandardError => e
         | 
| @@ -184,7 +235,7 @@ module Authenticator | |
| 184 235 | 
             
                  http.use_ssl = true
         | 
| 185 236 |  | 
| 186 237 | 
             
                  request = Net::HTTP::Post.new(url.request_uri)
         | 
| 187 | 
            -
             | 
| 238 | 
            +
                  request.add_field(Constants::USER_AGENT_KEY, Constants::USER_AGENT)
         | 
| 188 239 | 
             
                  request.set_form(json_body, Constants::APPLICATION_FORM_URLENCODED)
         | 
| 189 240 |  | 
| 190 241 | 
             
                  response = http.request(request)
         | 
| @@ -207,11 +258,14 @@ module Authenticator | |
| 207 258 | 
             
                def get_current_time_in_millis
         | 
| 208 259 | 
             
                  (Time.now.to_f * 1000).to_i
         | 
| 209 260 | 
             
                end
         | 
| 210 | 
            -
              end
         | 
| 211 | 
            -
            end
         | 
| 212 261 |  | 
| 213 | 
            -
             | 
| 214 | 
            -
             | 
| 215 | 
            -
             | 
| 216 | 
            -
             | 
| 217 | 
            -
             | 
| 262 | 
            +
                def generate_id
         | 
| 263 | 
            +
                  id = ""
         | 
| 264 | 
            +
                  email = Initializer.get_initializer.user.email
         | 
| 265 | 
            +
                  environment = Initializer.get_initializer.environment.name
         | 
| 266 | 
            +
                  id = id + "ruby_" +email[0..email.index(Constants::AT) - 1] + Constants::UNDERSCORE
         | 
| 267 | 
            +
                  id = id + environment + Constants::UNDERSCORE + @refresh_token[@refresh_token.length-4..@refresh_token.length-1]
         | 
| 268 | 
            +
                  @id = id
         | 
| 269 | 
            +
                end
         | 
| 270 | 
            +
              end
         | 
| 271 | 
            +
            end
         | 
| @@ -6,24 +6,22 @@ require_relative '../../../crm/api/util/constants' | |
| 6 6 | 
             
            module Store
         | 
| 7 7 | 
             
              # This class stores the user token details to the MySQL DataBase.
         | 
| 8 8 | 
             
              class DBStore < TokenStore
         | 
| 9 | 
            -
                 | 
| 9 | 
            +
                attr_reader :user_name, :password, :port_number, :host, :database_name, :table_name
         | 
| 10 10 |  | 
| 11 11 | 
             
                # Creates an DBStore class instance with the specified parameters.
         | 
| 12 12 | 
             
                # @param host [string] A String containing the DataBase host name.
         | 
| 13 13 | 
             
                # @param database_name A String containing the DataBase name.
         | 
| 14 | 
            +
                # @param table_name A String containing the table name.
         | 
| 14 15 | 
             
                # @param user_name A String containing the DataBase user name.
         | 
| 15 16 | 
             
                # @param password A String containing the DataBase password.
         | 
| 16 17 | 
             
                # @param port_number A String containing the DataBase port number.
         | 
| 17 | 
            -
                def initialize(host  | 
| 18 | 
            -
                  @host = host | 
| 19 | 
            -
             | 
| 20 | 
            -
                  @ | 
| 21 | 
            -
             | 
| 22 | 
            -
                  @ | 
| 23 | 
            -
             | 
| 24 | 
            -
                  @password = password.nil? ? '' : password
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                  @port_number = port_number.nil? ? Constants::MYSQL_PORT_NUMBER : port_number
         | 
| 18 | 
            +
                def initialize(host: Constants::MYSQL_HOST, database_name: Constants::MYSQL_DATABASE_NAME ,table_name: Constants::MYSQL_TABLE_NAME,user_name: Constants::MYSQL_USER_NAME,password: '',port_number: Constants::MYSQL_PORT_NUMBER )
         | 
| 19 | 
            +
                  @host = host
         | 
| 20 | 
            +
                  @database_name = database_name
         | 
| 21 | 
            +
                  @table_name = table_name
         | 
| 22 | 
            +
                  @user_name = user_name
         | 
| 23 | 
            +
                  @password = password
         | 
| 24 | 
            +
                  @port_number = port_number
         | 
| 27 25 | 
             
                end
         | 
| 28 26 |  | 
| 29 27 | 
             
                def get_token(user, token)
         | 
| @@ -38,12 +36,24 @@ module Store | |
| 38 36 | 
             
                  rs.each do |row|
         | 
| 39 37 | 
             
                    oauthtoken = token
         | 
| 40 38 |  | 
| 41 | 
            -
                    oauthtoken. | 
| 39 | 
            +
                    oauthtoken.client_id = row[Constants::CLIENT_ID]
         | 
| 42 40 |  | 
| 43 | 
            -
                    oauthtoken. | 
| 41 | 
            +
                    oauthtoken.client_secret = row[Constants::CLIENT_SECRET]
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                    oauthtoken.grant_token = row[Constants::GRANT_TOKEN]
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
         | 
| 44 46 |  | 
| 45 47 | 
             
                    oauthtoken.refresh_token = row[Constants::REFRESH_TOKEN]
         | 
| 46 48 |  | 
| 49 | 
            +
                    oauthtoken.id = row[Constants::ID]
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    oauthtoken.user_mail = row[Constants::USER_MAIL]
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                    oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
         | 
| 56 | 
            +
             | 
| 47 57 | 
             
                    return oauthtoken
         | 
| 48 58 | 
             
                  end
         | 
| 49 59 | 
             
                  nil
         | 
| @@ -54,7 +64,7 @@ module Store | |
| 54 64 | 
             
                def save_token(user, token)
         | 
| 55 65 | 
             
                  con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
         | 
| 56 66 | 
             
                  if token.is_a? Authenticator::OAuthToken
         | 
| 57 | 
            -
                    query = "insert into  | 
| 67 | 
            +
                    query = "insert into #{token.table_name}(id,user_mail,client_id,client_secret,refresh_token,access_token,grant_token,expiry_time,redirect_url) values ('#{token.id}','#{user.email}','#{token.client_id}','#{token.client_secret}','#{token.refresh_token}','#{token.access_token}','#{token.grant_token}','#{token.expires_in}','#{token.redirect_url}')"
         | 
| 58 68 | 
             
                    token.user_mail = user.email
         | 
| 59 69 | 
             
                    delete_token(token)
         | 
| 60 70 | 
             
                    con.query(query)
         | 
| @@ -81,7 +91,7 @@ module Store | |
| 81 91 | 
             
                def delete_tokens
         | 
| 82 92 | 
             
                  con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
         | 
| 83 93 |  | 
| 84 | 
            -
                  query =  | 
| 94 | 
            +
                  query = "delete * from #{@table_name}"
         | 
| 85 95 |  | 
| 86 96 | 
             
                  con.query(query)
         | 
| 87 97 |  | 
| @@ -94,24 +104,16 @@ module Store | |
| 94 104 | 
             
                  tokens = []
         | 
| 95 105 | 
             
                  con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
         | 
| 96 106 |  | 
| 97 | 
            -
                  query =  | 
| 107 | 
            +
                  query = "select * from #{@table_name}"
         | 
| 98 108 |  | 
| 99 109 | 
             
                  rs = con.query(query)
         | 
| 100 110 |  | 
| 101 111 | 
             
                  con.close
         | 
| 102 112 |  | 
| 103 113 | 
             
                  rs.each do |row|
         | 
| 104 | 
            -
                    token_type = nil
         | 
| 105 | 
            -
                    token_value = nil
         | 
| 106 | 
            -
                    if !row[Constants::GRANT_TOKEN].nil? && row[Constants::GRANT_TOKEN].length.positive?
         | 
| 107 | 
            -
                      token_type = TokenType::GRANT
         | 
| 108 | 
            -
                      token_value = row[Constants::GRANT_TOKEN]
         | 
| 109 | 
            -
                    else
         | 
| 110 | 
            -
                      token_type = TokenType::REFRESH
         | 
| 111 | 
            -
                      token_value = row[Constants::REFRESH_TOKEN]
         | 
| 112 | 
            -
                    end
         | 
| 113 114 |  | 
| 114 | 
            -
             | 
| 115 | 
            +
             | 
| 116 | 
            +
                    oauthtoken = Authenticator::OAuthToken.new(client_id: row[Constants::CLIENT_ID],client_secret: row[Constants::CLIENT_SECRET],grant_token: grant_token,refresh_token: row[Constants::REFRESH_TOKEN])
         | 
| 115 117 |  | 
| 116 118 | 
             
                    oauthtoken.id = row[Constants::ID]
         | 
| 117 119 |  | 
| @@ -119,9 +121,9 @@ module Store | |
| 119 121 |  | 
| 120 122 | 
             
                    oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
         | 
| 121 123 |  | 
| 122 | 
            -
                    oauthtoken. | 
| 124 | 
            +
                    oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
         | 
| 123 125 |  | 
| 124 | 
            -
                    oauthtoken. | 
| 126 | 
            +
                    oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
         | 
| 125 127 |  | 
| 126 128 | 
             
                    tokens.push(oauthtoken)
         | 
| 127 129 | 
             
                  end
         | 
| @@ -135,7 +137,7 @@ module Store | |
| 135 137 |  | 
| 136 138 | 
             
                  query = is_delete ? 'delete from ' : 'select * from '
         | 
| 137 139 |  | 
| 138 | 
            -
                  query +=  | 
| 140 | 
            +
                  query += "#{@table_name} where user_mail='#{email}' and client_id='#{token.client_id}' and "
         | 
| 139 141 |  | 
| 140 142 | 
             
                  query += if token.grant_token.nil?
         | 
| 141 143 | 
             
                             "refresh_token='#{token.refresh_token}'"
         | 
| @@ -145,5 +147,45 @@ module Store | |
| 145 147 |  | 
| 146 148 | 
             
                  query
         | 
| 147 149 | 
             
                end
         | 
| 150 | 
            +
                def get_token_by_id(id,token)
         | 
| 151 | 
            +
                  con = Mysql2::Client.new(host: @host, username: @user_name, password: @password, database: @database_name, port: @port_number)
         | 
| 152 | 
            +
                  
         | 
| 153 | 
            +
                  if token.is_a? Authenticator::OAuthToken
         | 
| 154 | 
            +
                    query = "select * from #{@table_name} where id='#{id}'" 
         | 
| 155 | 
            +
             | 
| 156 | 
            +
                    rs = con.query(query)
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                    con.close
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                    rs.each do |row|
         | 
| 161 | 
            +
                      if id == row[Constants::ID]
         | 
| 162 | 
            +
                        oauthtoken = token
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                        oauthtoken.client_id = row[Constants::CLIENT_ID]
         | 
| 165 | 
            +
             | 
| 166 | 
            +
                        oauthtoken.client_secret = row[Constants::CLIENT_SECRET]
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                        oauthtoken.grant_token = row[Constants::GRANT_TOKEN]
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                        oauthtoken.redirect_url = row[Constants::REDIRECT_URL]
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                        oauthtoken.refresh_token = row[Constants::REFRESH_TOKEN]
         | 
| 173 | 
            +
             | 
| 174 | 
            +
                        oauthtoken.id = row[Constants::ID]
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                        oauthtoken.user_mail = row[Constants::USER_MAIL]
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                        oauthtoken.access_token = row[Constants::ACCESS_TOKEN]
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                        oauthtoken.expires_in = row[Constants::EXPIRY_TIME]
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                        return oauthtoken
         | 
| 183 | 
            +
                      end
         | 
| 184 | 
            +
                    end
         | 
| 185 | 
            +
                  end
         | 
| 186 | 
            +
                  nil
         | 
| 187 | 
            +
                rescue Mysql2::Error => e
         | 
| 188 | 
            +
                  raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_DB_ERROR, nil, e)
         | 
| 189 | 
            +
                end
         | 
| 148 190 | 
             
              end
         | 
| 149 191 | 
             
            end
         | 
| @@ -16,7 +16,7 @@ module Store | |
| 16 16 |  | 
| 17 17 | 
             
                  unless File.exist? @file_path
         | 
| 18 18 | 
             
                    File.new(@file_path, 'w')
         | 
| 19 | 
            -
                    @csv_file = CSV.open(@file_path, 'a', write_headers: true, headers: [Constants::USER_MAIL, Constants::CLIENT_ID, Constants::REFRESH_TOKEN, Constants::ACCESS_TOKEN, Constants::GRANT_TOKEN, Constants::EXPIRY_TIME])
         | 
| 19 | 
            +
                    @csv_file = CSV.open(@file_path, 'a', write_headers: true, headers: [Constants::ID,Constants::USER_MAIL, Constants::CLIENT_ID,Constants::CLIENT_SECRET, Constants::REFRESH_TOKEN, Constants::ACCESS_TOKEN, Constants::GRANT_TOKEN, Constants::EXPIRY_TIME,Constants::REDIRECT_URL])
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 | 
             
                  @csv_file = CSV.open(@file_path, 'a')
         | 
| 22 22 | 
             
                end
         | 
| @@ -38,15 +38,33 @@ module Store | |
| 38 38 | 
             
                    end
         | 
| 39 39 |  | 
| 40 40 | 
             
                    file_contents.each do |row|
         | 
| 41 | 
            -
                      token_check = grant_token.nil? ? refresh_token == row[ | 
| 41 | 
            +
                      token_check = grant_token.nil? ? refresh_token == row[4] : grant_token == row[6]
         | 
| 42 | 
            +
                      if (row[1] == user_email) && (row[2] == client_id) && token_check
         | 
| 42 43 |  | 
| 43 | 
            -
             | 
| 44 | 
            -
                        token.refresh_token = row[2]
         | 
| 44 | 
            +
                        grant_token = (!row[6].nil? &&  !row[6].empty?) ? row[6] : nil
         | 
| 45 45 |  | 
| 46 | 
            -
                         | 
| 46 | 
            +
                        redirect_url = (!row[8].nil? &&  !row[8].empty?) ? row[8] : nil
         | 
| 47 | 
            +
                        
         | 
| 48 | 
            +
                        oauthtoken = token
         | 
| 47 49 |  | 
| 48 | 
            -
                         | 
| 49 | 
            -
             | 
| 50 | 
            +
                        oauthtoken.id = row[0]
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                        oauthtoken.user_mail = row[1]
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                        oauthtoken.client_id = row[2]
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                        oauthtoken.client_secret = row[3]
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                        oauthtoken.refresh_token = row[4]
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                        oauthtoken.access_token = row[5]
         | 
| 61 | 
            +
                
         | 
| 62 | 
            +
                        oauthtoken.grant_token = grant_token
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                        oauthtoken.expires_in = row[7]
         | 
| 65 | 
            +
                
         | 
| 66 | 
            +
                        oauthtoken.redirect_url = redirect_url
         | 
| 67 | 
            +
                        return oauthtoken
         | 
| 50 68 | 
             
                      end
         | 
| 51 69 | 
             
                    end
         | 
| 52 70 | 
             
                  end
         | 
| @@ -60,25 +78,21 @@ module Store | |
| 60 78 | 
             
                  file_contents = CSV.table(@file_path)
         | 
| 61 79 | 
             
                  file_contents.each do |row|
         | 
| 62 80 | 
             
                    unless row == @csv_file.header_row?
         | 
| 63 | 
            -
                       | 
| 64 | 
            -
             | 
| 65 | 
            -
                       | 
| 66 | 
            -
                        token_type = TokenType::GRANT
         | 
| 67 | 
            -
                        token_value = row[4]
         | 
| 68 | 
            -
                      else
         | 
| 69 | 
            -
                        token_type = TokenType::REFRESH
         | 
| 70 | 
            -
                        token_value = row[2]
         | 
| 71 | 
            -
                      end
         | 
| 81 | 
            +
                      grant_token = (!row[6].nil? &&  !row[6].empty?) ? row[6] : nil
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                      redirect_url = (!row[8].nil? &&  !row[8].empty?) ? row[8] : nil
         | 
| 72 84 |  | 
| 73 | 
            -
                      token = Authenticator::OAuthToken.new(row[ | 
| 85 | 
            +
                      token = Authenticator::OAuthToken.new(client_id: row[2],client_secret: row[3],grant_token: grant_token,refresh_token: row[4])
         | 
| 86 | 
            +
                        
         | 
| 87 | 
            +
                      token.id  = row[0]
         | 
| 74 88 |  | 
| 75 | 
            -
                      token.user_mail = row[ | 
| 89 | 
            +
                      token.user_mail = row[1]
         | 
| 76 90 |  | 
| 77 | 
            -
                      token. | 
| 91 | 
            +
                      token.access_token = row[5]
         | 
| 78 92 |  | 
| 79 | 
            -
                      token. | 
| 93 | 
            +
                      token.expires_in = row[7]
         | 
| 80 94 |  | 
| 81 | 
            -
                      token. | 
| 95 | 
            +
                      token.redirect_url = redirect_url
         | 
| 82 96 |  | 
| 83 97 | 
             
                      tokens.push(token)
         | 
| 84 98 | 
             
                    end
         | 
| @@ -96,10 +110,14 @@ module Store | |
| 96 110 | 
             
                    delete_token(token)
         | 
| 97 111 | 
             
                    values_list = []
         | 
| 98 112 |  | 
| 113 | 
            +
                    values_list.push(token.id)
         | 
| 114 | 
            +
             | 
| 99 115 | 
             
                    values_list.push(user.email)
         | 
| 100 116 |  | 
| 101 117 | 
             
                    values_list.push(token.client_id)
         | 
| 102 118 |  | 
| 119 | 
            +
                    values_list.push(token.client_secret)
         | 
| 120 | 
            +
             | 
| 103 121 | 
             
                    values_list.push(token.refresh_token)
         | 
| 104 122 |  | 
| 105 123 | 
             
                    values_list.push(token.access_token)
         | 
| @@ -107,6 +125,8 @@ module Store | |
| 107 125 | 
             
                    values_list.push(token.grant_token)
         | 
| 108 126 |  | 
| 109 127 | 
             
                    values_list.push(token.expires_in)
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                    values_list.push(token.redirect_url)
         | 
| 110 130 | 
             
                  end
         | 
| 111 131 | 
             
                  @csv_file = CSV.open(@file_path, 'a') if @csv_file.closed?
         | 
| 112 132 | 
             
                  @csv_file << values_list
         | 
| @@ -118,6 +138,7 @@ module Store | |
| 118 138 |  | 
| 119 139 | 
             
                def delete_token(token)
         | 
| 120 140 | 
             
                  if token.is_a? Authenticator::OAuthToken
         | 
| 141 | 
            +
                  
         | 
| 121 142 | 
             
                    grant_token = token.grant_token
         | 
| 122 143 |  | 
| 123 144 | 
             
                    refresh_token = token.refresh_token
         | 
| @@ -134,9 +155,10 @@ module Store | |
| 134 155 |  | 
| 135 156 | 
             
                    table.delete_if do |row|
         | 
| 136 157 | 
             
                      unless row == @csv_file.header_row?
         | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 158 | 
            +
                   
         | 
| 159 | 
            +
                        token_check = grant_token.nil? ? refresh_token == row[4] : grant_token == row[6]
         | 
| 160 | 
            +
                       
         | 
| 161 | 
            +
                        row[1] == user_email and row[2] == client_id and token_check
         | 
| 140 162 | 
             
                      end
         | 
| 141 163 | 
             
                    end
         | 
| 142 164 |  | 
| @@ -161,5 +183,54 @@ module Store | |
| 161 183 | 
             
                rescue StandardError => e
         | 
| 162 184 | 
             
                  raise SDKException.new(Constants::TOKEN_STORE, Constants::DELETE_TOKENS_FILE_ERROR, nil, e)
         | 
| 163 185 | 
             
                end
         | 
| 186 | 
            +
             | 
| 187 | 
            +
                def get_token_by_id(id, token)
         | 
| 188 | 
            +
                  if token.is_a? Authenticator::OAuthToken
         | 
| 189 | 
            +
             | 
| 190 | 
            +
                    is_row_present = false
         | 
| 191 | 
            +
                    
         | 
| 192 | 
            +
                    file_contents = CSV.read(@file_path)
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                    file_contents.each do |row|
         | 
| 195 | 
            +
             | 
| 196 | 
            +
                      if row[0] == id 
         | 
| 197 | 
            +
             | 
| 198 | 
            +
                        is_row_present = true
         | 
| 199 | 
            +
             | 
| 200 | 
            +
                        grant_token = (!row[6].nil? &&  !row[6].empty?) ? row[6] : nil
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                        redirect_url = (!row[8].nil? &&  !row[8].empty?) ? row[8] : nil
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                        oauthtoken = token
         | 
| 205 | 
            +
             | 
| 206 | 
            +
                        oauthtoken.id = row[0]
         | 
| 207 | 
            +
             | 
| 208 | 
            +
                        oauthtoken.user_mail = row[1]
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                        oauthtoken.client_id = row[2]
         | 
| 211 | 
            +
             | 
| 212 | 
            +
                        oauthtoken.client_secret = row[3]
         | 
| 213 | 
            +
             | 
| 214 | 
            +
                        oauthtoken.refresh_token = row[4]
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                        oauthtoken.access_token = row[5]
         | 
| 217 | 
            +
                
         | 
| 218 | 
            +
                        oauthtoken.grant_token = grant_token
         | 
| 219 | 
            +
             | 
| 220 | 
            +
                        oauthtoken.expires_in = row[7]
         | 
| 221 | 
            +
                
         | 
| 222 | 
            +
                        oauthtoken.redirect_url = redirect_url
         | 
| 223 | 
            +
                
         | 
| 224 | 
            +
                        return oauthtoken
         | 
| 225 | 
            +
                      end
         | 
| 226 | 
            +
                    end
         | 
| 227 | 
            +
                    if !is_row_present
         | 
| 228 | 
            +
                      raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_FILE_ERROR, nil, nil)
         | 
| 229 | 
            +
                    end
         | 
| 230 | 
            +
                  end
         | 
| 231 | 
            +
                  nil
         | 
| 232 | 
            +
                rescue StandardError => e
         | 
| 233 | 
            +
                  raise SDKException.new(Constants::TOKEN_STORE, Constants::GET_TOKEN_BY_ID_FILE_ERROR, nil, e)
         | 
| 234 | 
            +
                end
         | 
| 164 235 | 
             
              end
         | 
| 165 236 | 
             
            end
         |