module AmocrmRails
Constants
- VERSION
Public Class Methods
add_reader(name)
click to toggle source
# File lib/amocrm-rails.rb, line 69 def add_reader(name) define_singleton_method(name) do |*args| send("#{name}_setting").value(*args) end end
add_writer(name, type)
click to toggle source
# File lib/amocrm-rails.rb, line 75 def add_writer(name, type) define_singleton_method("#{name}=") do |value| send("#{name}_setting=", DynamicSetting.build(value, type)) end end
generate_access_token(**options)
click to toggle source
# File lib/amocrm-rails.rb, line 11 def generate_access_token(**options) user_id = AmocrmRails.try(:user_id) client_id = options[:client_id] || AmocrmRails.client_id client_secret = options[:client_secret] || AmocrmRails.client_secret refresh_token = options[:refresh_token] || AmocrmRails.try(:refresh_token) count = options[:count].to_i params = { client_id: client_id, client_secret: client_secret, } if refresh_token.present? params[:grant_type] = 'refresh_token' params[:refresh_token] = refresh_token else params[:grant_type] = 'authorization_code' params[:code] = AmocrmRails.code end params[:redirect_uri] = AmocrmRails.redirect_uri response = Faraday.post(AmocrmRails.url_token, params.to_json, "Content-Type" => "application/json") if AmocrmRails::Request.debug logger = AmocrmRails::Request.logger || ::Logger.new(STDOUT) logger.info "---generate_access_token---" logger.info "params: #{params}" logger.info "Responding with #{response.status.inspect} => #{response.body.inspect}" end if response.status >= 200 && response.status <= 204 response_token = JSON.parse(response.body) data = YAML.load_file("config/amocrm_token.yml") response_token.each do |k, v| if user_id.present? data[user_id] = {} if data[user_id].nil? data[user_id][k] = v else data[k] = v end AmocrmRails::register(k.underscore.to_sym, v) end File.open("config/amocrm_token.yml", 'w') { |f| YAML.dump(data, f) } elsif count < 3 && AmocrmRails.try(:refresh_token).present? AmocrmRails.generate_access_token(client_id: client_id, client_secret: client_secret, refresh_token:AmocrmRails.refresh_token, count: count+1) end end
register(name, value, type = nil)
click to toggle source
# File lib/amocrm-rails.rb, line 61 def register(name, value, type = nil) cattr_accessor "#{name}_setting".to_sym add_reader(name) add_writer(name, type) send "#{name}=", value end
setup() { |self| ... }
click to toggle source
# File lib/amocrm-rails.rb, line 57 def setup yield self end