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.
Files changed (240) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/README.md +113 -0
  7. data/Rakefile +6 -0
  8. data/config/gem_secret.yml.example +1 -0
  9. data/insightly2.gemspec +29 -0
  10. data/lib/insightly2/client.rb +54 -0
  11. data/lib/insightly2/dsl/comments.rb +47 -0
  12. data/lib/insightly2/dsl/contacts.rb +130 -0
  13. data/lib/insightly2/dsl/countries.rb +12 -0
  14. data/lib/insightly2/dsl/currencies.rb +12 -0
  15. data/lib/insightly2/dsl/custom_fields.rb +22 -0
  16. data/lib/insightly2/dsl/emails.rb +57 -0
  17. data/lib/insightly2/dsl/events.rb +52 -0
  18. data/lib/insightly2/dsl/file_attachments.rb +14 -0
  19. data/lib/insightly2/dsl/file_categories.rb +52 -0
  20. data/lib/insightly2/dsl/notes.rb +85 -0
  21. data/lib/insightly2/dsl/opportunities.rb +134 -0
  22. data/lib/insightly2/dsl/opportunity_categories.rb +52 -0
  23. data/lib/insightly2/dsl/opportunity_state_reasons.rb +12 -0
  24. data/lib/insightly2/dsl/organisations.rb +128 -0
  25. data/lib/insightly2/dsl/pipeline_stages.rb +22 -0
  26. data/lib/insightly2/dsl/pipelines.rb +22 -0
  27. data/lib/insightly2/dsl/project_categories.rb +52 -0
  28. data/lib/insightly2/dsl/projects.rb +129 -0
  29. data/lib/insightly2/dsl/relationships.rb +12 -0
  30. data/lib/insightly2/dsl/tags.rb +15 -0
  31. data/lib/insightly2/dsl/task_categories.rb +52 -0
  32. data/lib/insightly2/dsl/tasks.rb +76 -0
  33. data/lib/insightly2/dsl/team_members.rb +53 -0
  34. data/lib/insightly2/dsl/teams.rb +53 -0
  35. data/lib/insightly2/dsl/users.rb +22 -0
  36. data/lib/insightly2/dsl.rb +65 -0
  37. data/lib/insightly2/errors/client_error.rb +10 -0
  38. data/lib/insightly2/errors/resource_not_found_error.rb +8 -0
  39. data/lib/insightly2/errors.rb +10 -0
  40. data/lib/insightly2/resources/comment.rb +10 -0
  41. data/lib/insightly2/resources/contact.rb +8 -0
  42. data/lib/insightly2/resources/country.rb +8 -0
  43. data/lib/insightly2/resources/currency.rb +8 -0
  44. data/lib/insightly2/resources/custom_field.rb +8 -0
  45. data/lib/insightly2/resources/email.rb +8 -0
  46. data/lib/insightly2/resources/event.rb +8 -0
  47. data/lib/insightly2/resources/file_attachment.rb +8 -0
  48. data/lib/insightly2/resources/file_category.rb +8 -0
  49. data/lib/insightly2/resources/note.rb +8 -0
  50. data/lib/insightly2/resources/object/attributes.rb +71 -0
  51. data/lib/insightly2/resources/object/serializers.rb +102 -0
  52. data/lib/insightly2/resources/object.rb +29 -0
  53. data/lib/insightly2/resources/opportunity.rb +8 -0
  54. data/lib/insightly2/resources/opportunity_category.rb +8 -0
  55. data/lib/insightly2/resources/opportunity_state_reason.rb +8 -0
  56. data/lib/insightly2/resources/organisation.rb +8 -0
  57. data/lib/insightly2/resources/pipeline.rb +8 -0
  58. data/lib/insightly2/resources/pipeline_stage.rb +8 -0
  59. data/lib/insightly2/resources/project.rb +8 -0
  60. data/lib/insightly2/resources/project_category.rb +8 -0
  61. data/lib/insightly2/resources/relationship.rb +8 -0
  62. data/lib/insightly2/resources/tag.rb +8 -0
  63. data/lib/insightly2/resources/task.rb +8 -0
  64. data/lib/insightly2/resources/task_category.rb +8 -0
  65. data/lib/insightly2/resources/team.rb +8 -0
  66. data/lib/insightly2/resources/team_member.rb +8 -0
  67. data/lib/insightly2/resources/user.rb +8 -0
  68. data/lib/insightly2/resources.rb +33 -0
  69. data/lib/insightly2/utils/url_helper.rb +17 -0
  70. data/lib/insightly2/utils.rb +8 -0
  71. data/lib/insightly2/version.rb +3 -0
  72. data/lib/insightly2.rb +22 -0
  73. data/spec/fixtures/vcr_cassettes/create_comment_attachment.yml +42 -0
  74. data/spec/fixtures/vcr_cassettes/create_contact.yml +47 -0
  75. data/spec/fixtures/vcr_cassettes/create_contact_image.yml +42 -0
  76. data/spec/fixtures/vcr_cassettes/create_email_comment.yml +47 -0
  77. data/spec/fixtures/vcr_cassettes/create_event.yml +95 -0
  78. data/spec/fixtures/vcr_cassettes/create_file_category.yml +89 -0
  79. data/spec/fixtures/vcr_cassettes/create_note.yml +95 -0
  80. data/spec/fixtures/vcr_cassettes/create_note_comment.yml +47 -0
  81. data/spec/fixtures/vcr_cassettes/create_note_file.yml +42 -0
  82. data/spec/fixtures/vcr_cassettes/create_opportunity.yml +98 -0
  83. data/spec/fixtures/vcr_cassettes/create_opportunity_category.yml +89 -0
  84. data/spec/fixtures/vcr_cassettes/create_opportunity_image.yml +42 -0
  85. data/spec/fixtures/vcr_cassettes/create_organisation.yml +116 -0
  86. data/spec/fixtures/vcr_cassettes/create_organisation_image.yml +42 -0
  87. data/spec/fixtures/vcr_cassettes/create_project.yml +106 -0
  88. data/spec/fixtures/vcr_cassettes/create_project_category.yml +89 -0
  89. data/spec/fixtures/vcr_cassettes/create_project_image.yml +42 -0
  90. data/spec/fixtures/vcr_cassettes/create_task.yml +98 -0
  91. data/spec/fixtures/vcr_cassettes/create_task_category.yml +89 -0
  92. data/spec/fixtures/vcr_cassettes/create_task_comment.yml +47 -0
  93. data/spec/fixtures/vcr_cassettes/create_team.yml +92 -0
  94. data/spec/fixtures/vcr_cassettes/create_team_member.yml +89 -0
  95. data/spec/fixtures/vcr_cassettes/delete_comment.yml +42 -0
  96. data/spec/fixtures/vcr_cassettes/delete_contact.yml +42 -0
  97. data/spec/fixtures/vcr_cassettes/delete_contact_image.yml +42 -0
  98. data/spec/fixtures/vcr_cassettes/delete_email.yml +42 -0
  99. data/spec/fixtures/vcr_cassettes/delete_event.yml +42 -0
  100. data/spec/fixtures/vcr_cassettes/delete_file_category.yml +42 -0
  101. data/spec/fixtures/vcr_cassettes/delete_note.yml +42 -0
  102. data/spec/fixtures/vcr_cassettes/delete_opportunity.yml +42 -0
  103. data/spec/fixtures/vcr_cassettes/delete_opportunity_category.yml +42 -0
  104. data/spec/fixtures/vcr_cassettes/delete_opportunity_image.yml +42 -0
  105. data/spec/fixtures/vcr_cassettes/delete_organisation.yml +42 -0
  106. data/spec/fixtures/vcr_cassettes/delete_organisation_image.yml +42 -0
  107. data/spec/fixtures/vcr_cassettes/delete_project.yml +42 -0
  108. data/spec/fixtures/vcr_cassettes/delete_project_category.yml +42 -0
  109. data/spec/fixtures/vcr_cassettes/delete_project_image.yml +42 -0
  110. data/spec/fixtures/vcr_cassettes/delete_task.yml +42 -0
  111. data/spec/fixtures/vcr_cassettes/delete_task_category.yml +42 -0
  112. data/spec/fixtures/vcr_cassettes/delete_team.yml +42 -0
  113. data/spec/fixtures/vcr_cassettes/delete_team_member.yml +42 -0
  114. data/spec/fixtures/vcr_cassettes/get_comment.yml +47 -0
  115. data/spec/fixtures/vcr_cassettes/get_contact.yml +47 -0
  116. data/spec/fixtures/vcr_cassettes/get_contact_emails.yml +47 -0
  117. data/spec/fixtures/vcr_cassettes/get_contact_image.yml +44 -0
  118. data/spec/fixtures/vcr_cassettes/get_contact_notes.yml +48 -0
  119. data/spec/fixtures/vcr_cassettes/get_contact_tasks.yml +48 -0
  120. data/spec/fixtures/vcr_cassettes/get_contacts.yml +184 -0
  121. data/spec/fixtures/vcr_cassettes/get_countries.yml +85 -0
  122. data/spec/fixtures/vcr_cassettes/get_currencies.yml +124 -0
  123. data/spec/fixtures/vcr_cassettes/get_custom_field.yml +46 -0
  124. data/spec/fixtures/vcr_cassettes/get_custom_fields.yml +46 -0
  125. data/spec/fixtures/vcr_cassettes/get_email.yml +48 -0
  126. data/spec/fixtures/vcr_cassettes/get_email_comments.yml +49 -0
  127. data/spec/fixtures/vcr_cassettes/get_emails.yml +47 -0
  128. data/spec/fixtures/vcr_cassettes/get_event.yml +48 -0
  129. data/spec/fixtures/vcr_cassettes/get_events.yml +48 -0
  130. data/spec/fixtures/vcr_cassettes/get_file_attachment.yml +4057 -0
  131. data/spec/fixtures/vcr_cassettes/get_file_categories.yml +46 -0
  132. data/spec/fixtures/vcr_cassettes/get_file_category.yml +46 -0
  133. data/spec/fixtures/vcr_cassettes/get_note.yml +48 -0
  134. data/spec/fixtures/vcr_cassettes/get_note_comments.yml +48 -0
  135. data/spec/fixtures/vcr_cassettes/get_notes.yml +52 -0
  136. data/spec/fixtures/vcr_cassettes/get_opportunities.yml +81 -0
  137. data/spec/fixtures/vcr_cassettes/get_opportunity.yml +49 -0
  138. data/spec/fixtures/vcr_cassettes/get_opportunity_categories.yml +46 -0
  139. data/spec/fixtures/vcr_cassettes/get_opportunity_category.yml +46 -0
  140. data/spec/fixtures/vcr_cassettes/get_opportunity_emails.yml +48 -0
  141. data/spec/fixtures/vcr_cassettes/get_opportunity_image.yml +44 -0
  142. data/spec/fixtures/vcr_cassettes/get_opportunity_notes.yml +48 -0
  143. data/spec/fixtures/vcr_cassettes/get_opportunity_state_history.yml +83 -0
  144. data/spec/fixtures/vcr_cassettes/get_opportunity_state_reasons.yml +47 -0
  145. data/spec/fixtures/vcr_cassettes/get_opportunity_tasks.yml +49 -0
  146. data/spec/fixtures/vcr_cassettes/get_organisation.yml +55 -0
  147. data/spec/fixtures/vcr_cassettes/get_organisation_emails.yml +48 -0
  148. data/spec/fixtures/vcr_cassettes/get_organisation_image.yml +42 -0
  149. data/spec/fixtures/vcr_cassettes/get_organisation_notes.yml +47 -0
  150. data/spec/fixtures/vcr_cassettes/get_organisation_tasks.yml +48 -0
  151. data/spec/fixtures/vcr_cassettes/get_organisations.yml +2092 -0
  152. data/spec/fixtures/vcr_cassettes/get_pipeline.yml +46 -0
  153. data/spec/fixtures/vcr_cassettes/get_pipeline_stage.yml +46 -0
  154. data/spec/fixtures/vcr_cassettes/get_pipeline_stages.yml +49 -0
  155. data/spec/fixtures/vcr_cassettes/get_pipelines.yml +46 -0
  156. data/spec/fixtures/vcr_cassettes/get_project.yml +52 -0
  157. data/spec/fixtures/vcr_cassettes/get_project_categories.yml +46 -0
  158. data/spec/fixtures/vcr_cassettes/get_project_category.yml +46 -0
  159. data/spec/fixtures/vcr_cassettes/get_project_emails.yml +48 -0
  160. data/spec/fixtures/vcr_cassettes/get_project_image.yml +44 -0
  161. data/spec/fixtures/vcr_cassettes/get_project_notes.yml +47 -0
  162. data/spec/fixtures/vcr_cassettes/get_project_tasks.yml +48 -0
  163. data/spec/fixtures/vcr_cassettes/get_projects.yml +52 -0
  164. data/spec/fixtures/vcr_cassettes/get_task.yml +49 -0
  165. data/spec/fixtures/vcr_cassettes/get_task_categories.yml +47 -0
  166. data/spec/fixtures/vcr_cassettes/get_task_category.yml +46 -0
  167. data/spec/fixtures/vcr_cassettes/get_task_comments.yml +47 -0
  168. data/spec/fixtures/vcr_cassettes/get_tasks.yml +148 -0
  169. data/spec/fixtures/vcr_cassettes/get_team.yml +47 -0
  170. data/spec/fixtures/vcr_cassettes/get_team_member.yml +46 -0
  171. data/spec/fixtures/vcr_cassettes/get_team_members.yml +46 -0
  172. data/spec/fixtures/vcr_cassettes/get_teams.yml +47 -0
  173. data/spec/fixtures/vcr_cassettes/get_user.yml +48 -0
  174. data/spec/fixtures/vcr_cassettes/get_users.yml +48 -0
  175. data/spec/fixtures/vcr_cassettes/update_comment.yml +97 -0
  176. data/spec/fixtures/vcr_cassettes/update_contact.yml +94 -0
  177. data/spec/fixtures/vcr_cassettes/update_contact_image.yml +42 -0
  178. data/spec/fixtures/vcr_cassettes/update_event.yml +97 -0
  179. data/spec/fixtures/vcr_cassettes/update_file_category.yml +91 -0
  180. data/spec/fixtures/vcr_cassettes/update_note.yml +100 -0
  181. data/spec/fixtures/vcr_cassettes/update_opportunity.yml +100 -0
  182. data/spec/fixtures/vcr_cassettes/update_opportunity_category.yml +91 -0
  183. data/spec/fixtures/vcr_cassettes/update_opportunity_image.yml +42 -0
  184. data/spec/fixtures/vcr_cassettes/update_organisation.yml +118 -0
  185. data/spec/fixtures/vcr_cassettes/update_organisation_image.yml +42 -0
  186. data/spec/fixtures/vcr_cassettes/update_project.yml +109 -0
  187. data/spec/fixtures/vcr_cassettes/update_project_category.yml +91 -0
  188. data/spec/fixtures/vcr_cassettes/update_project_image.yml +42 -0
  189. data/spec/fixtures/vcr_cassettes/update_task.yml +100 -0
  190. data/spec/fixtures/vcr_cassettes/update_task_category.yml +91 -0
  191. data/spec/fixtures/vcr_cassettes/update_team.yml +94 -0
  192. data/spec/fixtures/vcr_cassettes/update_team_member.yml +91 -0
  193. data/spec/fixtures/vcr_cassettes/z_insightly_client_status_check.yml +48 -0
  194. data/spec/insightly2/client_spec.rb +12 -0
  195. data/spec/insightly2/dsl/comments_spec.rb +45 -0
  196. data/spec/insightly2/dsl/contacts_spec.rb +130 -0
  197. data/spec/insightly2/dsl/countries_spec.rb +14 -0
  198. data/spec/insightly2/dsl/currencies_spec.rb +14 -0
  199. data/spec/insightly2/dsl/custom_fields_spec.rb +25 -0
  200. data/spec/insightly2/dsl/emails_spec.rb +56 -0
  201. data/spec/insightly2/dsl/events_spec.rb +55 -0
  202. data/spec/insightly2/dsl/file_attachments_spec.rb +15 -0
  203. data/spec/insightly2/dsl/file_categories_spec.rb +55 -0
  204. data/spec/insightly2/dsl/notes_spec.rb +86 -0
  205. data/spec/insightly2/dsl/opportunities_spec.rb +143 -0
  206. data/spec/insightly2/dsl/opportunity_categories_spec.rb +55 -0
  207. data/spec/insightly2/dsl/opportunity_state_reasons_spec.rb +14 -0
  208. data/spec/insightly2/dsl/organisations_spec.rb +131 -0
  209. data/spec/insightly2/dsl/pipeline_stages_spec.rb +25 -0
  210. data/spec/insightly2/dsl/pipelines_spec.rb +25 -0
  211. data/spec/insightly2/dsl/project_categories_spec.rb +55 -0
  212. data/spec/insightly2/dsl/projects_spec.rb +131 -0
  213. data/spec/insightly2/dsl/task_categories_spec.rb +55 -0
  214. data/spec/insightly2/dsl/tasks_spec.rb +75 -0
  215. data/spec/insightly2/dsl/team_members_spec.rb +56 -0
  216. data/spec/insightly2/dsl/teams_spec.rb +55 -0
  217. data/spec/insightly2/dsl/users_spec.rb +25 -0
  218. data/spec/insightly2/resources/comment_spec.rb +27 -0
  219. data/spec/insightly2/resources/contact_spec.rb +28 -0
  220. data/spec/insightly2/resources/custom_field_spec.rb +22 -0
  221. data/spec/insightly2/resources/email_spec.rb +29 -0
  222. data/spec/insightly2/resources/event_spec.rb +29 -0
  223. data/spec/insightly2/resources/file_attachment_spec.rb +31 -0
  224. data/spec/insightly2/resources/file_category_spec.rb +21 -0
  225. data/spec/insightly2/resources/note_spec.rb +29 -0
  226. data/spec/insightly2/resources/opportunity_category_spec.rb +21 -0
  227. data/spec/insightly2/resources/opportunity_spec.rb +30 -0
  228. data/spec/insightly2/resources/organisation_spec.rb +29 -0
  229. data/spec/insightly2/resources/pipeline_spec.rb +21 -0
  230. data/spec/insightly2/resources/pipeline_stage_spec.rb +21 -0
  231. data/spec/insightly2/resources/project_category_spec.rb +21 -0
  232. data/spec/insightly2/resources/project_spec.rb +30 -0
  233. data/spec/insightly2/resources/task_category_spec.rb +21 -0
  234. data/spec/insightly2/resources/task_spec.rb +32 -0
  235. data/spec/insightly2/resources/team_member_spec.rb +21 -0
  236. data/spec/insightly2/resources/team_spec.rb +27 -0
  237. data/spec/insightly2/resources/user_spec.rb +29 -0
  238. data/spec/insightly2_spec.rb +15 -0
  239. data/spec/spec_helper.rb +20 -0
  240. metadata +551 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<INSIGHTLY_API_KEY>:@api.insight.ly/v2.1/Teams/2063767
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept:
13
+ - application/json
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Expires:
30
+ - "-1"
31
+ Vary:
32
+ - Accept-Encoding
33
+ Server:
34
+ - Microsoft-IIS/7.5
35
+ Date:
36
+ - Sun, 05 Oct 2014 17:47:15 GMT
37
+ Content-Length:
38
+ - '250'
39
+ Set-Cookie:
40
+ - snaptid=sac1prdc01ut05; path=/
41
+ body:
42
+ encoding: UTF-8
43
+ string: '{"TEAM_ID":2063767,"TEAM_NAME":"Team Cobra","ANONYMOUS_TEAM":false,"DATE_CREATED_UTC":"2014-10-05
44
+ 17:31:29","DATE_UPDATED_UTC":"2014-10-05 17:31:29","TEAMMEMBERS":[]}'
45
+ http_version:
46
+ recorded_at: Sun, 05 Oct 2014 17:47:07 GMT
47
+ - request:
48
+ method: put
49
+ uri: https://<INSIGHTLY_API_KEY>:@api.insight.ly/v2.1/Teams
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"TEAM_ID":2063767,"TEAM_NAME":"Team Cobra","ANONYMOUS_TEAM":false,"DATE_CREATED_UTC":"2014-10-05
53
+ 17:31:29","DATE_UPDATED_UTC":"2014-10-05 17:31:29","TEAMMEMBERS":[]}'
54
+ headers:
55
+ User-Agent:
56
+ - Faraday v0.9.0
57
+ Accept:
58
+ - application/json
59
+ Content-Type:
60
+ - application/json
61
+ Accept-Encoding:
62
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
63
+ response:
64
+ status:
65
+ code: 200
66
+ message: OK
67
+ headers:
68
+ Cache-Control:
69
+ - no-cache
70
+ Pragma:
71
+ - no-cache
72
+ Content-Type:
73
+ - application/json; charset=utf-8
74
+ Expires:
75
+ - "-1"
76
+ Location:
77
+ - https://api.insight.ly/v2.1/Teams/2063767
78
+ Vary:
79
+ - Accept-Encoding
80
+ Server:
81
+ - Microsoft-IIS/7.5
82
+ Date:
83
+ - Sun, 05 Oct 2014 17:47:15 GMT
84
+ Content-Length:
85
+ - '250'
86
+ Set-Cookie:
87
+ - snaptid=sac1prdc01ut04; path=/
88
+ body:
89
+ encoding: UTF-8
90
+ string: '{"TEAM_ID":2063767,"TEAM_NAME":"Team Cobra","ANONYMOUS_TEAM":false,"DATE_CREATED_UTC":"2014-10-05
91
+ 17:31:29","DATE_UPDATED_UTC":"2014-10-05 17:31:29","TEAMMEMBERS":[]}'
92
+ http_version:
93
+ recorded_at: Sun, 05 Oct 2014 17:47:08 GMT
94
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<INSIGHTLY_API_KEY>:@api.insight.ly/v2.1/TeamMembers/5016224
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept:
13
+ - application/json
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Expires:
30
+ - "-1"
31
+ Vary:
32
+ - Accept-Encoding
33
+ Server:
34
+ - Microsoft-IIS/7.5
35
+ Date:
36
+ - Sun, 05 Oct 2014 17:37:38 GMT
37
+ Content-Length:
38
+ - '194'
39
+ Set-Cookie:
40
+ - snaptid=sac1prdc01ut05; path=/
41
+ body:
42
+ encoding: UTF-8
43
+ string: '{"PERMISSION_ID":5016224,"TEAM_ID":2063767,"MEMBER_USER_ID":607181,"MEMBER_TEAM_ID":null}'
44
+ http_version:
45
+ recorded_at: Sun, 05 Oct 2014 17:37:31 GMT
46
+ - request:
47
+ method: put
48
+ uri: https://<INSIGHTLY_API_KEY>:@api.insight.ly/v2.1/TeamMembers
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"PERMISSION_ID":5016224,"TEAM_ID":2063767,"MEMBER_USER_ID":607181,"MEMBER_TEAM_ID":null}'
52
+ headers:
53
+ User-Agent:
54
+ - Faraday v0.9.0
55
+ Accept:
56
+ - application/json
57
+ Content-Type:
58
+ - application/json
59
+ Accept-Encoding:
60
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
61
+ response:
62
+ status:
63
+ code: 200
64
+ message: OK
65
+ headers:
66
+ Cache-Control:
67
+ - no-cache
68
+ Pragma:
69
+ - no-cache
70
+ Content-Type:
71
+ - application/json; charset=utf-8
72
+ Expires:
73
+ - "-1"
74
+ Location:
75
+ - https://api.insight.ly/v2.1/TeamMembers/5016224
76
+ Vary:
77
+ - Accept-Encoding
78
+ Server:
79
+ - Microsoft-IIS/7.5
80
+ Date:
81
+ - Sun, 05 Oct 2014 17:37:38 GMT
82
+ Content-Length:
83
+ - '194'
84
+ Set-Cookie:
85
+ - snaptid=sac1prdc01ut05; path=/
86
+ body:
87
+ encoding: UTF-8
88
+ string: '{"PERMISSION_ID":5016224,"TEAM_ID":2063767,"MEMBER_USER_ID":607181,"MEMBER_TEAM_ID":null}'
89
+ http_version:
90
+ recorded_at: Sun, 05 Oct 2014 17:37:31 GMT
91
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<INSIGHTLY_API_KEY>:@api.insight.ly/v2.1/Users
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept:
13
+ - application/json
14
+ Content-Type:
15
+ - application/json
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Expires:
30
+ - "-1"
31
+ Vary:
32
+ - Accept-Encoding
33
+ Server:
34
+ - Microsoft-IIS/7.5
35
+ Date:
36
+ - Sun, 05 Oct 2014 18:54:33 GMT
37
+ Content-Length:
38
+ - '483'
39
+ Set-Cookie:
40
+ - snaptid=sac1prdc01ut03; path=/
41
+ body:
42
+ encoding: UTF-8
43
+ string: '[{"USER_ID":607181,"CONTACT_ID":70408796,"FIRST_NAME":"Science","LAST_NAME":"Exchange","TIMEZONE_ID":"Central
44
+ Standard Time","EMAIL_ADDRESS":"apps@scienceexchange.com","EMAIL_DROPBOX_IDENTIFIER":"5MMXB7","ADMINISTRATOR":true,"ACCOUNT_OWNER":false,"ACTIVE":true,"DATE_CREATED_UTC":"2014-07-30
45
+ 02:57:06","DATE_UPDATED_UTC":"2014-07-31 17:15:51","USER_CURRENCY":"USD","CONTACT_DISPLAY":"FirstLast","CONTACT_ORDER":"FirstLast","TASK_WEEK_START":2,"INSTANCE_ID":339351}]'
46
+ http_version:
47
+ recorded_at: Sun, 05 Oct 2014 18:54:26 GMT
48
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Client do
4
+ subject(:client) { Insightly2::Client.new }
5
+
6
+ it 'makes request to api.insight.ly' do
7
+ VCR.use_cassette('z_insightly_client_status_check') do
8
+ response = client.request(:get, 'Users')
9
+ expect(response.status).to eq(200)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::Comments do
4
+ let(:comment_id) { 3469515 }
5
+
6
+ # GET /v2.1/Comments/{id}
7
+ describe '#get_comment' do
8
+ it 'returns a comment' do
9
+ VCR.use_cassette('get_comment') do
10
+ expect(Insightly2.client.get_comment(id: comment_id)).to be_a(Comment)
11
+ end
12
+ end
13
+ end
14
+
15
+ # POST /v2.1/Comments?c_id={c_id}&filename={filename}
16
+ describe '#create_comment_attachment' do
17
+ it 'returns a response with code 201' do
18
+ VCR.use_cassette('create_comment_attachment') do
19
+ response = Insightly2.client.create_comment_attachment(id: comment_id, filename: '1.jpg')
20
+ expect(response.status).to eq(201)
21
+ end
22
+ end
23
+ end
24
+
25
+ # PUT /v2.1/Comments
26
+ describe '#update_comment' do
27
+ it 'updates a comment' do
28
+ VCR.use_cassette('update_comment') do
29
+ comment = Insightly2.client.get_comment(id: comment_id)
30
+ response = Insightly2.client.update_comment(comment: comment)
31
+ expect(response).to be_a(Comment)
32
+ end
33
+ end
34
+ end
35
+
36
+ # DELETE /v2.1/Comments/{id}
37
+ describe '#delete_comment' do
38
+ it 'returns a response with code 202' do
39
+ VCR.use_cassette('delete_comment') do
40
+ response = Insightly2.client.delete_comment(id: comment_id)
41
+ expect(response.status).to eq(202)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,130 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::Contacts do
4
+ let(:contact_id) { 70653019 }
5
+
6
+ # GET /v2.1/Contacts/{id}
7
+ describe '#get_contact' do
8
+ it 'returns a contact' do
9
+ VCR.use_cassette('get_contact') do
10
+ expect(Insightly2.client.get_contact(id: contact_id)).to be_a(Contact)
11
+ end
12
+ end
13
+ end
14
+
15
+ # GET /v2.1/Contacts/{c_id}/Emails
16
+ describe '#get_contact_emails' do
17
+ it 'returns a contacts emails' do
18
+ VCR.use_cassette('get_contact_emails') do
19
+ emails = Insightly2.client.get_contact_emails(id: contact_id)
20
+ expect(emails).to be_a(Array)
21
+ expect(emails.first).to be_a(Email)
22
+ end
23
+ end
24
+ end
25
+
26
+ # GET /v2.1/Contacts/{c_id}/Notes
27
+ describe '#get_contact_notes' do
28
+ it 'returns a contacts notes' do
29
+ VCR.use_cassette('get_contact_notes') do
30
+ notes = Insightly2.client.get_contact_notes(id: contact_id)
31
+ expect(notes).to be_a(Array)
32
+ expect(notes.first).to be_a(Note)
33
+ end
34
+ end
35
+ end
36
+
37
+ # GET /v2.1/Contacts/{c_id}/Tasks
38
+ describe '#get_contact_tasks' do
39
+ it 'returns a contacts tasks' do
40
+ VCR.use_cassette('get_contact_tasks') do
41
+ tasks = Insightly2.client.get_contact_tasks(id: contact_id)
42
+ expect(tasks).to be_a(Array)
43
+ expect(tasks.first).to be_a(Task)
44
+ end
45
+ end
46
+ end
47
+
48
+ # GET /v2.1/Contacts/{c_id}/Image
49
+ # describe '#get_contact_image' do
50
+ # it 'returns a contacts image' do
51
+ # VCR.use_cassette('get_contact_image') do
52
+ # response = Insightly2.client.get_contact_image(id: contact_id)
53
+ # # expect(response.status).to eq(200)
54
+ # # TODO - Insightly2 server error with default contact image they should fix this.
55
+ # end
56
+ # end
57
+ # end
58
+
59
+ # GET /v2.1/Contacts?ids={ids}&email={email}&tag={tag}
60
+ describe '#get_contacts' do
61
+ it 'returns an array of contacts' do
62
+ VCR.use_cassette('get_contacts') do
63
+ contacts = Insightly2.client.get_contacts
64
+ expect(contacts).to be_a(Array)
65
+ expect(contacts.first).to be_a(Contact)
66
+ end
67
+ end
68
+ end
69
+
70
+ # POST /v2.1/Contacts
71
+ describe '#create_contact' do
72
+ it 'creates and returns contact' do
73
+ VCR.use_cassette('create_contact') do
74
+ expect(Insightly2.client.create_contact(contact: {first_name: 'Shark', last_name: 'Nado'})).to be_a(Contact)
75
+ end
76
+ end
77
+ end
78
+
79
+ # POST /v2.1/Contacts/{c_id}/Image/{filename}
80
+ # describe '#create_contact_image' do
81
+ # it 'returns a response with code 201' do
82
+ # VCR.use_cassette('create_contact_image') do
83
+ # response = Insightly2.client.create_contact_image(id: contact_id, filename: '1.jpg')
84
+ # # expect(response.status).to eq(201)
85
+ # # TODO - Can't add image. Not sure why.
86
+ # end
87
+ # end
88
+ # end
89
+
90
+ # PUT /v2.1/Contacts
91
+ describe '#update_contact' do
92
+ it 'updates and returns contact' do
93
+ VCR.use_cassette('update_contact') do
94
+ contact = Insightly2.client.get_contact(id: contact_id)
95
+ expect(Insightly2.client.update_contact(contact: contact)).to be_a(Contact)
96
+ end
97
+ end
98
+ end
99
+
100
+ # PUT /v2.1/Contacts/{c_id}/Image/{filename}
101
+ # describe '#update_contact_image' do
102
+ # it 'returns a response with code 201' do
103
+ # VCR.use_cassette('update_contact_image') do
104
+ # response = Insightly2.client.update_contact_image(id: contact_id, filename: '1.jpg')
105
+ # # expect(response.status).to eq(201)
106
+ # # TODO - Can't update image. Not sure why.
107
+ # end
108
+ # end
109
+ # end
110
+
111
+ # DELETE /v2.1/Contacts/{id}
112
+ describe '#delete_contact' do
113
+ it 'returns a response with code 202' do
114
+ VCR.use_cassette('delete_contact') do
115
+ response = Insightly2.client.delete_contact(id: contact_id)
116
+ expect(response.status).to eq(202)
117
+ end
118
+ end
119
+ end
120
+
121
+ # DELETE /v2.1/Contacts/{c_id}/Image
122
+ describe '#delete_contact_image' do
123
+ it 'returns a response with code 202' do
124
+ VCR.use_cassette('delete_contact_image') do
125
+ response = Insightly2.client.delete_contact_image(id: contact_id)
126
+ expect(response.status).to eq(202)
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::Countries do
4
+ # GET /v2.1/Countries
5
+ describe '#get_countries' do
6
+ it 'returns an array of countries' do
7
+ VCR.use_cassette('get_countries') do
8
+ countries = Insightly2.client.get_countries
9
+ expect(countries).to be_a(Array)
10
+ expect(countries.first).to be_a(Country)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::Countries do
4
+ # GET /v2.1/Currencies
5
+ describe '#get_currencies' do
6
+ it 'returns an array of currencies' do
7
+ VCR.use_cassette('get_currencies') do
8
+ currencies = Insightly2.client.get_currencies
9
+ expect(currencies).to be_a(Array)
10
+ expect(currencies.first).to be_a(Currency)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::CustomFields do
4
+ let(:custom_field_id) { 'CONTACT_FIELD_1' }
5
+
6
+ # GET /v2.1/CustomFields/{id}
7
+ describe '#get_custom_field' do
8
+ it 'returns a custom field' do
9
+ VCR.use_cassette('get_custom_field') do
10
+ expect(Insightly2.client.get_custom_field(id: custom_field_id)).to be_a(CustomField)
11
+ end
12
+ end
13
+ end
14
+
15
+ # GET /v2.1/CustomFields
16
+ describe '#get_custom_fields' do
17
+ it 'returns an array of custom fields' do
18
+ VCR.use_cassette('get_custom_fields') do
19
+ custom_fields = Insightly2.client.get_custom_fields
20
+ expect(custom_fields).to be_a(Array)
21
+ expect(custom_fields.first).to be_a(CustomField)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::Emails do
4
+ let(:email_id) { 17683283 }
5
+
6
+ # GET /v2.1/Emails/{id}
7
+ describe '#get_email' do
8
+ it 'returns an email' do
9
+ VCR.use_cassette('get_email') do
10
+ expect(Insightly2.client.get_email(id: email_id)).to be_a(Email)
11
+ end
12
+ end
13
+ end
14
+
15
+ # GET /v2.1/Emails?ids={ids}&tag={tag}
16
+ describe '#get_emails' do
17
+ it 'returns an array of emails' do
18
+ VCR.use_cassette('get_emails') do
19
+ emails = Insightly2.client.get_emails
20
+ expect(emails).to be_a(Array)
21
+ expect(emails.first).to be_a(Email)
22
+ end
23
+ end
24
+ end
25
+
26
+ # GET /v2.1/Emails/{c_id}/Comments
27
+ describe '#get_email_comments' do
28
+ it 'returns an array of comments' do
29
+ VCR.use_cassette('get_email_comments') do
30
+ comments = Insightly2.client.get_email_comments(id: email_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/Emails/{c_id}/Comments
38
+ describe '#create_email_comment' do
39
+ it 'returns a response with code 201' do
40
+ VCR.use_cassette('create_email_comment') do
41
+ response = Insightly2.client.create_email_comment(id: email_id, comment: {title: 'Sharknado'})
42
+ expect(response.status).to eq(201)
43
+ end
44
+ end
45
+ end
46
+
47
+ # DELETE /v2.1/Emails/{id}
48
+ describe '#delete_email' do
49
+ it 'returns a response with code 202' do
50
+ VCR.use_cassette('delete_email') do
51
+ response = Insightly2.client.delete_email(id: email_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::Events do
4
+ let(:event_id) { 2402366 }
5
+
6
+ # GET /v2.1/Events/{id}
7
+ describe '#get_event' do
8
+ it 'returns an event' do
9
+ VCR.use_cassette('get_event') do
10
+ expect(Insightly2.client.get_event(id: event_id)).to be_a(Event)
11
+ end
12
+ end
13
+ end
14
+
15
+ # GET /v2.1/Events
16
+ describe '#get_events' do
17
+ it 'returns an array of events' do
18
+ VCR.use_cassette('get_events') do
19
+ events = Insightly2.client.get_events
20
+ expect(events).to be_a(Array)
21
+ expect(events.first).to be_a(Event)
22
+ end
23
+ end
24
+ end
25
+
26
+ # POST /v2.1/Events
27
+ describe '#create_event' do
28
+ it 'creates and returns event' do
29
+ VCR.use_cassette('create_event') do
30
+ event = Insightly2.client.get_event(id: event_id)
31
+ expect(Insightly2.client.create_event(event: event)).to be_a(Event)
32
+ end
33
+ end
34
+ end
35
+
36
+ # PUT /v2.1/Events
37
+ describe '#update_event' do
38
+ it 'updates and returns event' do
39
+ VCR.use_cassette('update_event') do
40
+ event = Insightly2.client.get_event(id: event_id)
41
+ expect(Insightly2.client.update_event(event: event)).to be_a(Event)
42
+ end
43
+ end
44
+ end
45
+
46
+ # DELETE /v2.1/Events/{id}
47
+ describe '#delete_event' do
48
+ it 'returns a response with code 202' do
49
+ VCR.use_cassette('delete_event') do
50
+ response = Insightly2.client.delete_event(id: event_id)
51
+ expect(response.status).to eq(202)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::FileAttachments do
4
+ let(:file_attachment_id) { 33105536 }
5
+
6
+ # GET /v2.1/FileAttachments/{id}
7
+ describe '#get_file_attachment' do
8
+ it 'returns a response with code 200' do
9
+ VCR.use_cassette('get_file_attachment') do
10
+ response = Insightly2.client.get_file_attachment(id: file_attachment_id)
11
+ expect(response.status).to eq(200)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::DSL::FileCategories do
4
+ let(:file_category_id) { 1947439 }
5
+
6
+ # GET /v2.1/FileCategories/{id}
7
+ describe '#get_file_category' do
8
+ it 'returns a file category' do
9
+ VCR.use_cassette('get_file_category') do
10
+ expect(Insightly2.client.get_file_category(id: file_category_id)).to be_a(FileCategory)
11
+ end
12
+ end
13
+ end
14
+
15
+ # GET /v2.1/FileCategories
16
+ describe '#get_file_categories' do
17
+ it 'returns an array of file_categories' do
18
+ VCR.use_cassette('get_file_categories') do
19
+ file_categories = Insightly2.client.get_file_categories
20
+ expect(file_categories).to be_a(Array)
21
+ expect(file_categories.first).to be_a(FileCategory)
22
+ end
23
+ end
24
+ end
25
+
26
+ # POST /v2.1/FileCategories
27
+ describe '#create_file_category' do
28
+ it 'creates and returns a file category' do
29
+ VCR.use_cassette('create_file_category') do
30
+ file_category = Insightly2.client.get_file_category(id: file_category_id)
31
+ expect(Insightly2.client.create_file_category(category: file_category)).to be_a(FileCategory)
32
+ end
33
+ end
34
+ end
35
+
36
+ # PUT /v2.1/FileCategories
37
+ describe '#update_file_category' do
38
+ it 'updates and returns a file category' do
39
+ VCR.use_cassette('update_file_category') do
40
+ file_category = Insightly2.client.get_file_category(id: file_category_id)
41
+ expect(Insightly2.client.update_file_category(category: file_category)).to be_a(FileCategory)
42
+ end
43
+ end
44
+ end
45
+
46
+ # DELETE /v2.1/FileCategories/{id}
47
+ describe '#delete_file_category' do
48
+ it 'returns a response with code 202' do
49
+ VCR.use_cassette('delete_file_category') do
50
+ response = Insightly2.client.delete_file_category(id: file_category_id)
51
+ expect(response.status).to eq(202)
52
+ end
53
+ end
54
+ end
55
+ end