mycrm 0.0.41

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.
@@ -0,0 +1,9 @@
1
+ require_relative 'models/adviser'
2
+ require_relative 'models/adviser_compliance_detail'
3
+ require_relative 'models/application'
4
+ require_relative 'models/client'
5
+ require_relative 'models/lender'
6
+ require_relative 'models/note'
7
+ require_relative 'models/office'
8
+ require_relative 'models/office_address'
9
+ require_relative 'models/structure'
@@ -0,0 +1,62 @@
1
+ require_relative '../model'
2
+ require_relative '../attributes/name'
3
+ require_relative '../attributes/date'
4
+ require_relative '../attributes/address'
5
+ require_relative '../attributes/organization'
6
+
7
+ module Mycrm
8
+ module Models
9
+ class Adviser
10
+ include Model
11
+
12
+ endpoint 'lm-advisers'
13
+
14
+ attribute :id, Integer
15
+ attribute :active, Boolean, default: true
16
+ attribute :source_id, Integer
17
+ attribute :family_id, Integer
18
+ attribute :country_id, Integer
19
+
20
+ attribute :name, Mycrm::Attributes::Name, embedded: true
21
+ attribute :trading_display_name, String
22
+ attribute :dob, Mycrm::Attributes::Date, embedded: true
23
+ attribute :address, Hash
24
+ attribute :business_address, Hash
25
+ attribute :email, String
26
+ attribute :mobile, String
27
+
28
+ attribute :business_phone, String
29
+ attribute :abn, String
30
+ attribute :acn, String
31
+ attribute :individual_ASICID, String, as: :asic_id
32
+
33
+ attribute :summary, String
34
+
35
+ attribute :reporting_country_id, Integer
36
+ attribute :client_type_ids, String #Array[Integer]
37
+ attribute :role, String #Array[Integer]
38
+ attribute :contractor_entity_id, Integer
39
+
40
+ attribute :organization, Mycrm::Attributes::Organization, embedded: true
41
+
42
+ attribute :uuid, String
43
+ attribute :subscription_list, Array[Integer], coerce: false, default: nil # coerce: false set here to avoid bug https://github.com/solnic/virtus/issues/334#issuecomment-190266441
44
+
45
+ def add_client_type(id)
46
+ self.client_type_ids = self.client_type_ids.to_s.split(',').push(id).join(',')
47
+ end
48
+
49
+ def reporting_country=(country)
50
+ self.reporting_country_id = Mycrm::Domains::Countries.find(country) rescue nil
51
+ end
52
+
53
+ def type=(country)
54
+ add_client_type Mycrm::Domains::AdviserTypes.find(country) rescue nil
55
+ end
56
+
57
+ def source=(source)
58
+ self.source_id = Mycrm::Domains::AdviserSources.find(source) rescue nil
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class AdviserComplianceDetail
6
+ include Model
7
+
8
+ endpoint 'corporate/FamilyComplianceGet'
9
+
10
+ only :get
11
+
12
+ attribute :FamilyId, String
13
+ attribute :AppointmentType, String
14
+
15
+ to :underscore
16
+
17
+ def self.find(id)
18
+ self.find_by(:familyId, id)
19
+ end
20
+
21
+ def self.parse(body)
22
+ JSON.parse(body)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class AdviserNote
6
+ include Model
7
+
8
+ endpoint 'contacts/AdviserCommentSet?family_id=%{FamilyId}'
9
+
10
+ only :post
11
+
12
+ to :underscore
13
+
14
+ attribute :Id, Integer
15
+ attribute :FamilyId, Integer
16
+ attribute :Comment, String
17
+
18
+ def self.parse(body)
19
+ { 'Id' => body.to_i }
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../model'
2
+ require_relative '../attributes/deposit'
3
+
4
+ module Mycrm
5
+ module Models
6
+ # leads
7
+ class Application
8
+ include Model
9
+
10
+ endpoint 'lm-clients/%{client_id}/scenarios'
11
+
12
+ only :post
13
+
14
+ attribute :id, Integer
15
+ attribute :client_id, Integer
16
+ attribute :deposit, Mycrm::Attributes::Deposit, embedded: true
17
+ attribute :salesforce_id, String
18
+ attribute :converted, Boolean, default: false
19
+ attribute :purposes, Array[Integer]
20
+ attribute :features, Array[Integer]
21
+ attribute :preferred_lenders, Array[Integer]
22
+ attribute :scenario_name, String
23
+ attribute :specific_goals, String
24
+ attribute :has_settlement_date, Boolean, default: true
25
+ attribute :settlement_date, String, default: lambda { |_,_| DateTime.now.to_s }
26
+ attribute :applicants, Array[Hash[Symbol => Integer]]
27
+ attribute :metadata, String
28
+
29
+ def add_purpose(purpose)
30
+ self.purposes << Mycrm::Domains::Purposes.find(purpose)
31
+ end
32
+
33
+ def add_feature(feature)
34
+ self.features << Mycrm::Domains::LoanFeatures.find(feature)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../model'
2
+ require_relative '../attributes/name'
3
+ require_relative '../attributes/date'
4
+ require_relative '../attributes/address'
5
+
6
+ module Mycrm
7
+ module Models
8
+ # leads
9
+ class Client
10
+ include Model
11
+
12
+ endpoint 'lm-clients'
13
+
14
+ attribute :id, Integer
15
+ attribute :active, Boolean, default: true
16
+ attribute :role_id, Integer, default: 1
17
+ attribute :source_id, Integer
18
+ attribute :family_id, Integer
19
+ attribute :allocated_broker_id, Integer
20
+ attribute :consumer_uuid, String
21
+ attribute :broker_uuid, String
22
+
23
+ attribute :name, Mycrm::Attributes::Name, embedded: true
24
+ attribute :dob, Mycrm::Attributes::Date, embedded: true
25
+ attribute :address, Mycrm::Attributes::Address, embedded: true
26
+ attribute :allocation_postcode, String
27
+ attribute :email, String
28
+ attribute :mobile, String
29
+ attribute :mobile_validated, Boolean, default: true
30
+ attribute :utm, Hash[Symbol => String]
31
+
32
+ attribute :web_lead_url, String
33
+ attribute :web_landing_url, String
34
+
35
+ def source=(source)
36
+ self.source_id = Mycrm::Domains::Sources.find(source) rescue nil
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,16 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class Lender
6
+ include Model
7
+
8
+ endpoint 'consumer/Lenders'
9
+
10
+ only :get
11
+
12
+ attribute :LenderId, String
13
+ attribute :LenderName, String
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,27 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class Note
6
+ include Model
7
+
8
+ endpoint 'contacts/NoteSet?family_id=%{FamilyId}'
9
+
10
+ only :post
11
+
12
+ to :underscore
13
+
14
+ attribute :Id, Integer
15
+ attribute :IsSticky, Boolean, default: true
16
+ attribute :FamilyId, Integer
17
+ attribute :ActivityTitle, String, default: ''
18
+ attribute :ActivityDetails, String, default: ''
19
+
20
+ attribute :Note, String
21
+
22
+ def self.parse(body)
23
+ { 'Id' => body.to_i }
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,48 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class Office
6
+ include Model
7
+
8
+ endpoint 'corporate/AdviserOrganizationGet'
9
+
10
+ only :get
11
+
12
+ to :underscore
13
+
14
+ attribute :AdviserOrganizationId, Integer, as: :id
15
+
16
+ attribute :AdviserOrganizationName, String, as: :name
17
+ attribute :RegisteredBusinessName, String
18
+ attribute :TradingName, String
19
+ attribute :OfficeDisplayName, String, as: :display_name
20
+
21
+ attribute :Phone, String
22
+ attribute :Fax, String
23
+ attribute :CompanyEmail, String, as: :email
24
+ attribute :ABN, String
25
+ attribute :ACN, String
26
+ attribute :ASCId, String, as: :asic_id
27
+ attribute :Website, String
28
+
29
+ attribute :AccountOwner_FamilyId, Integer, as: :owner_id
30
+ attribute :AccountOwner_FullName, String, as: :owner_name
31
+
32
+ attribute :LeadAdviser_FamilyId, Integer, as: :lead_adviser_id
33
+ attribute :LeadAdviser_FullName, String, as: :lead_adviser_name
34
+
35
+ attribute :IsActive, Boolean
36
+
37
+ def self.find(id)
38
+ find_by_AdviserOrganizationId(id)
39
+ end
40
+
41
+ def self.parse(body)
42
+ parsed = JSON.parse(body)
43
+ raise Mycrm::ResponseError, 'No Office Found' if parsed.empty?
44
+ parsed.first
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,37 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class OfficeAddress
6
+ include Model
7
+
8
+ endpoint 'corporate/OrganizationAddressGet'
9
+
10
+ only :get
11
+
12
+ to :underscore
13
+
14
+ attribute :organizationId, Integer
15
+ attribute :Route, String, as: :street_name
16
+ attribute :Subpremise, String
17
+ attribute :Street_number, String
18
+ attribute :Postal_code, String
19
+ attribute :Locality, String, as: :suburb
20
+ attribute :Administrative_area_level_1, String, as: :state
21
+ attribute :Country, String
22
+ attribute :Formatted_address, String, as: :formatted
23
+ attribute :Latitude, Float
24
+ attribute :Longitude, Float
25
+ attribute :GeoCoded, Boolean
26
+ attribute :IsMailing, Boolean
27
+
28
+ def self.find(id)
29
+ find_by_organizationId(id)
30
+ end
31
+
32
+ def self.parse(body)
33
+ JSON.parse(body).find{ |address| !address['isMailing'] } || {}
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,22 @@
1
+ require_relative '../model'
2
+
3
+ module Mycrm
4
+ module Models
5
+ class Structure
6
+ include Model
7
+
8
+ endpoint 'lm-applications/%{application_id}/structures'
9
+
10
+ only :post
11
+
12
+ attribute :id, Integer
13
+ attribute :application_id, Integer
14
+ attribute :loan_term, Integer
15
+ attribute :loan_amount, Integer
16
+ attribute :product_id, Integer
17
+ attribute :lender_id, Integer
18
+ attribute :lender_reason, String
19
+ attribute :product_reason, String
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,73 @@
1
+ countries:
2
+ australia: 2
3
+ new_zealand: 1
4
+ indonesia: 3
5
+
6
+ adviser_types:
7
+ mortgage_broker: 7829
8
+ financial_planner: 7828
9
+ insurance_broker: 7830
10
+
11
+ sources:
12
+ broker_website: -20
13
+ lm_contact_us: -10
14
+ lm_online_member: -9
15
+ inbound_call: -8
16
+ product_review: -7
17
+ domain: -6
18
+ rate_city: -5
19
+ home_loan_report: -4
20
+ active_pipe: -3
21
+ ray_white_car_finance: -2
22
+ referral: -1
23
+ asset_finance: -21
24
+ ebook: -26
25
+ facebook: -27
26
+ broker___ebook: -40
27
+
28
+ adviser_sources:
29
+ agents_broker_connection_networking: 1
30
+ better_business_summit: 2
31
+ cold_calling: 3
32
+ existing_relationship: 4
33
+ expo_ryc: 5
34
+ external_referrals: 6
35
+ insight_function: 7
36
+ internal_referrals: 8
37
+ job_advert: 9
38
+ lenders_bdm: 10
39
+ referred_by_lm_broker: 11
40
+ rw_office_referral: 12
41
+ the_adviser_digital_bootcamp: 13
42
+ recruitment_company: 14
43
+ recruitment_newsletter: 15
44
+ loan_market_careers_website: 16
45
+
46
+ purposes:
47
+ first_home: 2796
48
+ next_home: 2797
49
+ investment: 2798
50
+ commercial: 2799
51
+ industrial: 2800
52
+ get_a_better_deal: 2801
53
+ renovate: 2802
54
+ consolidate_dept: 2803
55
+ borrow_extra_funds: 2804
56
+ reverse_mortgage: 2805
57
+
58
+ loan_features:
59
+ variable_interest_rate: 2813
60
+ fixed_interest_rate: 2814
61
+ introductory_rate: 2815
62
+ professional_pack: 2816
63
+ construction_facility: 2817
64
+ extra_repayments: 2818
65
+ no_ongoing_fees: 2819
66
+ redraw_facility: 2820
67
+ fortnightly_repayments: 2821
68
+ weekly_repayments: 2822
69
+ interest_only_facility: 2823
70
+ no_early_repay_penalty: 2824
71
+ offset_account: 2825
72
+ lineof_credit: 2826
73
+ other: 2827
@@ -0,0 +1,3 @@
1
+ module Mycrm
2
+ VERSION = '0.0.41'
3
+ end
metadata ADDED
@@ -0,0 +1,221 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mycrm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.41
5
+ platform: ruby
6
+ authors:
7
+ - Danilo Lo Santo
8
+ - Sam Bauers
9
+ - Luke Bacon
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2020-07-15 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: faraday
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: virtus
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: virtus_convert
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: dotenv
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: simplecov
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rspec
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rspec-deep-matchers
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: vcr
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: webmock
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: pry
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ description: Description of MyCRM Gem.
156
+ email:
157
+ - luke.bacon@loanmarket.com.au
158
+ executables: []
159
+ extensions: []
160
+ extra_rdoc_files: []
161
+ files:
162
+ - MIT-LICENSE
163
+ - README.md
164
+ - Rakefile
165
+ - lib/mycrm.rb
166
+ - lib/mycrm/attributes.rb
167
+ - lib/mycrm/attributes/address.rb
168
+ - lib/mycrm/attributes/date.rb
169
+ - lib/mycrm/attributes/deposit.rb
170
+ - lib/mycrm/attributes/name.rb
171
+ - lib/mycrm/attributes/organization.rb
172
+ - lib/mycrm/connectable.rb
173
+ - lib/mycrm/core_ext.rb
174
+ - lib/mycrm/core_ext/address.rb
175
+ - lib/mycrm/core_ext/hash.rb
176
+ - lib/mycrm/core_ext/string.rb
177
+ - lib/mycrm/domains.rb
178
+ - lib/mycrm/facade.rb
179
+ - lib/mycrm/facades.rb
180
+ - lib/mycrm/facades/lead.rb
181
+ - lib/mycrm/facades/lead_application.rb
182
+ - lib/mycrm/facades/organization.rb
183
+ - lib/mycrm/model.rb
184
+ - lib/mycrm/models.rb
185
+ - lib/mycrm/models/adviser.rb
186
+ - lib/mycrm/models/adviser_compliance_detail.rb
187
+ - lib/mycrm/models/adviser_note.rb
188
+ - lib/mycrm/models/application.rb
189
+ - lib/mycrm/models/client.rb
190
+ - lib/mycrm/models/lender.rb
191
+ - lib/mycrm/models/note.rb
192
+ - lib/mycrm/models/office.rb
193
+ - lib/mycrm/models/office_address.rb
194
+ - lib/mycrm/models/structure.rb
195
+ - lib/mycrm/resources/domains.yml
196
+ - lib/mycrm/version.rb
197
+ homepage: http://www.loanmarket.com.au
198
+ licenses:
199
+ - MIT
200
+ metadata: {}
201
+ post_install_message:
202
+ rdoc_options: []
203
+ require_paths:
204
+ - lib
205
+ required_ruby_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ required_rubygems_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ requirements: []
216
+ rubyforge_project:
217
+ rubygems_version: 2.5.2.2
218
+ signing_key:
219
+ specification_version: 4
220
+ summary: Summary of MyCRM Gem.
221
+ test_files: []