Module: Greensky

Defined in:
lib/greensky.rb,
lib/greensky/error.rb,
lib/greensky/client.rb,
lib/greensky/version.rb,
lib/greensky/long_application.rb,
lib/greensky/document_downloader.rb

Defined Under Namespace

Classes: Client, ConfigurableDefault, DocumentDownloader, Error, LongApplication

Constant Summary collapse

VERSION =
"1.10.0"

Class Method Summary collapse

Class Method Details

.agreement(application) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/greensky.rb', line 47

def self.agreement(application)
  data = {
    role:          application.role,
    channel:       application.channel,
    program:       application.program,
    product:       application.product,
    applicationId: application.applicationId
  }
  client.get 'loanagreement', data, {token: application.token}
end

.clientObject



14
15
16
# File 'lib/greensky.rb', line 14

def self.client
  Client.new(config)
end

.configObject



10
11
12
# File 'lib/greensky.rb', line 10

def self.config
  @@config ||= OpenStruct.new({role: 'merchant'})
end

.create(application, offer_id) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/greensky.rb', line 58

def self.create(application, offer_id)
  result = client.post('create', {
    offerId:       offer_id,
    role:          application.role,
    channel:       application.channel,
    program:       application.program,
    product:       application.product,
    applicationId: application.applicationId
  }, {token: application.token})
  result.fetch('status')
end

.decision(application) ⇒ Object



101
102
103
104
105
106
107
108
109
110
# File 'lib/greensky.rb', line 101

def self.decision(application)
  data = {
    program:       application.program,
    product:       application.product,
    role:          application.role,
    applicationId: application.applicationId,
  }

  client.get 'decision', data, token: application.token
end

.download_document(application, &block) ⇒ Object



18
19
20
# File 'lib/greensky.rb', line 18

def self.download_document(application, &block)
  DocumentDownloader.new(config, application).execute(&block)
end

.listObject



22
23
24
# File 'lib/greensky.rb', line 22

def self.list
  client.get 'list', {channel: config.channel}
end

.merchant_validation(application) ⇒ Object



70
71
72
73
74
75
76
77
78
79
# File 'lib/greensky.rb', line 70

def self.merchant_validation(application)
  client.get 'merchantvalidation', {
    dealer:  application.merchantNumber,
    role:    application.role,
    program: application.program,
    product: application.product,
    channel: application.channel,
    plan:    application.plan
  }
end

.offers(application) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/greensky.rb', line 36

def self.offers(application)
  data = {
    channel:       application.channel,
    program:       application.program,
    product:       application.product,
    applicationId: application.applicationId,
    role:          application.role
  }
  client.get 'offer', data, {token: application.token}
end

.recalculate_offer(application) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/greensky.rb', line 88

def self.recalculate_offer(application)
  data = {
    program:       application.program,
    product:       application.product,
    role:          application.role,
    applicationId: application.applicationId,
    loanAmount:    application.requestedLoanAmount,
    plan:          application.plan,
  }

  client.post 'recalculateoffer', data, token: application.token
end

.state(application) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/greensky.rb', line 26

def self.state(application)
  data = {
    channel:       application.channel,
    program:       application.program,
    product:       application.product,
    applicationId: application.applicationId
  }
  client.get 'state', data, {token: application.token}
end

.submit_async(application) ⇒ Object



81
82
83
84
85
86
# File 'lib/greensky.rb', line 81

def self.submit_async(application)
  validation = merchant_validation(application)
  token_header = {token: validation['token']}
  data = application.attributes
  client.post 'asynchronoussubmit', data, token_header
end