insightly2 0.1.4
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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/README.md +113 -0
- data/Rakefile +6 -0
- data/config/gem_secret.yml.example +1 -0
- data/insightly2.gemspec +29 -0
- data/lib/insightly2/client.rb +54 -0
- data/lib/insightly2/dsl/comments.rb +47 -0
- data/lib/insightly2/dsl/contacts.rb +130 -0
- data/lib/insightly2/dsl/countries.rb +12 -0
- data/lib/insightly2/dsl/currencies.rb +12 -0
- data/lib/insightly2/dsl/custom_fields.rb +22 -0
- data/lib/insightly2/dsl/emails.rb +57 -0
- data/lib/insightly2/dsl/events.rb +52 -0
- data/lib/insightly2/dsl/file_attachments.rb +14 -0
- data/lib/insightly2/dsl/file_categories.rb +52 -0
- data/lib/insightly2/dsl/notes.rb +85 -0
- data/lib/insightly2/dsl/opportunities.rb +134 -0
- data/lib/insightly2/dsl/opportunity_categories.rb +52 -0
- data/lib/insightly2/dsl/opportunity_state_reasons.rb +12 -0
- data/lib/insightly2/dsl/organisations.rb +128 -0
- data/lib/insightly2/dsl/pipeline_stages.rb +22 -0
- data/lib/insightly2/dsl/pipelines.rb +22 -0
- data/lib/insightly2/dsl/project_categories.rb +52 -0
- data/lib/insightly2/dsl/projects.rb +129 -0
- data/lib/insightly2/dsl/relationships.rb +12 -0
- data/lib/insightly2/dsl/tags.rb +15 -0
- data/lib/insightly2/dsl/task_categories.rb +52 -0
- data/lib/insightly2/dsl/tasks.rb +76 -0
- data/lib/insightly2/dsl/team_members.rb +53 -0
- data/lib/insightly2/dsl/teams.rb +53 -0
- data/lib/insightly2/dsl/users.rb +22 -0
- data/lib/insightly2/dsl.rb +65 -0
- data/lib/insightly2/errors/client_error.rb +10 -0
- data/lib/insightly2/errors/resource_not_found_error.rb +8 -0
- data/lib/insightly2/errors.rb +10 -0
- data/lib/insightly2/resources/comment.rb +10 -0
- data/lib/insightly2/resources/contact.rb +8 -0
- data/lib/insightly2/resources/country.rb +8 -0
- data/lib/insightly2/resources/currency.rb +8 -0
- data/lib/insightly2/resources/custom_field.rb +8 -0
- data/lib/insightly2/resources/email.rb +8 -0
- data/lib/insightly2/resources/event.rb +8 -0
- data/lib/insightly2/resources/file_attachment.rb +8 -0
- data/lib/insightly2/resources/file_category.rb +8 -0
- data/lib/insightly2/resources/note.rb +8 -0
- data/lib/insightly2/resources/object/attributes.rb +71 -0
- data/lib/insightly2/resources/object/serializers.rb +102 -0
- data/lib/insightly2/resources/object.rb +29 -0
- data/lib/insightly2/resources/opportunity.rb +8 -0
- data/lib/insightly2/resources/opportunity_category.rb +8 -0
- data/lib/insightly2/resources/opportunity_state_reason.rb +8 -0
- data/lib/insightly2/resources/organisation.rb +8 -0
- data/lib/insightly2/resources/pipeline.rb +8 -0
- data/lib/insightly2/resources/pipeline_stage.rb +8 -0
- data/lib/insightly2/resources/project.rb +8 -0
- data/lib/insightly2/resources/project_category.rb +8 -0
- data/lib/insightly2/resources/relationship.rb +8 -0
- data/lib/insightly2/resources/tag.rb +8 -0
- data/lib/insightly2/resources/task.rb +8 -0
- data/lib/insightly2/resources/task_category.rb +8 -0
- data/lib/insightly2/resources/team.rb +8 -0
- data/lib/insightly2/resources/team_member.rb +8 -0
- data/lib/insightly2/resources/user.rb +8 -0
- data/lib/insightly2/resources.rb +33 -0
- data/lib/insightly2/utils/url_helper.rb +17 -0
- data/lib/insightly2/utils.rb +8 -0
- data/lib/insightly2/version.rb +3 -0
- data/lib/insightly2.rb +22 -0
- data/spec/fixtures/vcr_cassettes/create_comment_attachment.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_contact.yml +47 -0
- data/spec/fixtures/vcr_cassettes/create_contact_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_email_comment.yml +47 -0
- data/spec/fixtures/vcr_cassettes/create_event.yml +95 -0
- data/spec/fixtures/vcr_cassettes/create_file_category.yml +89 -0
- data/spec/fixtures/vcr_cassettes/create_note.yml +95 -0
- data/spec/fixtures/vcr_cassettes/create_note_comment.yml +47 -0
- data/spec/fixtures/vcr_cassettes/create_note_file.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_opportunity.yml +98 -0
- data/spec/fixtures/vcr_cassettes/create_opportunity_category.yml +89 -0
- data/spec/fixtures/vcr_cassettes/create_opportunity_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_organisation.yml +116 -0
- data/spec/fixtures/vcr_cassettes/create_organisation_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_project.yml +106 -0
- data/spec/fixtures/vcr_cassettes/create_project_category.yml +89 -0
- data/spec/fixtures/vcr_cassettes/create_project_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/create_task.yml +98 -0
- data/spec/fixtures/vcr_cassettes/create_task_category.yml +89 -0
- data/spec/fixtures/vcr_cassettes/create_task_comment.yml +47 -0
- data/spec/fixtures/vcr_cassettes/create_team.yml +92 -0
- data/spec/fixtures/vcr_cassettes/create_team_member.yml +89 -0
- data/spec/fixtures/vcr_cassettes/delete_comment.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_contact.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_contact_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_email.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_event.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_file_category.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_note.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_opportunity.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_opportunity_category.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_opportunity_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_organisation.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_organisation_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_project.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_project_category.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_project_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_task.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_task_category.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_team.yml +42 -0
- data/spec/fixtures/vcr_cassettes/delete_team_member.yml +42 -0
- data/spec/fixtures/vcr_cassettes/get_comment.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_contact.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_contact_emails.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_contact_image.yml +44 -0
- data/spec/fixtures/vcr_cassettes/get_contact_notes.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_contact_tasks.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_contacts.yml +184 -0
- data/spec/fixtures/vcr_cassettes/get_countries.yml +85 -0
- data/spec/fixtures/vcr_cassettes/get_currencies.yml +124 -0
- data/spec/fixtures/vcr_cassettes/get_custom_field.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_custom_fields.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_email.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_email_comments.yml +49 -0
- data/spec/fixtures/vcr_cassettes/get_emails.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_event.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_events.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_file_attachment.yml +4057 -0
- data/spec/fixtures/vcr_cassettes/get_file_categories.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_file_category.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_note.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_note_comments.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_notes.yml +52 -0
- data/spec/fixtures/vcr_cassettes/get_opportunities.yml +81 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity.yml +49 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_categories.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_category.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_emails.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_image.yml +44 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_notes.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_state_history.yml +83 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_state_reasons.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_opportunity_tasks.yml +49 -0
- data/spec/fixtures/vcr_cassettes/get_organisation.yml +55 -0
- data/spec/fixtures/vcr_cassettes/get_organisation_emails.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_organisation_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/get_organisation_notes.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_organisation_tasks.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_organisations.yml +2092 -0
- data/spec/fixtures/vcr_cassettes/get_pipeline.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_pipeline_stage.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_pipeline_stages.yml +49 -0
- data/spec/fixtures/vcr_cassettes/get_pipelines.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_project.yml +52 -0
- data/spec/fixtures/vcr_cassettes/get_project_categories.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_project_category.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_project_emails.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_project_image.yml +44 -0
- data/spec/fixtures/vcr_cassettes/get_project_notes.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_project_tasks.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_projects.yml +52 -0
- data/spec/fixtures/vcr_cassettes/get_task.yml +49 -0
- data/spec/fixtures/vcr_cassettes/get_task_categories.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_task_category.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_task_comments.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_tasks.yml +148 -0
- data/spec/fixtures/vcr_cassettes/get_team.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_team_member.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_team_members.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_teams.yml +47 -0
- data/spec/fixtures/vcr_cassettes/get_user.yml +48 -0
- data/spec/fixtures/vcr_cassettes/get_users.yml +48 -0
- data/spec/fixtures/vcr_cassettes/update_comment.yml +97 -0
- data/spec/fixtures/vcr_cassettes/update_contact.yml +94 -0
- data/spec/fixtures/vcr_cassettes/update_contact_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/update_event.yml +97 -0
- data/spec/fixtures/vcr_cassettes/update_file_category.yml +91 -0
- data/spec/fixtures/vcr_cassettes/update_note.yml +100 -0
- data/spec/fixtures/vcr_cassettes/update_opportunity.yml +100 -0
- data/spec/fixtures/vcr_cassettes/update_opportunity_category.yml +91 -0
- data/spec/fixtures/vcr_cassettes/update_opportunity_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/update_organisation.yml +118 -0
- data/spec/fixtures/vcr_cassettes/update_organisation_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/update_project.yml +109 -0
- data/spec/fixtures/vcr_cassettes/update_project_category.yml +91 -0
- data/spec/fixtures/vcr_cassettes/update_project_image.yml +42 -0
- data/spec/fixtures/vcr_cassettes/update_task.yml +100 -0
- data/spec/fixtures/vcr_cassettes/update_task_category.yml +91 -0
- data/spec/fixtures/vcr_cassettes/update_team.yml +94 -0
- data/spec/fixtures/vcr_cassettes/update_team_member.yml +91 -0
- data/spec/fixtures/vcr_cassettes/z_insightly_client_status_check.yml +48 -0
- data/spec/insightly2/client_spec.rb +12 -0
- data/spec/insightly2/dsl/comments_spec.rb +45 -0
- data/spec/insightly2/dsl/contacts_spec.rb +130 -0
- data/spec/insightly2/dsl/countries_spec.rb +14 -0
- data/spec/insightly2/dsl/currencies_spec.rb +14 -0
- data/spec/insightly2/dsl/custom_fields_spec.rb +25 -0
- data/spec/insightly2/dsl/emails_spec.rb +56 -0
- data/spec/insightly2/dsl/events_spec.rb +55 -0
- data/spec/insightly2/dsl/file_attachments_spec.rb +15 -0
- data/spec/insightly2/dsl/file_categories_spec.rb +55 -0
- data/spec/insightly2/dsl/notes_spec.rb +86 -0
- data/spec/insightly2/dsl/opportunities_spec.rb +143 -0
- data/spec/insightly2/dsl/opportunity_categories_spec.rb +55 -0
- data/spec/insightly2/dsl/opportunity_state_reasons_spec.rb +14 -0
- data/spec/insightly2/dsl/organisations_spec.rb +131 -0
- data/spec/insightly2/dsl/pipeline_stages_spec.rb +25 -0
- data/spec/insightly2/dsl/pipelines_spec.rb +25 -0
- data/spec/insightly2/dsl/project_categories_spec.rb +55 -0
- data/spec/insightly2/dsl/projects_spec.rb +131 -0
- data/spec/insightly2/dsl/task_categories_spec.rb +55 -0
- data/spec/insightly2/dsl/tasks_spec.rb +75 -0
- data/spec/insightly2/dsl/team_members_spec.rb +56 -0
- data/spec/insightly2/dsl/teams_spec.rb +55 -0
- data/spec/insightly2/dsl/users_spec.rb +25 -0
- data/spec/insightly2/resources/comment_spec.rb +27 -0
- data/spec/insightly2/resources/contact_spec.rb +28 -0
- data/spec/insightly2/resources/custom_field_spec.rb +22 -0
- data/spec/insightly2/resources/email_spec.rb +29 -0
- data/spec/insightly2/resources/event_spec.rb +29 -0
- data/spec/insightly2/resources/file_attachment_spec.rb +31 -0
- data/spec/insightly2/resources/file_category_spec.rb +21 -0
- data/spec/insightly2/resources/note_spec.rb +29 -0
- data/spec/insightly2/resources/opportunity_category_spec.rb +21 -0
- data/spec/insightly2/resources/opportunity_spec.rb +30 -0
- data/spec/insightly2/resources/organisation_spec.rb +29 -0
- data/spec/insightly2/resources/pipeline_spec.rb +21 -0
- data/spec/insightly2/resources/pipeline_stage_spec.rb +21 -0
- data/spec/insightly2/resources/project_category_spec.rb +21 -0
- data/spec/insightly2/resources/project_spec.rb +30 -0
- data/spec/insightly2/resources/task_category_spec.rb +21 -0
- data/spec/insightly2/resources/task_spec.rb +32 -0
- data/spec/insightly2/resources/team_member_spec.rb +21 -0
- data/spec/insightly2/resources/team_spec.rb +27 -0
- data/spec/insightly2/resources/user_spec.rb +29 -0
- data/spec/insightly2_spec.rb +15 -0
- data/spec/spec_helper.rb +20 -0
- metadata +551 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::DSL::TaskCategories do
|
4
|
+
let(:task_category_id) { 1947437 }
|
5
|
+
|
6
|
+
# GET /v2.1/TaskCategories/{id}
|
7
|
+
describe '#get_task_category' do
|
8
|
+
it 'returns a task category' do
|
9
|
+
VCR.use_cassette('get_task_category') do
|
10
|
+
expect(Insightly2.client.get_task_category(id: task_category_id)).to be_a(TaskCategory)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# GET /v2.1/TaskCategories
|
16
|
+
describe '#get_task_categories' do
|
17
|
+
it 'returns an array of task_categories' do
|
18
|
+
VCR.use_cassette('get_task_categories') do
|
19
|
+
task_categories = Insightly2.client.get_task_categories
|
20
|
+
expect(task_categories).to be_a(Array)
|
21
|
+
expect(task_categories.first).to be_a(TaskCategory)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# POST /v2.1/TaskCategories
|
27
|
+
describe '#create_task_category' do
|
28
|
+
it 'creates and returns task_category' do
|
29
|
+
VCR.use_cassette('create_task_category') do
|
30
|
+
task_category = Insightly2.client.get_task_category(id: task_category_id)
|
31
|
+
expect(Insightly2.client.create_task_category(category: task_category)).to be_a(TaskCategory)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# PUT /v2.1/TaskCategories
|
37
|
+
describe '#update_task_category' do
|
38
|
+
it 'updates and returns task_category' do
|
39
|
+
VCR.use_cassette('update_task_category') do
|
40
|
+
task_category = Insightly2.client.get_task_category(id: task_category_id)
|
41
|
+
expect(Insightly2.client.update_task_category(category: task_category)).to be_a(TaskCategory)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# DELETE /v2.1/TaskCategories/{id}
|
47
|
+
describe '#delete_task_category' do
|
48
|
+
it 'returns a response with code 202' do
|
49
|
+
VCR.use_cassette('delete_task_category') do
|
50
|
+
response = Insightly2.client.delete_task_category(id: task_category_id)
|
51
|
+
expect(response.status).to eq(202)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::DSL::Tasks do
|
4
|
+
let(:task_id) { 14694323 }
|
5
|
+
|
6
|
+
# GET /v2.1/Tasks/{id}
|
7
|
+
describe '#get_task' do
|
8
|
+
it 'returns a task' do
|
9
|
+
VCR.use_cassette('get_task') do
|
10
|
+
expect(Insightly2.client.get_task(id: task_id)).to be_a(Task)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# GET /v2.1/Tasks?ids={ids}
|
16
|
+
describe '#get_tasks' do
|
17
|
+
it 'returns an array of tasks' do
|
18
|
+
VCR.use_cassette('get_tasks') do
|
19
|
+
tasks = Insightly2.client.get_tasks
|
20
|
+
expect(tasks).to be_a(Array)
|
21
|
+
expect(tasks.first).to be_a(Task)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# GET /v2.1/Tasks/{id}/Comments
|
27
|
+
describe '#get_comment_tasks' do
|
28
|
+
it 'returns an array of task comments' do
|
29
|
+
VCR.use_cassette('get_task_comments') do
|
30
|
+
comments = Insightly2.client.get_task_comments(id: task_id)
|
31
|
+
expect(comments).to be_a(Array)
|
32
|
+
expect(comments.first).to be_a(Comment)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# POST /v2.1/Tasks
|
38
|
+
describe '#create_task' do
|
39
|
+
it 'creates and returns task' do
|
40
|
+
VCR.use_cassette('create_task') do
|
41
|
+
task = Insightly2.client.get_task(id: task_id)
|
42
|
+
expect(Insightly2.client.create_task(task: task)).to be_a(Task)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# POST /v2.1/Tasks/{c_id}/Comments
|
48
|
+
describe '#create_task_comment' do
|
49
|
+
it 'creates and returns comment' do
|
50
|
+
VCR.use_cassette('create_task_comment') do
|
51
|
+
expect(Insightly2.client.create_task_comment(id: task_id, comment: {title: 'Sharknado'})).to be_a(Comment)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# PUT /v2.1/Tasks
|
57
|
+
describe '#update_task' do
|
58
|
+
it 'updates and returns task' do
|
59
|
+
VCR.use_cassette('update_task') do
|
60
|
+
task = Insightly2.client.get_task(id: task_id)
|
61
|
+
expect(Insightly2.client.update_task(task: task)).to be_a(Task)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# DELETE /v2.1/Tasks/{id}
|
67
|
+
describe '#delete_task' do
|
68
|
+
it 'returns a response with code 202' do
|
69
|
+
VCR.use_cassette('delete_task') do
|
70
|
+
response = Insightly2.client.delete_task(id: task_id)
|
71
|
+
expect(response.status).to eq(202)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::DSL::TeamMembers do
|
4
|
+
let(:team_member_id) { 5016224 }
|
5
|
+
let(:team_id) { 2063767 }
|
6
|
+
|
7
|
+
# GET /v2.1/TeamMembers/{id}
|
8
|
+
describe '#get_team_member' do
|
9
|
+
it 'returns a team member' do
|
10
|
+
VCR.use_cassette('get_team_member') do
|
11
|
+
expect(Insightly2.client.get_team_member(id: team_member_id)).to be_a(TeamMember)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# GET /v2.1/TeamMembers?teamid={teamid}
|
17
|
+
describe '#get_team_members' do
|
18
|
+
it 'returns an array of team_members' do
|
19
|
+
VCR.use_cassette('get_team_members') do
|
20
|
+
team_members = Insightly2.client.get_team_members(team_id: team_id)
|
21
|
+
expect(team_members).to be_a(Array)
|
22
|
+
expect(team_members.first).to be_a(TeamMember)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# POST /v2.1/TeamMembers
|
28
|
+
describe '#create_team_member' do
|
29
|
+
it 'creates and returns a team_member' do
|
30
|
+
VCR.use_cassette('create_team_member') do
|
31
|
+
team_member = Insightly2.client.get_team_member(id: team_member_id)
|
32
|
+
expect(Insightly2.client.create_team_member(team_member: team_member)).to be_a(TeamMember)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# PUT /v2.1/TeamMembers
|
38
|
+
describe '#update_team_member' do
|
39
|
+
it 'updates and returns a team_member' do
|
40
|
+
VCR.use_cassette('update_team_member') do
|
41
|
+
team_member = Insightly2.client.get_team_member(id: team_member_id)
|
42
|
+
expect(Insightly2.client.update_team_member(team_member: team_member)).to be_a(TeamMember)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# DELETE /v2.1/TeamMembers/{id}
|
48
|
+
describe '#delete_team_member' do
|
49
|
+
it 'returns a response with code 202' do
|
50
|
+
VCR.use_cassette('delete_team_member') do
|
51
|
+
response = Insightly2.client.delete_team_member(id: team_member_id)
|
52
|
+
expect(response.status).to eq(202)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::DSL::Teams do
|
4
|
+
let(:team_id) { 2063767 }
|
5
|
+
|
6
|
+
# GET /v2.1/Teams/{id}
|
7
|
+
describe '#get_team' do
|
8
|
+
it 'returns a team' do
|
9
|
+
VCR.use_cassette('get_team') do
|
10
|
+
expect(Insightly2.client.get_team(id: team_id)).to be_a(Team)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# GET /v2.1/Teams
|
16
|
+
describe '#get_teams' do
|
17
|
+
it 'returns an array of teams' do
|
18
|
+
VCR.use_cassette('get_teams') do
|
19
|
+
teams = Insightly2.client.get_teams
|
20
|
+
expect(teams).to be_a(Array)
|
21
|
+
expect(teams.first).to be_a(Team)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# POST /v2.1/Teams
|
27
|
+
describe '#create_team' do
|
28
|
+
it 'creates and returns a team' do
|
29
|
+
VCR.use_cassette('create_team') do
|
30
|
+
team = Insightly2.client.get_team(id: team_id)
|
31
|
+
expect(Insightly2.client.create_team(team: team)).to be_a(Team)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# PUT /v2.1/Teams
|
37
|
+
describe '#update_team' do
|
38
|
+
it 'updates and returns a team' do
|
39
|
+
VCR.use_cassette('update_team') do
|
40
|
+
team = Insightly2.client.get_team(id: team_id)
|
41
|
+
expect(Insightly2.client.update_team(team: team)).to be_a(Team)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# DELETE /v2.1/Teams/{id}
|
47
|
+
describe '#delete_team' do
|
48
|
+
it 'returns a response with code 202' do
|
49
|
+
VCR.use_cassette('delete_team') do
|
50
|
+
response = Insightly2.client.delete_team(id: team_id)
|
51
|
+
expect(response.status).to eq(202)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::DSL::Users do
|
4
|
+
let(:user_id) { 607181 }
|
5
|
+
|
6
|
+
# GET /v2.1/Users/{id}
|
7
|
+
describe '#get_user' do
|
8
|
+
it 'returns a user' do
|
9
|
+
VCR.use_cassette('get_user') do
|
10
|
+
expect(Insightly2.client.get_user(id: user_id)).to be_a(User)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# GET /v2.1/Users
|
16
|
+
describe '#get_users' do
|
17
|
+
it 'returns an array of users' do
|
18
|
+
VCR.use_cassette('get_users') do
|
19
|
+
users = Insightly2.client.get_users
|
20
|
+
expect(users).to be_a(Array)
|
21
|
+
expect(users.first).to be_a(User)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Comment do
|
4
|
+
subject(:comment) do
|
5
|
+
VCR.use_cassette('get_comment') do
|
6
|
+
Insightly2.client.get_comment(id: 3469515)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Comment object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(comment_id body owner_user_id file_attachments).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
22
|
+
it "deserialize attribute #{method} as time" do
|
23
|
+
expect(subject.public_send(method)).to be_a(Time)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Contact do
|
4
|
+
subject(:contact) do
|
5
|
+
VCR.use_cassette('get_contact') do
|
6
|
+
Insightly2.client.get_contact(id: 70653019)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Contact object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(contact_id salutation first_name last_name background image_url default_linked_organisation
|
16
|
+
visible_to visible_team_id visible_user_ids addresses contactinfos dates tags links contactlinks emaillinks).each do |method|
|
17
|
+
it "responds to #{method}" do
|
18
|
+
expect(subject).to respond_to(method)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
23
|
+
it "deserialize attribute #{method} as time" do
|
24
|
+
expect(subject.public_send(method)).to be_a(Time)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::CustomField do
|
4
|
+
subject(:custom_field) do
|
5
|
+
VCR.use_cassette('get_custom_field') do
|
6
|
+
Insightly2.client.get_custom_field(id: 'CONTACT_FIELD_1')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with CustomField object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(custom_field_id order_id field_for field_name field_type field_help_text
|
16
|
+
default_value group_id custom_field_options).each do |method|
|
17
|
+
it "responds to #{method}" do
|
18
|
+
expect(subject).to respond_to(method)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Email do
|
4
|
+
subject(:email) do
|
5
|
+
VCR.use_cassette('get_email') do
|
6
|
+
Insightly2.client.get_email(id: 17683283)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Email object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(email_id gmail_message_id email_date_utc email_from email_to email_cc subject body format size
|
16
|
+
owner_user_id date_created_utc visible_to visible_team_id visible_user_ids
|
17
|
+
file_attachments emaillinks).each do |method|
|
18
|
+
it "responds to #{method}" do
|
19
|
+
expect(subject).to respond_to(method)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
%w(date_created_utc).each do |method|
|
24
|
+
it "deserialize attribute #{method} as time" do
|
25
|
+
expect(subject.public_send(method)).to be_a(Time)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Event do
|
4
|
+
subject(:event) do
|
5
|
+
VCR.use_cassette('get_event') do
|
6
|
+
Insightly2.client.get_event(id: 2402366)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Event object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(event_id title location details start_date_utc end_date_utc all_day publicly_visible
|
16
|
+
reminder_date_utc reminder_sent eventlinks owner_user_id date_created_utc
|
17
|
+
date_updated_utc).each do |method|
|
18
|
+
it "responds to #{method}" do
|
19
|
+
expect(subject).to respond_to(method)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
24
|
+
it "deserialize attribute #{method} as time" do
|
25
|
+
expect(subject.public_send(method)).to be_a(Time)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::FileAttachment do
|
4
|
+
# TODO - I don't believe it's possible to get a file attachment
|
5
|
+
# in a parseable format directly from the file attachment end point.
|
6
|
+
# You have to extract it from another resources array of file attachment
|
7
|
+
# hashes. The deserializer can currently only accept a response object
|
8
|
+
# so it's not possible to pass a hash and get back a resource object
|
9
|
+
# which is what we want to do in this test.
|
10
|
+
|
11
|
+
# subject(:file_attachment) do
|
12
|
+
# VCR.use_cassette('get_email_comments') do
|
13
|
+
# comments = Insightly2.client.get_email_comments(id: 17683283)
|
14
|
+
# comment = comments.last
|
15
|
+
# file_attachment = comment['FILE_ATTACHMENTS'].last
|
16
|
+
# FileAttachment.parse(file_attachment)
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
|
20
|
+
# describe 'instance' do
|
21
|
+
# it 'is decorated with FileAttachment object' do
|
22
|
+
# expect(subject).to be_a(described_class)
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# %w(file_attachment_id).each do |method|
|
26
|
+
# it "responds to #{method}" do
|
27
|
+
# expect(subject).to respond_to(method)
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::FileCategory do
|
4
|
+
subject(:file_category) do
|
5
|
+
VCR.use_cassette('get_file_category') do
|
6
|
+
Insightly2.client.get_file_category(id: 1947439)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with FileCategory object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(category_id category_name active background_color).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Note do
|
4
|
+
subject(:note) do
|
5
|
+
VCR.use_cassette('get_note') do
|
6
|
+
Insightly2.client.get_note(id: 15377334)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Note object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(note_id title body link_subject_id link_subject_type owner_user_id date_created_utc
|
16
|
+
date_updated_utc visible_to visible_team_id visible_user_ids file_attachments
|
17
|
+
notelinks).each do |method|
|
18
|
+
it "responds to #{method}" do
|
19
|
+
expect(subject).to respond_to(method)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
24
|
+
it "deserialize attribute #{method} as time" do
|
25
|
+
expect(subject.public_send(method)).to be_a(Time)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::OpportunityCategory do
|
4
|
+
subject(:opportunity_category) do
|
5
|
+
VCR.use_cassette('get_opportunity_category') do
|
6
|
+
Insightly2.client.get_opportunity_category(id: 2175382)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with OpportunityCategory object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(category_id category_name active background_color).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Opportunity do
|
4
|
+
subject(:opportunity) do
|
5
|
+
VCR.use_cassette('get_opportunity') do
|
6
|
+
Insightly2.client.get_opportunity(id: 4070112)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Opportunity object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(opportunity_id opportunity_name opportunity_details probability bid_currency bid_amount
|
16
|
+
bid_type bid_duration forecast_close_date category_id pipeline_id stage_id opportunity_state
|
17
|
+
image_url responsible_user_id owner_user_id date_created_utc date_updated_utc visible_to
|
18
|
+
visible_team_id visible_user_ids customfields tags links emaillinks).each do |method|
|
19
|
+
it "responds to #{method}" do
|
20
|
+
expect(subject).to respond_to(method)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
25
|
+
it "deserialize attribute #{method} as time" do
|
26
|
+
expect(subject.public_send(method)).to be_a(Time)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Organisation do
|
4
|
+
subject(:organisation) do
|
5
|
+
VCR.use_cassette('get_organisation') do
|
6
|
+
Insightly2.client.get_organisation(id: 39831139)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Organisation object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(organisation_id organisation_name background image_url owner_user_id date_created_utc
|
16
|
+
date_updated_utc visible_to visible_team_id visible_user_ids customfields addresses
|
17
|
+
contactinfos dates tags links organisationlinks emaillinks).each do |method|
|
18
|
+
it "responds to #{method}" do
|
19
|
+
expect(subject).to respond_to(method)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
24
|
+
it "deserialize attribute #{method} as time" do
|
25
|
+
expect(subject.public_send(method)).to be_a(Time)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Pipeline do
|
4
|
+
subject(:pipeline) do
|
5
|
+
VCR.use_cassette('get_pipeline') do
|
6
|
+
Insightly2.client.get_pipeline(id: 124170)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Pipeline object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(pipeline_id pipeline_name for_opportunities for_projects owner_user_id).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::PipelineStage do
|
4
|
+
subject(:pipeline_stage) do
|
5
|
+
VCR.use_cassette('get_pipeline_stage') do
|
6
|
+
Insightly2.client.get_pipeline_stage(id: 377384)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with PipelineStage object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(pipeline_id stage_id stage_name stage_order owner_user_id).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::ProjectCategory do
|
4
|
+
subject(:project_category) do
|
5
|
+
VCR.use_cassette('get_project_category') do
|
6
|
+
Insightly2.client.get_project_category(id: 1947441)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with ProjectCategory object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(category_id category_name active background_color).each do |method|
|
16
|
+
it "responds to #{method}" do
|
17
|
+
expect(subject).to respond_to(method)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Insightly2::Resources::Project do
|
4
|
+
subject(:project) do
|
5
|
+
VCR.use_cassette('get_project') do
|
6
|
+
Insightly2.client.get_project(id: 1657941)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'instance' do
|
11
|
+
it 'is decorated with Project object' do
|
12
|
+
expect(subject).to be_a(described_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(project_id project_name status project_details opportunity_id started_date completed_date
|
16
|
+
image_url responsible_user_id owner_user_id date_created_utc date_updated_utc category_id
|
17
|
+
pipeline_id stage_id visible_to visible_team_id visible_user_ids customfields tags links
|
18
|
+
emaillinks).each do |method|
|
19
|
+
it "responds to #{method}" do
|
20
|
+
expect(subject).to respond_to(method)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
%w(date_created_utc date_updated_utc).each do |method|
|
25
|
+
it "deserialize attribute #{method} as time" do
|
26
|
+
expect(subject.public_send(method)).to be_a(Time)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|