quickeebooks 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
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: []