sugarcrm 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.1
@@ -1,16 +1,14 @@
1
1
  module SugarCRM; class Connection
2
2
  # Retrieves a list of report entries based on specified report IDs.
3
- def get_report_entries(ids, options={})
3
+ def get_report_entries(ids, opts={})
4
4
  login! unless logged_in?
5
- {
6
- :select_fields => '',
7
- }.merge! options
5
+ options = {:select_fields => ''}.merge! opts
8
6
 
9
7
  json = <<-EOF
10
8
  {
11
9
  \"session\": \"#{@session}\"\,
12
10
  \"ids\": #{ids.to_json}\,
13
- \"select_fields\": \"#{select_fields}\"
11
+ \"select_fields\": \"#{options[:select_fields].to_json}\"
14
12
  }
15
13
  EOF
16
14
  json.gsub!(/^\s{6}/,'')
@@ -2,7 +2,7 @@ module SugarCRM; class Connection
2
2
  # Returns the ID, module name and fields for specified modules.
3
3
  # Supported modules are Accounts, Bugs, Calls, Cases, Contacts,
4
4
  # Leads, Opportunities, Projects, Project Tasks, and Quotes.
5
- def search_by_module(search_string, modules, ops={})
5
+ def search_by_module(search_string, modules, opts={})
6
6
  login! unless logged_in?
7
7
 
8
8
  options = {
@@ -1,15 +1,21 @@
1
1
  module SugarCRM; class Connection
2
2
  # Sets a single relationship between two SugarBeans.
3
- def set_relationship(module_name, module_id, link_field_name, related_ids)
3
+ def set_relationship(module_name, module_id, link_field_name, related_ids, opts={})
4
4
  login! unless logged_in?
5
+ options = {
6
+ :name_value_list => [],
7
+ :delete => 0,
8
+ }.merge! opts
5
9
  raise ArgumentError, "related_ids must be an Array" unless related_ids.class == Array
6
10
  json = <<-EOF
7
11
  {
8
12
  \"session\": \"#{@session}\"\,
9
13
  \"module_name\": \"#{module_name}\"\,
10
- \"module_id\": #{module_id}\,
11
- \"link_field_name\": #{link_field_name}\,
12
- \"related_ids\": #{link_field_name.to_json}
14
+ \"module_id\": \"#{module_id}\"\,
15
+ \"link_field_name\": \"#{link_field_name}\"\,
16
+ \"related_ids\": #{related_ids.to_json}\,
17
+ \"name_value_list\": #{options[:name_value_list].to_json}\,
18
+ \"delete\": #{options[:delete]}
13
19
  }
14
20
  EOF
15
21
  json.gsub!(/^\s{6}/,'')
@@ -13,7 +13,7 @@ module SugarCRM; class Connection
13
13
  \"module_names\": \"#{module_names.to_json}\"\,
14
14
  \"module_ids\": #{module_ids.to_json}\,
15
15
  \"link_field_names\": #{link_field_names.to_json}\,
16
- \"related_ids\": #{link_field_name.to_json}
16
+ \"related_ids\": #{related_ids.to_json}
17
17
  }
18
18
  EOF
19
19
  json.gsub!(/^\s{6}/,'')
@@ -1,8 +1,8 @@
1
-
2
1
  require 'uri'
3
2
  require 'net/https'
4
3
 
5
4
  require 'rubygems'
5
+ # TODO: Remove this dependency - ActiveSupport should cover it.
6
6
  require 'json'
7
7
 
8
8
  require 'sugarcrm/connection/helper'
@@ -72,7 +72,7 @@ module SugarCRM; class Connection
72
72
  @connection.start
73
73
  end
74
74
 
75
- # Send a GET request to the Sugar Instance
75
+ # Send a request to the Sugar Instance
76
76
  def send!(method, json)
77
77
  @request = SugarCRM::Request.new(@url, method, json, @options[:debug])
78
78
  if @request.length > 3900
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ class TestSetRelationships < Test::Unit::TestCase
4
+ context "A SugarCRM.connection" do
5
+ setup do
6
+ SugarCRM::Connection.new(URL, USER, PASS, {:register_modules => false, :debug => false})
7
+
8
+ #retrieve ID of ACLRole and append shove it into the @id array
9
+ @id = [SugarCRM::ACLRole.find_by_name("Marketing Administrator").id]
10
+ assert @id
11
+ end
12
+
13
+ should "add the role found above to the user who's id is below when sent #set_relationship" do
14
+ response = SugarCRM.connection.set_relationship(
15
+ "Users","seed_will_id","aclroles",@id
16
+ )
17
+ assert_equal("failed0deleted0created1", response.to_s)
18
+ end
19
+
20
+ should "remove the role that was previously added when sent #set_relationship and delete=1" do
21
+ response = SugarCRM.connection.set_relationship(
22
+ "Users","seed_will_id","aclroles",@id,opts={:delete => 1}
23
+ )
24
+ assert_equal("failed0deleted1created0", response.to_s)
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sugarcrm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 0
10
- version: 0.8.0
9
+ - 1
10
+ version: 0.8.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Carl Hicks
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-04 00:00:00 -08:00
18
+ date: 2010-12-08 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -126,6 +126,7 @@ files:
126
126
  - test/connection/test_get_user_team_id.rb
127
127
  - test/connection/test_login.rb
128
128
  - test/connection/test_logout.rb
129
+ - test/connection/test_set_relationship.rb
129
130
  - test/helper.rb
130
131
  - test/test_connection.rb
131
132
  - test/test_module.rb
@@ -177,6 +178,7 @@ test_files:
177
178
  - test/connection/test_get_user_team_id.rb
178
179
  - test/connection/test_login.rb
179
180
  - test/connection/test_logout.rb
181
+ - test/connection/test_set_relationship.rb
180
182
  - test/helper.rb
181
183
  - test/test_connection.rb
182
184
  - test/test_module.rb