dynamics_crm 0.1.1 → 0.1.2

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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGMyMDk3OTNlNDA1Y2VkNzllZWJlMzc1NGExNDEwNzNiYTc4OTBjZQ==
5
- data.tar.gz: !binary |-
6
- ZDU2ZGVlMzE2YzAwNzk4YmMzZDA1ZWQ1OGYxMWJlNmIxZDg4Nzc3Ng==
2
+ SHA1:
3
+ metadata.gz: 9bb94f5a5bd351991b2e929c9c9f6dbb94bf22c8
4
+ data.tar.gz: 949b48ff2ae0b40e9ae7d65f9e897f644e0a4f2a
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZWYyZDM0NGFjNzJiYmRhYmNhZDAwMmQzYTBjNWQzY2YwMWVjYWI2YWEwZmRl
10
- NGJkZDFkYTljZjUwNzVmZGQxMTdjYTE2YmUzNDBhMDE3N2RiZTY0ZWUzNzcx
11
- NTIzYTg2YmIzNjJmZDJiZDYxMzhiZGUxNjZkZGQ2NTcyMTQxN2U=
12
- data.tar.gz: !binary |-
13
- MzEwYTk0ZmY4OGRlYjBiODIwZGExNDJkOTI3ODRiNWM0YjQ5YzUxYWVhZDQ4
14
- NmQ0ZjY3NjVmY2Y0OTljYWQ0N2ZiYWM2MmYwY2E4Mzg4MGVjMzUyOGUzNzhi
15
- NzgxYTk4ZWFkZmEyOGJmMjhjYmRiYjRjNTg2YjZjM2UwNjRhODI=
6
+ metadata.gz: a230f285eee9f1a272badc7fe6f9b8ad369f891d2a1ad13207ecf3b16d39c9ee9579458e1debf3bbd2032df6d1072a5aea4ae191a9884e5bc9f2a55ce758cefd
7
+ data.tar.gz: 92c07774595e74b0b3ad88116fc67e659ecc6cef8602d1554d49676db59932aea325436dfafb30bc6ebe6da4998726fbaaa5019a0228269e271cb06a6c7922ef
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ ## 0.1.2 (June 17, 2014)
2
+
3
+ * Fixes associate/disassociate requests
4
+
5
+ ## 0.1.1 (March 23, 2014)
6
+
7
+ * Adds support for Opportunity WinOpportunity/LoseOpportunity
8
+
9
+ ## 0.1.0 (March 23, 2014)
10
+
11
+ * Initial Release.
12
+
data/README.md CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
  #### Username/Password authentication
25
25
 
26
26
  ```ruby
27
- client = DynamicsCRM::Client.new
27
+ client = DynamicsCRM::Client.new({organization_name: "orgname"})
28
28
  client.authenticate('user@orgname.onmicrosoft.com', 'password')
29
29
  ```
30
30
 
