Module: AmocrmRails
- Defined in:
- lib/amocrm-rails.rb,
lib/amocrm-rails/request.rb,
lib/amocrm-rails/version.rb,
lib/amocrm-rails/response.rb,
lib/amocrm-rails/api_request.rb,
lib/amocrm-rails/amocrm_error.rb,
lib/generators/amocrm_rails/install/install_generator.rb
Defined Under Namespace
Classes: APIRequest, AmocrmError, DynamicSetting, InstallGenerator, Request, Response
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
- .add_reader(name) ⇒ Object
- .add_writer(name, type) ⇒ Object
- .generate_access_token(client_id = AmocrmRails.client_id, client_secret = AmocrmRails.client_secret, refresh_token = nil, count = 0) ⇒ Object
- .register(name, value, type = nil) ⇒ Object
- .setup {|_self| ... } ⇒ Object
Class Method Details
.add_reader(name) ⇒ Object
46 47 48 49 50 |
# File 'lib/amocrm-rails.rb', line 46 def add_reader(name) define_singleton_method(name) do |*args| send("#{name}_setting").value(*args) end end |
.add_writer(name, type) ⇒ Object
52 53 54 55 56 |
# File 'lib/amocrm-rails.rb', line 52 def add_writer(name, type) define_singleton_method("#{name}=") do |value| send("#{name}_setting=", DynamicSetting.build(value, type)) end end |
.generate_access_token(client_id = AmocrmRails.client_id, client_secret = AmocrmRails.client_secret, refresh_token = nil, count = 0) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/amocrm-rails.rb', line 8 def generate_access_token(client_id=AmocrmRails.client_id, client_secret=AmocrmRails.client_secret, refresh_token=nil, count=0) params = { client_id: client_id, client_secret: client_secret, grant_type: 'authorization_code', redirect_uri: AmocrmRails.redirect_uri } if refresh_token.present? params[:refresh_token] = refresh_token else params[:code] = AmocrmRails.code end response = Faraday.post(AmocrmRails.url_token, params.to_json, "Content-Type" => "application/json") 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| data[k] = v AmocrmRails::register k.underscore.to_sym, v end File.open("config/amocrm_token.yml", 'w') { |f| YAML.dump(data, f) } elsif count < 3 AmocrmRails.generate_access_token(client_id, client_secret, AmocrmRails.refresh_token, count+1) end end |
.register(name, value, type = nil) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/amocrm-rails.rb', line 38 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| ... } ⇒ Object
34 35 36 |
# File 'lib/amocrm-rails.rb', line 34 def setup yield self end |