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

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

Yields:

  • (_self)

Yield Parameters:

  • _self (AmocrmRails)

    the object that the method was called on



34
35
36
# File 'lib/amocrm-rails.rb', line 34

def setup
  yield self
end