Class: FastBound::Contact
- Inherits:
-
Base
- Object
- Base
- FastBound::Contact
show all
- Includes:
- API
- Defined in:
- lib/fastbound-ruby/contact.rb
Constant Summary
collapse
- CREATE_AND_EDIT_ATTRS =
{
permitted: i(
external_id ffl_number ffl_expires lookup_ffl license_name trade_name sotein sot_class business_type
organization_name first_name middle_name last_name premise_address_1 premise_address_2 premise_city
premise_county premise_state premise_zip_code premise_country phone_number fax email_address
).freeze,
required: i( ffl_number ffl_expires premise_address_1 premise_city premise_state premise_zip_code ).freeze
}
- CREATE_AND_EDIT_LICENSE_ATTRS =
{
permitted: i( type number expiration copy_on_file ).freeze,
required: i( type number ).freeze
}
- MERGE_ATTRS =
{
permitted: i( winning_contact_id losing_contact_id ).freeze,
required: i( winning_contact_id losing_contact_id ).freeze
}
- ENDPOINTS =
{
list: "contacts?%s".freeze,
create: "contacts".freeze,
edit: "contacts/%s".freeze,
fetch: "contacts/%s".freeze,
fetch_by_external_id: "contacts/getbyexternalid/%s".freeze,
delete: "contacts/%s".freeze,
merge: "contacts/merge".freeze,
create_license: "contacts/%s/licenses".freeze,
edit_license: "contacts/%s/licenses/%s".freeze,
fetch_license: "contacts/%s/licenses/%s".freeze,
delete_license: "contacts/%s/licenses/%s".freeze,
}
Constants included
from API
API::FILE_UPLOAD_ATTRS, API::ROOT_URL, API::USER_AGENT
Instance Method Summary
collapse
Methods included from API
#delete_request, #get_request, #post_file_request, #post_request, #put_request
Methods inherited from Base
requires!
Constructor Details
#initialize(client) ⇒ Contact
Returns a new instance of Contact.
41
42
43
|
# File 'lib/fastbound-ruby/contact.rb', line 41
def initialize(client)
@client = client
end
|
Instance Method Details
#create(contact_data) ⇒ Object
51
52
53
54
55
56
57
58
|
# File 'lib/fastbound-ruby/contact.rb', line 51
def create(contact_data)
requires!(contact_data, CREATE_AND_EDIT_ATTRS[:required])
endpoint = ENDPOINTS[:create]
contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS[:permitted])
post_request(@client, endpoint, contact_data)
end
|
#create_license(contact_id, license_data) ⇒ Object
94
95
96
97
98
99
100
101
|
# File 'lib/fastbound-ruby/contact.rb', line 94
def create_license(contact_id, license_data)
requires!(license_data, CREATE_AND_EDIT_LICENSE_ATTRS[:required])
endpoint = ENDPOINTS[:create_license] % contact_id
license_data = standardize_body_data(license_data, CREATE_AND_EDIT_LICENSE_ATTRS[:permitted])
post_request(@client, endpoint, license_data)
end
|
#delete(contact_id) ⇒ Object
79
80
81
82
83
|
# File 'lib/fastbound-ruby/contact.rb', line 79
def delete(contact_id)
endpoint = ENDPOINTS[:delete] % contact_id
delete_request(@client, endpoint)
end
|
#delete_license(contact_id, license_id) ⇒ Object
116
117
118
119
120
|
# File 'lib/fastbound-ruby/contact.rb', line 116
def delete_license(contact_id, license_id)
endpoint = ENDPOINTS[:delete_license] % [contact_id, license_id]
delete_request(@client, endpoint)
end
|
#edit(contact_id, contact_data) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/fastbound-ruby/contact.rb', line 60
def edit(contact_id, contact_data)
endpoint = ENDPOINTS[:edit] % contact_id
contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS[:permitted])
put_request(@client, endpoint, contact_data)
end
|
#edit_license(contact_id, license_data) ⇒ Object
103
104
105
106
107
108
|
# File 'lib/fastbound-ruby/contact.rb', line 103
def edit_license(contact_id, license_data)
endpoint = ENDPOINTS[:edit_license] % contact_id
license_data = standardize_body_data(license_data, CREATE_AND_EDIT_LICENSE_ATTRS[:permitted])
put_request(@client, endpoint, license_data)
end
|
#fetch(contact_id) ⇒ Object
67
68
69
70
71
|
# File 'lib/fastbound-ruby/contact.rb', line 67
def fetch(contact_id)
endpoint = ENDPOINTS[:fetch] % contact_id
get_request(@client, endpoint)
end
|
#fetch_by_external_id(external_id) ⇒ Object
73
74
75
76
77
|
# File 'lib/fastbound-ruby/contact.rb', line 73
def fetch_by_external_id(external_id)
endpoint = ENDPOINTS[:fetch_by_external_id] % external_id
get_request(@client, endpoint)
end
|
#fetch_license(contact_id, license_id) ⇒ Object
110
111
112
113
114
|
# File 'lib/fastbound-ruby/contact.rb', line 110
def fetch_license(contact_id, license_id)
endpoint = ENDPOINTS[:fetch_license] % [contact_id, license_id]
get_request(@client, endpoint)
end
|
#list(params = {}) ⇒ Object
45
46
47
48
49
|
# File 'lib/fastbound-ruby/contact.rb', line 45
def list(params = {})
endpoint = ENDPOINTS[:list] % convert_params_to_request_query(params)
get_request(@client, endpoint)
end
|
#merge(merge_data) ⇒ Object
85
86
87
88
89
90
91
92
|
# File 'lib/fastbound-ruby/contact.rb', line 85
def merge(merge_data)
requires!(merge_data, MERGE_ATTRS[:required])
endpoint = ENDPOINTS[:merge]
merge_data = standardize_body_data(merge_data, MERGE_ATTRS[:permitted])
post_request(@client, endpoint, merge_data)
end
|