Skip to content

Commit

Permalink
add support for addTask
Browse files Browse the repository at this point in the history
  • Loading branch information
j4y committed Dec 15, 2011
1 parent b8747ba commit 877cb88
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 2 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -79,6 +79,7 @@ API methods

Here is a list of API methods that have been added:

* addTask
* login
* getApiVersion
* getAccounts
Expand Down
20 changes: 20 additions & 0 deletions lib/landslider.rb
Expand Up @@ -51,6 +51,18 @@ def login(session_id)
node = response.document.xpath('//ns:loginResponse/loginResponse', ns)
parse_login_result(node)
end

def add_task(session_id, task)
self.session_id = session_id
response = invoke('urn:addTask', :soap_action => :none) do |message|
message.add('task') { |req|
task.soapify_for(req)
}
end
node = response.document.xpath('//ns:addTaskResponse/Status', ns)
parse_add_task_result(node)

end

# @param [WsAccountSearch] search
# @param [String] session_id
Expand Down Expand Up @@ -361,6 +373,14 @@ def parse_login_result(node)
:session_id => xml_to_str(node, './sessionId/text()')
}
end

def parse_add_task_result(node)
{
:error => xml_to_bool(node, './error/text()'),
:error_code => xml_to_int(node, './errorCode/text()'),
:created => xml_to_bool(node, './created/text()')
}
end

def parse_api_version_result(node)
{
Expand Down
1 change: 1 addition & 0 deletions lib/landslider/entities.rb
Expand Up @@ -39,6 +39,7 @@
require 'landslider/entities/ws_product_result'

require 'landslider/entities/ws_task_search'
require 'landslider/entities/ws_task'


require 'landslider/entities/ws_search'
Expand Down
3 changes: 3 additions & 0 deletions lib/landslider/entities/ws_entity.rb
Expand Up @@ -8,6 +8,9 @@ class WsEntity
# @return [String]
attr_reader :entity_type, :entity_name

def soapify_for(msg)
msg.add 'entityId', @entity_id unless @entity_id.nil?
end
end

end
Expand Down
27 changes: 27 additions & 0 deletions lib/landslider/entities/ws_task.rb
@@ -0,0 +1,27 @@

class Landslider

class WsTask < WsEntity

# @return [Integer]
attr_reader :task_id, :assigned_to, :created_by, :archived_by, :associated_contact_id, :associated_entity_id, :updated_by

# Required
# @return [String]
attr_writer :task_name

# @return [Boolean]
attr_reader :completed

# @param [Handsoap::XmlMason::Node] msg
# @return [Handsoap::XmlMason::Node]
def soapify_for(msg)
super(msg)
msg.add 'taskName', @task_name unless @task_name.nil?
msg.add 'completed', @completed

end

end

end
17 changes: 15 additions & 2 deletions test/get_tasks_test.rb
Expand Up @@ -8,14 +8,27 @@ def setup
$sesson_idt7 ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
end

def test_get_accounts_without_search
def test_get_tasks_with_default_search
search = Landslider::WsTaskSearch.new
result = Landslider.get_tasks($sesson_idt7, search)
assert_not_nil result
assert_equal false, result[:error]
assert_kind_of Array, result[:tasks]
assert_equal 18, result[:tasks].size
#assert_equal 25, result[:tasks].size

end


def test_add_task
task = Landslider::WsTask.new
task.task_name='blash blbah'
result = Landslider.add_task($sesson_idt7, task)
assert_not_nil result
assert_equal false, result[:error]
assert_equal true, result[:created]

end



end

0 comments on commit 877cb88

Please sign in to comment.