quickeebooks 0.1.7 → 0.1.8

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.
data/lib/quickeebooks.rb CHANGED
@@ -178,7 +178,8 @@ require 'quickeebooks/windows/model/time_activity'
178
178
  require 'quickeebooks/windows/model/time_activity_employee'
179
179
  require 'quickeebooks/windows/model/time_activity_vendor'
180
180
  require 'quickeebooks/windows/model/job'
181
-
181
+ require 'quickeebooks/windows/model/sync_activity_response'
182
+ require 'quickeebooks/windows/model/sync_status_drill_down'
182
183
 
183
184
  # Services
184
185
  require 'quickeebooks/windows/service/filter'
@@ -200,3 +201,4 @@ require 'quickeebooks/windows/service/access_token'
200
201
  require 'quickeebooks/windows/service/employee'
201
202
  require 'quickeebooks/windows/service/time_activity'
202
203
  require 'quickeebooks/windows/service/job'
204
+ require 'quickeebooks/windows/service/sync_activity'
@@ -1,5 +1,5 @@
1
1
  module Quickeebooks
2
2
 
3
- VERSION = "0.1.7"
3
+ VERSION = "0.1.8"
4
4
 
5
5
  end
@@ -0,0 +1,28 @@
1
+ require "quickeebooks"
2
+ require 'quickeebooks/windows/model/sync_status_drill_down'
3
+
4
+ module Quickeebooks
5
+ module Windows
6
+ module Model
7
+ class SyncActivityResponse < Quickeebooks::Windows::Model::IntuitType
8
+ include ActiveModel::Validations
9
+
10
+ XML_COLLECTION_NODE = 'SyncActivityResponses'
11
+ XML_NODE = 'SyncActivityResponse'
12
+
13
+ # https://services.intuit.com/sb/account/v2/<realmID>
14
+ REST_RESOURCE = "syncActivity"
15
+
16
+ xml_convention :camelcase
17
+ xml_accessor :sync_type, :from => 'SyncType'
18
+ xml_accessor :start_sync_tms, :from => 'StartSyncTMS', :as => Time
19
+ xml_accessor :end_sync_tms, :from => 'EndSyncTMS', :as => Time
20
+ xml_accessor :entity_name, :from => 'EntityName'
21
+ xml_accessor :entity_row_count, :from => 'EntityRowCount', :as => Integer
22
+ xml_accessor :sync_status_drill_down, :from => 'SyncStatusDrillDown', :as => Quickeebooks::Windows::Model::SyncStatusDrillDown
23
+
24
+ end
25
+
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,18 @@
1
+ require 'quickeebooks'
2
+
3
+ module Quickeebooks
4
+ module Windows
5
+ module Model
6
+ class SyncStatusDrillDown < Quickeebooks::Windows::Model::IntuitType
7
+ xml_accessor :sync_event_id, :from => 'SyncEventId'
8
+ xml_accessor :sync_tms, :from => 'SyncTMS', :as => Time
9
+ xml_accessor :entity_id, :from => 'EntityId'
10
+ xml_accessor :request_id, :from => 'RequestId'
11
+ xml_accessor :ng_object_type, :from => 'NgObjectType'
12
+ xml_accessor :operation_type, :from => 'OperationType'
13
+ xml_accessor :sync_message_code, :from => 'SyncMessageCode'
14
+ xml_accessor :sync_message, :from => 'SyncMessage'
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,35 @@
1
+ require 'quickeebooks/windows/service/service_base'
2
+ require 'active_support/builder' unless defined?(Builder)
3
+
4
+ module Quickeebooks
5
+ module Windows
6
+ module Service
7
+ class SyncActivity < Quickeebooks::Windows::Service::ServiceBase
8
+
9
+ # Fetch +SyncActivity+ objects
10
+ # Arguments:
11
+ # parameters: +Hash+ of attributes accepted to select +SyncActivityResponse+ objects
12
+ def retrieve(parameters={})
13
+ model = Quickeebooks::Windows::Model::SyncActivityResponse
14
+
15
+ response = do_http_post(url_for_resource(model::REST_RESOURCE), xml_body(parameters), {}, {'Content-Type' => 'text/xml'})
16
+ parse_collection(response, model)
17
+ end
18
+
19
+ private
20
+
21
+ def xml_body(parameters)
22
+ parameters.reverse_merge!(:offering_id => "ipp")
23
+
24
+ xml = Builder::XmlMarkup.new
25
+ xml.instruct!
26
+ xml.tag!('SyncActivityRequest', "xmlns" => "http://www.intuit.com/sb/cdm/v2", "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation" => "http://www.intuit.com/sb/cdm/v2 RestDataFilter.xsd ") do |request|
27
+ parameters.each {|key, value| ActiveSupport::XmlMini.to_tag(key, value, {:camelize => true, :skip_type => true, :builder => request})}
28
+ end
29
+ xml.target!
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
Binary file
@@ -0,0 +1,42 @@
1
+ describe "Quickeebooks::Windows::Service::SyncActivity" do
2
+ before(:all) do
3
+ FakeWeb.allow_net_connect = false
4
+ qb_key = "key"
5
+ qb_secret = "secreet"
6
+
7
+ @realm_id = "9991111222"
8
+ @base_uri = "https://qbo.intuit.com/qbo36"
9
+ @oauth_consumer = OAuth::Consumer.new(qb_key, qb_key, {
10
+ :site => "https://oauth.intuit.com",
11
+ :request_token_path => "/oauth/v1/get_request_token",
12
+ :authorize_path => "/oauth/v1/get_access_token",
13
+ :access_token_path => "/oauth/v1/get_access_token"
14
+ })
15
+ @oauth = OAuth::AccessToken.new(@oauth_consumer, "blah", "blah")
16
+ end
17
+
18
+ it "can fetch a list of time_activities" do
19
+ xml = windowsFixture("sync_activity_responses.xml")
20
+ model = Quickeebooks::Windows::Model::SyncActivityResponse
21
+ service = Quickeebooks::Windows::Service::SyncActivity.new
22
+ service.access_token = @oauth
23
+ service.realm_id = @realm_id
24
+ FakeWeb.register_uri(:post, service.url_for_resource(model::REST_RESOURCE), :status => ["200", "OK"], :body => xml)
25
+ sync_activity_responses = service.retrieve
26
+ sync_activity_responses.entries.count.should == 1
27
+ single_response = sync_activity_responses.entries.first
28
+ single_response.sync_type.should == "Writeback"
29
+ single_response.start_sync_tms.utc.should == Time.parse("2011-07-29T07:09:02.0").utc
30
+ single_response.end_sync_tms.utc.should == Time.parse("2011-07-29T07:09:02.0").utc
31
+ single_response.entity_name.should == "Customer"
32
+ drill_down = single_response.sync_status_drill_down
33
+ drill_down.sync_tms.should == Time.parse("2011-07-29T14:09:02.0Z").utc
34
+ drill_down.entity_id.should == "2480872"
35
+ drill_down.request_id.should == "0729e1124a274fc79d65a1d97233877f"
36
+ drill_down.ng_object_type.should == "Customer"
37
+ drill_down.operation_type.should == "CustomerAdd"
38
+ drill_down.sync_message_code.should == "10"
39
+ drill_down.sync_message.should == "success"
40
+ end
41
+
42
+ end
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <RestResponse xmlns="http://www.intuit.com/sb/cdm/v2" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intuit.com/sb/cdm/v2 ../common/RestDataFilter.xsd">
3
+ <SyncActivityResponses>
4
+ <SyncActivityResponse>
5
+ <SyncType>Writeback</SyncType>
6
+ <StartSyncTMS>2011-07-29T07:09:02.0</StartSyncTMS>
7
+ <EndSyncTMS>2011-07-29T07:09:02.0</EndSyncTMS>
8
+ <EntityName>Customer</EntityName>
9
+ <SyncStatusDrillDown>
10
+ <SyncTMS>2011-07-29T14:09:02.0Z</SyncTMS>
11
+ <EntityId>2480872</EntityId>
12
+ <RequestId>0729e1124a274fc79d65a1d97233877f</RequestId>
13
+ <NgObjectType>Customer</NgObjectType>
14
+ <OperationType>CustomerAdd</OperationType>
15
+ <SyncMessageCode>10</SyncMessageCode>
16
+ <SyncMessage>success</SyncMessage>
17
+ </SyncStatusDrillDown>
18
+ </SyncActivityResponse>
19
+ </SyncActivityResponses>
20
+ </RestResponse>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickeebooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-30 00:00:00.000000000 Z
12
+ date: 2013-05-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: roxml
@@ -340,6 +340,8 @@ files:
340
340
  - lib/quickeebooks/windows/model/sales_tax.rb