@@ -50,7 +50,7 @@ client.retrieve_multiple('account', ["name", "Equal", "Test Account"], ["Name, "
50
50
 
51
51
  ```ruby
52
52
  # Add a new account
53
- client.create('Account', name: 'Foobar Inc.')
53
+ client.create('account', name: 'Foobar Inc.')
54
54
  # => {id: '53291AAB-4A9A-E311-B097-6C3BE5A8DD60'}
55
55
  ```
56
56
 
data/dynamics_crm.gemspec CHANGED
@@ -20,7 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_runtime_dependency 'curb', '~> 0.8', '>= 0.8.5'
22
22
  spec.add_runtime_dependency 'mimemagic', '~> 0.2', '>= 0.2.1'
23
- #spec.add_runtime_dependency 'nokogiri', '~> 1.5', '>= 1.5.10'
24
23
 
25
24
  spec.add_development_dependency "bundler", "~> 1.3"
26
25
  spec.add_development_dependency 'rake', '~> 10.1'
@@ -1,3 +1,3 @@
1
1
  module DynamicsCRM
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -18,10 +18,11 @@ module DynamicsCRM
18
18
  <#{namespace}LogicalName>#{@logical_name}</#{namespace}LogicalName>
19
19
  <#{namespace}Name #{@name ? '' : 'nil="true"'}>#{@name}</#{namespace}Name>
20
20
  }
21
-
21
+ # Associate/Disassociate request requires CamelCase while others require lowerCase
22
+ tag_name = options[:camel_case] ? "EntityReference" : "entityReference"
22
23
  if options[:exclude_root].nil?
23
24
  xml = %Q{
24
- <#{namespace}entityReference>#{xml}</#{namespace}entityReference>
25
+ <#{namespace}#{tag_name}>#{xml}</#{namespace}#{tag_name}>
25
26
  }
26
27
  end
27
28
  return xml
@@ -16,7 +16,7 @@ module DynamicsCRM
16
16
 
17
17
  # Select the right region for your CRM
18
18
  # The region can be pulled from the Organization WSDL
19
- #
19
+ #
20
20
  # urn:crmna:dynamics.com - North America
21
21
  # urn:crmemea:dynamics.com - Europe, the Middle East and Africa
22
22
  # urn:crmapac:dynamics.com - Asia Pacific
@@ -179,7 +179,7 @@ module DynamicsCRM
179
179
  def modify_association(action, entity_name, id, relationship, relationship_entities=[])
180
180
  entities_xml = ""
181
181
  relationship_entities.each do |ref|
182
- entities_xml << ref.to_xml(namespace: "b")
182
+ entities_xml << ref.to_xml(namespace: "b", camel_case: true)
183
183
  end
184
184
 
185
185
  build_envelope(action) do
@@ -187,7 +187,7 @@ module DynamicsCRM
187
187
  <entityName i:type="string">#{entity_name}</entityName>
188
188
  <entityId xmlns:q10="http://schemas.microsoft.com/2003/10/Serialization/" i:type="q10:guid">#{id}</entityId>
189
189
  <relationship i:type="b:Relationship">
190
- <b:PrimaryEntityRole>Referenced</b:PrimaryEntityRole>
190
+ <b:PrimaryEntityRole i:nil="true" />
191
191
  <b:SchemaName i:type="string">#{relationship}</b:SchemaName>
192
192
  </relationship>
193
193
  <relatedEntities i:type="b:EntityReferenceCollection">#{entities_xml}</relatedEntities>
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'tempfile'
2
3
 
3
4
  describe DynamicsCRM::Client do
4
5
  let(:subject) { DynamicsCRM::Client.new(organization_name: "tinderboxdev")}
@@ -67,6 +68,15 @@ describe DynamicsCRM::Client do
67
68
  end
68
69
  end
69
70
 
71
+ describe "#retrieve_attachments" do
72
+ it "retrieves document records from annotation object" do
73
+ subject.stub(:post).and_return(fixture("retrieve_multiple_result"))
74
+
75
+ result = subject.retrieve_attachments("93f0325c-a592-e311-b7f3-6c3be5a8a0c8")
76
+ result.should be_a(DynamicsCRM::Response::RetrieveMultipleResult)
77
+ end
78
+ end
79
+
70
80
  describe "#fetch" do
71
81
  it "uses FetchXML to retrieve multiple" do
72
82
 
@@ -116,6 +126,33 @@ describe DynamicsCRM::Client do
116
126
  end
117
127
  end
118
128
 
129
+ describe "#create_attachment" do
130
+ it "creates new record in annotation entity" do
131
+
132
+ file = Tempfile.new(["sample-file", "pdf"])
133
+
134
+ subject.should_receive(:create).with("annotation", {
135
+ objectid: {id: "f4944f99-b5a0-e311-b64f-6c3be5a87df0", logical_name: "opportunity"},
136
+ subject: "Sample Subject",
137
+ notetext: "Post message",
138
+ filename: "testfile.pdf",
139
+ isdocument: true,
140
+ documentbody: ::Base64.encode64(""),
141
+ filesize: 0,
142
+ mimetype: nil
143
+ })
144
+
145
+ options = {
146
+ filename: "testfile.pdf",
147
+ document: file,
148
+ subject: "Sample Subject",
149
+ text: "Post message"
150
+ }
151
+
152
+ result = subject.create_attachment("opportunity", "f4944f99-b5a0-e311-b64f-6c3be5a87df0", options)
153
+ end
154
+ end
155
+
119
156
  describe "#update" do
120
157
  it "updates entity by id" do
121
158
 
@@ -227,4 +264,16 @@ describe DynamicsCRM::Client do
227
264
  end
228
265
  end
229
266
 
267
+ describe "#load_entity" do
268
+ it "returns Model::Opportunity" do
269
+ response = subject.load_entity("opportunity", "c4944f99-b5a0-e311-b64f-6c3be5a87df0")
270
+ response.should be_a(DynamicsCRM::Model::Opportunity)
271
+ end
272
+
273
+ it "returns Model::Entity" do
274
+ response = subject.load_entity("account", "c4944f99-b5a0-e311-b64f-6c3be5a87df0")
275
+ response.should be_a(DynamicsCRM::Model::Entity)
276
+ end
277
+ end
278
+
230
279
  end
@@ -14,7 +14,7 @@ describe DynamicsCRM::XML::EntityReference do
14
14
  end
15
15
 
16
16
  context "#to_xml" do
17
- it {
17
+ it "outputs entityReference with no namespace" do
18
18
  # Spacing here is intentional to match created string.
19
19
  expected_xml = %Q{
20
20
  <entityReference>
@@ -24,7 +24,20 @@ describe DynamicsCRM::XML::EntityReference do
24
24
  </entityReference>
25
25
  }
26
26
  subject.to_xml.should == expected_xml
27
- }
27
+ end
28
+
29
+ it "outputs EntityReference with namespace" do
30
+ # Spacing here is intentional to match created string.
31
+ expected_xml = %Q{
32
+ <b:EntityReference>
33
+ <b:Id>9BF1325C-A592-E311-B7F3-6C3BE5A8A0C8</b:Id>
34
+ <b:LogicalName>opportunity</b:LogicalName>
35
+ <b:Name #{@name ? '' : 'nil="true"'}>#{@name}</b:Name>
36
+ </b:EntityReference>
37
+ }
38
+ subject.to_xml(namespace: 'b', camel_case: true).should == expected_xml
39
+ end
40
+
28
41
  end
29
42
 
30
43
  context "#from_xml" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamics_crm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Heth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-23 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curb
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.8'
20
- - - ! '>='
20
+ - - '>='
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.8.5
23
23
  type: :runtime
@@ -27,7 +27,7 @@ dependencies:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0.8'
30
- - - ! '>='
30
+ - - '>='
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.8.5
33
33
  - !ruby/object:Gem::Dependency
@@ -37,7 +37,7 @@ dependencies:
37
37
  - - ~>
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.2'
40
- - - ! '>='
40
+ - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: 0.2.1
43
43
  type: :runtime
@@ -47,7 +47,7 @@ dependencies:
47
47
  - - ~>
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0.2'
50
- - - ! '>='
50
+ - - '>='
51
51
  - !ruby/object:Gem::Version
52
52
  version: 0.2.1
53
53
  - !ruby/object:Gem::Dependency
@@ -116,6 +116,7 @@ files:
116
116
  - .gitignore
117
117
  - .rspec
118
118
  - .travis.yml
119
+ - CHANGELOG.md
119
120
  - Gemfile
120
121
  - LICENSE.txt
121
122
  - README.md
@@ -195,17 +196,17 @@ require_paths:
195
196
  - lib
196
197
  required_ruby_version: !ruby/object:Gem::Requirement
197
198
  requirements:
198
- - - ! '>='
199
+ - - '>='
199
200
  - !ruby/object:Gem::Version
200
201
  version: '0'
201
202
  required_rubygems_version: !ruby/object:Gem::Requirement
202
203
  requirements:
203
- - - ! '>='
204
+ - - '>='
204
205
  - !ruby/object:Gem::Version
205
206
  version: '0'
206
207
  requirements: []
207
208
  rubyforge_project:
208
- rubygems_version: 2.2.2
209
+ rubygems_version: 2.2.1
209
210
  signing_key:
210
211
  specification_version: 4
211
212
  summary: Ruby gem for integrating with MS Dynamics 2011/2013 SOAP API