341
341
  - lib/quickeebooks/windows/model/ship_method.rb
342
342
  - lib/quickeebooks/windows/model/success.rb
343
+ - lib/quickeebooks/windows/model/sync_activity_response.rb
344
+ - lib/quickeebooks/windows/model/sync_status_drill_down.rb
343
345
  - lib/quickeebooks/windows/model/tax_line.rb
344
346
  - lib/quickeebooks/windows/model/time_activity.rb
345
347
  - lib/quickeebooks/windows/model/time_activity_employee.rb
@@ -367,9 +369,11 @@ files:
367
369
  - lib/quickeebooks/windows/service/service_base.rb
368
370
  - lib/quickeebooks/windows/service/ship_method.rb
369
371
  - lib/quickeebooks/windows/service/sort.rb
372
+ - lib/quickeebooks/windows/service/sync_activity.rb
370
373
  - lib/quickeebooks/windows/service/time_activity.rb
371
374
  - lib/quickeebooks.rb
372
375
  - MIT-LICENSE
376
+ - quickeebooks-0.1.7.gem
373
377
  - quickeebooks.gemspec
374
378
  - Rakefile
375
379
  - README.md
@@ -415,6 +419,7 @@ files:
415
419
  - spec/quickeebooks/windows/services/sales_taxes_spec.rb
416
420
  - spec/quickeebooks/windows/services/service_base_spec.rb
417
421
  - spec/quickeebooks/windows/services/ship_method_spec.rb
422
+ - spec/quickeebooks/windows/services/sync_activity_spec.rb
418
423
  - spec/quickeebooks/windows/services/time_activity_spec.rb
419
424
  - spec/quickeebooks_spec.rb
420
425
  - spec/spec_helper.rb
@@ -473,6 +478,7 @@ files:
473
478
  - spec/xml/windows/sales_reps.xml
474
479
  - spec/xml/windows/sales_taxes.xml
475
480
  - spec/xml/windows/ship_methods.xml
481
+ - spec/xml/windows/sync_activity_responses.xml
476
482
  - spec/xml/windows/time_activities.xml
477
483
  homepage: http://github.com/ruckus/quickeebooks
478
484
  licenses: []