datasift 3.1.5 → 3.2.0

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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/.yardopts +4 -0
  4. data/CHANGELOG.md +23 -0
  5. data/Gemfile +13 -0
  6. data/README.md +17 -16
  7. data/VERSION +1 -1
  8. data/datasift.gemspec +8 -14
  9. data/examples/account_identity_eg.rb +48 -0
  10. data/examples/account_identity_limit_eg.rb +68 -0
  11. data/examples/account_identity_token_eg.rb +70 -0
  12. data/examples/auth.rb +4 -4
  13. data/examples/core_api_eg.rb +1 -2
  14. data/examples/historics_eg.rb +7 -1
  15. data/examples/pylon_eg.rb +116 -0
  16. data/lib/account.rb +6 -0
  17. data/lib/account_identity.rb +73 -0
  18. data/lib/account_identity_limit.rb +85 -0
  19. data/lib/account_identity_token.rb +86 -0
  20. data/lib/api/api_resource.rb +14 -5
  21. data/lib/cli.rb +306 -132
  22. data/lib/datasift.rb +82 -47
  23. data/lib/errors.rb +21 -5
  24. data/lib/historics.rb +71 -40
  25. data/lib/historics_preview.rb +25 -8
  26. data/lib/managed_source.rb +69 -25
  27. data/lib/managed_source_auth.rb +21 -6
  28. data/lib/managed_source_resource.rb +21 -6
  29. data/lib/push.rb +132 -65
  30. data/lib/pylon.rb +122 -0
  31. data/test/datasift/core_api_test.rb +116 -90
  32. data/test/datasift/historics_preview_api_test.rb +27 -58
  33. data/test/datasift/push_api_test.rb +156 -141
  34. data/test/fixtures/cassettes/core/after_historic_dpu.json +1 -0
  35. data/test/fixtures/cassettes/core/balance_get.json +1 -0
  36. data/test/fixtures/cassettes/core/before_dpu.json +1 -0
  37. data/test/fixtures/cassettes/core/before_historic_dpu.json +1 -0
  38. data/test/fixtures/cassettes/core/compile_success.json +1 -0
  39. data/test/fixtures/cassettes/core/dpu_get_cost.json +1 -0
  40. data/test/fixtures/cassettes/core/dpu_throw_badrequest.json +1 -0
  41. data/test/fixtures/cassettes/core/historic_dpu.json +1 -0
  42. data/test/fixtures/cassettes/core/usage_success.json +1 -0
  43. data/test/fixtures/cassettes/core/validate_invalid_hash.json +1 -0
  44. data/test/fixtures/cassettes/core/validate_success_bool.json +1 -0
  45. data/test/fixtures/cassettes/core/validate_success_hash.json +1 -0
  46. data/test/fixtures/cassettes/preview/before_preview_create.json +1 -0
  47. data/test/fixtures/cassettes/preview/before_preview_get.json +1 -0
  48. data/test/fixtures/cassettes/preview/preview_create_success.json +1 -0
  49. data/test/fixtures/cassettes/preview/preview_get_success.json +1 -0
  50. data/test/fixtures/cassettes/push/after_push_create.json +1 -0
  51. data/test/fixtures/cassettes/push/after_push_get.json +1 -0
  52. data/test/fixtures/cassettes/push/after_push_log.json +1 -0
  53. data/test/fixtures/cassettes/push/after_push_pause.json +1 -0
  54. data/test/fixtures/cassettes/push/after_push_resume.json +1 -0
  55. data/test/fixtures/cassettes/push/after_push_stop.json +1 -0
  56. data/test/fixtures/cassettes/push/after_push_update.json +1 -0
  57. data/test/fixtures/cassettes/push/before_push_create.json +1 -0
  58. data/test/fixtures/cassettes/push/before_push_delete.json +1 -0
  59. data/test/fixtures/cassettes/push/before_push_get.json +1 -0
  60. data/test/fixtures/cassettes/push/before_push_log.json +1 -0
  61. data/test/fixtures/cassettes/push/before_push_pause.json +1 -0
  62. data/test/fixtures/cassettes/push/before_push_resume.json +1 -0
  63. data/test/fixtures/cassettes/push/before_push_stop.json +1 -0
  64. data/test/fixtures/cassettes/push/before_push_update.json +1 -0
  65. data/test/fixtures/cassettes/push/push_create.json +1 -0
  66. data/test/fixtures/cassettes/push/push_delete.json +1 -0
  67. data/test/fixtures/cassettes/push/push_get_by_id.json +1 -0
  68. data/test/fixtures/cassettes/push/push_log_with_id.json +1 -0
  69. data/test/fixtures/cassettes/push/push_pause.json +1 -0
  70. data/test/fixtures/cassettes/push/push_resume.json +1 -0
  71. data/test/fixtures/cassettes/push/push_stop.json +1 -0
  72. data/test/fixtures/cassettes/push/push_update.json +1 -0
  73. data/test/fixtures/cassettes/push/push_validate.json +1 -0
  74. data/test/test_helper.rb +31 -1
  75. metadata +64 -104
  76. data/examples/dynamic_list_eg.rb +0 -74
  77. data/examples/dynamic_list_replace_eg.rb +0 -45
  78. data/lib/dynamic_list.rb +0 -66
  79. data/lib/dynamic_list_replace.rb +0 -45
  80. data/test/fixtures/balance.json +0 -1
  81. data/test/fixtures/compile_csdl_invalid.json +0 -1
  82. data/test/fixtures/compile_csdl_valid.json +0 -1
  83. data/test/fixtures/dpu_valid.json +0 -1
  84. data/test/fixtures/preview_create_valid.json +0 -1
  85. data/test/fixtures/preview_get_running.json +0 -1
  86. data/test/fixtures/preview_get_succeeded.json +0 -1
  87. data/test/fixtures/push_create_valid.json +0 -1
  88. data/test/fixtures/push_get_list_by_hash_valid.json +0 -1
  89. data/test/fixtures/push_get_list_by_historics_id_valid.json +0 -1
  90. data/test/fixtures/push_get_list_valid.json +0 -1
  91. data/test/fixtures/push_get_valid.json +0 -1
  92. data/test/fixtures/push_log_valid.json +0 -1
  93. data/test/fixtures/push_pause_valid.json +0 -1
  94. data/test/fixtures/push_stop_valid.json +0 -1
  95. data/test/fixtures/push_validate_valid.json +0 -1
  96. data/test/fixtures/usage_current.json +0 -1
  97. data/test/fixtures/validate_csdl_invalid.json +0 -1
  98. data/test/fixtures/validate_csdl_valid.json +0 -1
@@ -1,28 +1,48 @@
1
1
  module DataSift
2
+ # Methods for using {http://dev.datasift.com/docs/sources/managed-sources
3
+ # DataSift Managed Sources}
2
4
  class ManagedSource < DataSift::ApiResource
3
-
4
- ##
5
5
  # Creates a new managed source
6
- #+source_type+:: can be facebook_page, googleplus, instagram or yammer
6
+ #
7
+ # @param source_type [String] Type of Managed Source you are creating. e.g.
8
+ # facebook_page, instagram, etc
9
+ # @param name [String] Name of this Managed Source
10
+ # @param parameters [Hash] Source-specific configuration parameters
11
+ # @param resources [Array] Array of source-specific resources
12
+ # @param auth [Array] Array of source-specific auth credentials
7
13
  def create(source_type, name, parameters = {}, resources = [], auth = [], options = {})
8
- raise BadParametersError.new('source_type and name are required') if source_type.nil? || name.nil?
14
+ fail BadParametersError, 'source_type and name are required' if source_type.nil? || name.nil?
9
15
  params = {
10
- :source_type => source_type,
11
- :name => name
16
+ :source_type => source_type,
17
+ :name => name
12
18
  }
13
19
  params.merge!(options) unless options.empty?
14
- params.merge!({:auth => auth.is_a?(String) ? auth : MultiJson.dump(auth)}) unless auth.empty?
15
- params.merge!({:parameters => parameters.is_a?(String) ? parameters : MultiJson.dump(parameters)}) unless parameters.empty?
16
- params.merge!({:resources => resources.is_a?(String) ? resources : MultiJson.dump(resources)}) if resources.length > 0
20
+ params.merge!(
21
+ { :auth => auth.is_a?(String) ? auth : MultiJson.dump(auth) }
22
+ ) unless auth.empty?
23
+ params.merge!(
24
+ { :parameters => parameters.is_a?(String) ? parameters : MultiJson.dump(parameters) }
25
+ ) unless parameters.empty?
26
+ params.merge!(
27
+ { :resources => resources.is_a?(String) ? resources : MultiJson.dump(resources) }
28
+ ) if resources.length > 0
17
29
  DataSift.request(:POST, 'source/create', @config, params)
18
30
  end
19
31
 
32
+ # Update a Managed Source
33
+ #
34
+ # @param id [String] ID of the Managed Source you are updating
35
+ # @param source_type [String] Type of Managed Source you are updating
36
+ # @param name [String] Name (or new name) of the Managed Source
37
+ # @param parameters [Hash] Source-specific configuration parameters
38
+ # @param resources [Array] Array of source-specific resources
39
+ # @param auth [Array] Array of source-specific auth credentials
20
40
  def update(id, source_type, name, parameters = {}, resources = [], auth = [], options = {})
21
- raise BadParametersError.new('id,source_type and name are required') if id.nil? || source_type.nil? || name.nil?
41
+ fail BadParametersError, 'ID, source_type and name are required' if id.nil? || source_type.nil? || name.nil?
22
42
  params = {
23
- :id => id,
24
- :source_type => source_type,
25
- :name => name
43
+ :id => id,
44
+ :source_type => source_type,
45
+ :name => name
26
46
  }
27
47
  params.merge!(options) unless options.empty?
28
48
  params.merge!({:auth => MultiJson.dump(auth)}) if !auth.empty?
@@ -32,33 +52,57 @@ module DataSift
32
52
  DataSift.request(:POST, 'source/update', @config, params)
33
53
  end
34
54
 
55
+ # Delete a Managed Source
56
+ #
57
+ # @param id [String] ID of the Managed Source you are deleting
35
58
  def delete(id)
36
- raise BadParametersError.new('id is required') if id.nil?
37
- DataSift.request(:DELETE, 'source/delete', @config, {:id => id})
59
+ fail BadParametersError, 'ID is required' if id.nil?
60
+ DataSift.request(:DELETE, 'source/delete', @config, { :id => id })
38
61
  end
39
62
 
63
+ # Stop a Managed Source
64
+ #
65
+ # @param id [String] ID of the Managed Source you are stopping
40
66
  def stop(id)
41
- raise BadParametersError.new('id is required') if id.nil?
42
- DataSift.request(:POST, 'source/stop', @config, {:id => id})
67
+ fail BadParametersError, 'ID is required' if id.nil?
68
+ DataSift.request(:POST, 'source/stop', @config, { :id => id })
43
69
  end
44
70
 
71
+ # Start a Managed Source
72
+ #
73
+ # @param id [String] ID of the Managed Source you are starting
45
74
  def start(id)
46
- raise BadParametersError.new('id is required') if id.nil?
47
- DataSift.request(:POST, 'source/start', @config, {:id => id})
75
+ fail BadParametersError, 'ID is required' if id.nil?
76
+ DataSift.request(:POST, 'source/start', @config, { :id => id })
48
77
  end
49
78
 
79
+ # Retrieve details of a Managed Source
80
+ #
81
+ # @param id [String] ID of the Managed Source you are getting. Omitting the
82
+ # ID will return a list of Managed Sources
83
+ # @param source_type [String] Limits the list of Managed Sources returned to
84
+ # only sources of a specific source type if specified
85
+ # @param page [Integer] Number of Managed Sources to return on one page of
86
+ # results
87
+ # @param per_page [Integer] Number of Managed Sources to return per page
50
88
  def get(id = nil, source_type = nil, page = 1, per_page = 20)
51
- params = {:page => page, :per_page => per_page}
52
- params.merge!({:id => id}) if id != nil
53
- params.merge!({:source_type => source_type}) if source_type != nil
89
+ params = { :page => page, :per_page => per_page }
90
+ params.merge!({ :id => id }) if !id.nil?
91
+ params.merge!({ :source_type => source_type }) if !source_type.nil?
54
92
 
55
93
  DataSift.request(:GET, 'source/get', @config, params)
56
94
  end
57
95
 
96
+ # Retrieve log details of Managed Sources
97
+ #
98
+ # @param id [String] ID of the Managed Source for which you are collecting
99
+ # logs
100
+ # @param page [Integer] Number of Managed Source logs to return on one page
101
+ # of results
102
+ # @param per_page [Integer] Number of Managed Source logs to return per page
58
103
  def log(id, page = 1, per_page = 20)
59
- raise BadParametersError.new('id is required') if id.nil?
60
- DataSift.request(:POST, 'source/log', @config, {:id => id, :page => page, :per_page => per_page})
104
+ fail BadParametersError, 'ID is required' if id.nil?
105
+ DataSift.request(:POST, 'source/log', @config, { :id => id, :page => page, :per_page => per_page })
61
106
  end
62
-
63
107
  end
64
108
  end
@@ -1,20 +1,35 @@
1
1
  module DataSift
2
+ # Methods for using Auth specific Managed Sources API endpoints
2
3
  class ManagedSourceAuth < DataSift::ApiResource
3
-
4
+ # Add auth tokens to a Managed Source
5
+ #
6
+ # @param id [String] ID of the Managed Source you are adding Auth tokens to
7
+ # @param auth [Array] Array of auth tokens you are adding to your source
8
+ # @param validate [Boolean] Whether you want to validate your new tokens
9
+ # against the third party API (i.e. the Facebook or Instagram API)
4
10
  def add(id, auth, validate = 'true')
5
11
  params = {
6
- id: id,
12
+ id: id,
13
+ auth: auth,
7
14
  validate: validate
8
15
  }
9
- params.merge!({:auth => auth})
16
+ requires params
10
17
  DataSift.request(:PUT, 'source/auth/add', @config, params)
11
18
  end
12
19
 
20
+ # Remove auth tokens from a Managed Source
21
+ #
22
+ # @param id [String] ID of the Managed Source you are removing auth tokens
23
+ # from
24
+ # @param auth_ids [Array] Array of auth_id strings you need to remove from
25
+ # your source
13
26
  def remove(id, auth_ids)
14
- params = {id: id}
15
- params.merge!({:auth_ids => auth_ids})
27
+ params = {
28
+ id: id,
29
+ auth: auth_ids
30
+ }
31
+ requires params
16
32
  DataSift.request(:PUT, 'source/auth/remove', @config, params)
17
33
  end
18
-
19
34
  end
20
35
  end
@@ -1,20 +1,35 @@
1
1
  module DataSift
2
+ # Methods for using Auth specific Managed Sources API endpoints
2
3
  class ManagedSourceResource < DataSift::ApiResource
3
-
4
+ # Add resources to a Managed Source
5
+ #
6
+ # @param id [String] ID of the Managed Source you are adding resources to
7
+ # @param resources [Array] Array of resources you are adding to your source
8
+ # @param validate [Boolean] Whether you want to validate your new resources
9
+ # against the third party API (i.e. the Facebook or Instagram API)
4
10
  def add(id, resources, validate = 'true')
5
11
  params = {
6
- id: id,
12
+ id: id,
13
+ resources: resources,
7
14
  validate: validate
8
15
  }
9
- params.merge!({:resources => resources})
16
+ requires params
10
17
  DataSift.request(:PUT, 'source/resource/add', @config, params)
11
18
  end
12
19
 
20
+ # Remove resources from a Managed Source
21
+ #
22
+ # @param id [String] ID of the Managed Source you are removing resources
23
+ # from
24
+ # @param resource_ids [Array] Array of resource_id strings you need to
25
+ # remove from your source
13
26
  def remove(id, resource_ids)
14
- params = {id: id}
15
- params.merge!({:resource_ids => resource_ids})
27
+ params = {
28
+ id: id,
29
+ resource_ids: resource_ids
30
+ }
31
+ requires params
16
32
  DataSift.request(:PUT, 'source/resource/remove', @config, params)
17
33
  end
18
-
19
34
  end
20
35
  end
data/lib/push.rb CHANGED
@@ -1,148 +1,215 @@
1
1
  module DataSift
2
2
  ##
3
- # Push is a simple and robust mechanism for periodically delivering your data directly to a given destination
4
- # Several widely adopted storage locations are available including Amazon S3, FTP, HTTP, SFTP, DynamoDB, CouchDB
5
- # MongoDB, Splunk, Elastic search and more! See http://dev.datasift.com/docs/push/connectors
3
+ # Push is a simple and robust mechanism for periodically delivering your data
4
+ # directly to a given destination. Several widely adopted storage locations
5
+ # are available including Amazon S3, (S)FTP, HTTP, DynamoDB, CouchDB,
6
+ # MongoDB, Splunk, ElasticSearch and more! See
7
+ # http://dev.datasift.com/docs/push/connectors
6
8
  class Push < DataSift::ApiResource
7
-
8
9
  ##
9
- # Check that a subscription is defined correctly
10
+ # Check that a Push subscription definition is valid
11
+ #
12
+ # @param params [Hash] Hash of Push subscription parameters
13
+ # @param bool_response [Boolean] True if you want a boolean response. False
14
+ # if you want the full response object
10
15
  def valid?(params, bool_response = true)
11
16
  requires params
12
17
  res = DataSift.request(:POST, 'push/validate', @config, params)
13
18
  bool_response ? res[:http][:status] == 200 : res
14
19
  end
15
20
 
16
- ##
17
- #Create a new subscription to a live stream or historics query
18
- # Possible params are
19
- # hash, historics_id, name, output_type, initial_status, start, end and output_params.*
20
- # where output_params.* depends on the output_type for specific options see the documentation at
21
- # http://dev.datasift.com/docs/rest-api/pushcreate
22
- # For a list of available connectors see http://dev.datasift.com/docs/push/connectors
21
+ # Create a new subscription to a live stream or historics query. Possible
22
+ # params are hash, historics_id, name, output_type, initial_status, start,
23
+ # end and output_params.* where output_params.* depends on the output_type
24
+ # for specific options see the documentation at
25
+ # http://dev.datasift.com/docs/rest-api/pushcreate For a list of available
26
+ # connectors see http://dev.datasift.com/docs/push/connectors
27
+ #
28
+ # @param params [Hash] Hash of Push subscription parameters
23
29
  def create(params)
24
30
  DataSift.request(:POST, 'push/create', @config, params)
25
31
  end
26
32
 
27
- ##
28
33
  # Update the name or output parameters for an existing subscription
29
- def update (params)
34
+ #
35
+ # @param params [Hash] Hash of Push subscription parameters
36
+ def update(params)
30
37
  DataSift.request(:POST, 'push/update', @config, params)
31
38
  end
32
39
 
33
- ##
34
- #Pause a subscription and buffer the data for up to an hour
40
+ # Pause a subscription and buffer the data for up to an hour
41
+ #
42
+ # @param id [String] ID of the Push subscription to pause
35
43
  def pause(id)
36
- params = {:id => id}
44
+ params = { :id => id }
37
45
  requires params
38
46
  DataSift.request(:PUT, 'push/pause', @config, params)
39
47
  end
40
48
 
41
- ##
42
- #Restart a job that was previously paused
49
+ # Resume a Push subscription that was previously paused
50
+ #
51
+ # @param id [String] ID of the Push subscription to resume
43
52
  def resume(id)
44
- params = {:id => id}
53
+ params = { :id => id }
45
54
  requires params
46
55
  DataSift.request(:PUT, 'push/resume', @config, params)
47
56
  end
48
57
 
49
- ##
50
- # Stop a historics query or a live stream that is running with push
58
+ # Stop a Push subscription; you will not be able to resume this
59
+ #
60
+ # @param id [String] ID of the Push subscription to stop
51
61
  def stop(id)
52
- params = {:id => id}
62
+ params = { :id => id }
53
63
  requires params
54
64
  DataSift.request(:PUT, 'push/stop', @config, params)
55
65
  end
56
66
 
57
- ##
58
67
  # Deletes an existing push subscription
68
+ #
69
+ # @param id [String] ID of the Push subscription to delete
59
70
  def delete(id)
60
71
  params = {:id => id}
61
72
  requires params
62
73
  DataSift.request(:DELETE, 'push/delete', @config, params)
63
74
  end
64
75
 
65
- ##
66
76
  # Retrieve log messages for a specific subscription
77
+ #
78
+ # @param id [String] ID of the Push subscription to retrieve logs for
79
+ # @param page [Integer] Which page of logs to retreive
80
+ # @param per_page [Integer] How many logs to return per page
81
+ # @param order_by [String, Symbol] Which field to sort results by
82
+ # @param order_dir [String, Symbol] Order results in ascending or descending
67
83
  def log_for(id, page = 1, per_page = 20, order_by = :request_time, order_dir = :desc)
68
84
  params = {
69
- :id => id,
70
- :page => page,
71
- :per_page => per_page,
72
- :order_by => order_by,
73
- :order_dir => order_dir
85
+ :id => id
74
86
  }
87
+ requires params
88
+ params.merge!(
89
+ :page => page,
90
+ :per_page => per_page,
91
+ :order_by => order_by,
92
+ :order_dir => order_dir
93
+ )
75
94
  DataSift.request(:GET, 'push/log', @config, params)
76
95
  end
77
96
 
78
- ##
79
97
  # Retrieve log messages for all subscriptions
98
+ #
99
+ # @param page [Integer] Which page of logs to retreive
100
+ # @param per_page [Integer] How many logs to return per page
101
+ # @param order_by [String, Symbol] Which field to sort results by
102
+ # @param order_dir [String, Symbol] Order results in ascending or descending
80
103
  def log(page = 1, per_page = 20, order_by = :request_time, order_dir = :desc)
81
104
  params = {
82
- :page => page,
83
- :per_page => per_page,
84
- :order_by => order_by,
85
- :order_dir => order_dir
105
+ :page => page,
106
+ :per_page => per_page,
107
+ :order_by => order_by,
108
+ :order_dir => order_dir
86
109
  }
87
110
  DataSift.request(:GET, 'push/log', @config, params)
88
111
  end
89
112
 
90
- ##
91
113
  # Get details of the subscription with the given ID
114
+ #
115
+ # @param id [String] ID of the subscription to retrieve
92
116
  def get_by_subscription(id)
93
117
  params = { :id => id }
94
118
  DataSift.request(:GET, 'push/get', @config, params)
95
119
  end
96
120
 
97
- ##
98
- # Get details of the subscription with the given stream ID/hash
99
- def get_by_hash(hash, page = 1, per_page = 20, order_by = :created_at, order_dir = :desc)
121
+ # Get details of the subscription with the given filter hash
122
+ #
123
+ # @param hash [String] CSDL filter hash
124
+ # @param page [Integer] Which page of logs to retreive
125
+ # @param per_page [Integer] How many logs to return per page
126
+ # @param order_by [String, Symbol] Which field to sort results by
127
+ # @param order_dir [String, Symbol] Order results in ascending or descending
128
+ # @param include_finished [Integer] Include Push subscriptions in a
129
+ # 'finished' state in your results
130
+ # @param all [Boolean] Also include Push subscriptions created via the web
131
+ # UI in your results
132
+ def get_by_hash(hash, page = 1, per_page = 20, order_by = :created_at, order_dir = :desc, include_finished = 0, all = false)
100
133
  params = {
101
- :hash => hash,
102
- :page => page,
103
- :per_page => per_page,
104
- :order_by => order_by,
105
- :order_dir => order_dir
134
+ :hash => hash
106
135
  }
136
+ requires params
137
+ params.merge!(
138
+ :page => page,
139
+ :per_page => per_page,
140
+ :order_by => order_by,
141
+ :order_dir => order_dir,
142
+ :include_finished => include_finished,
143
+ :all => all
144
+ )
107
145
  DataSift.request(:GET, 'push/get', @config, params)
108
146
  end
109
147
 
110
- ##
111
148
  # Get details of the subscription with the given Historics ID
112
- def get_by_historics_id(id, page = 1, per_page = 20, order_by = :created_at, order_dir = :desc)
149
+ #
150
+ # @param historics_id [String] ID of the Historics query for which you are
151
+ # searching for the related Push subscription
152
+ # @param page [Integer] Which page of logs to retreive
153
+ # @param per_page [Integer] How many logs to return per page
154
+ # @param order_by [String, Symbol] Which field to sort results by
155
+ # @param order_dir [String, Symbol] Order results in ascending or descending
156
+ # @param include_finished [Integer] Include Push subscriptions in a
157
+ # 'finished' state in your results
158
+ # @param all [Boolean] Also include Push subscriptions created via the web
159
+ # UI in your results
160
+ def get_by_historics_id(historics_id, page = 1, per_page = 20, order_by = :created_at, order_dir = :desc, include_finished = 0, all = false)
113
161
  params = {
114
- :historics_id => id,
115
- :page => page,
116
- :per_page => per_page,
117
- :order_by => order_by,
118
- :order_dir => order_dir
162
+ :historics_id => historics_id,
163
+ :page => page,
164
+ :per_page => per_page,
165
+ :order_by => order_by,
166
+ :order_dir => order_dir,
167
+ :include_finished => include_finished,
168
+ :all => all
119
169
  }
120
170
  DataSift.request(:GET, 'push/get', @config, params)
121
171
  end
122
172
 
123
- ##
124
173
  # Get details of all subscriptions within the given page constraints
125
- def get(page = 1, per_page = 20, order_by = :created_at, order_dir = :desc)
174
+ #
175
+ # @param page [Integer] Which page of logs to retreive
176
+ # @param per_page [Integer] How many logs to return per page
177
+ # @param order_by [String, Symbol] Which field to sort results by
178
+ # @param order_dir [String, Symbol] Order results in ascending or descending
179
+ # @param include_finished [Integer] Include Push subscriptions in a
180
+ # 'finished' state in your results
181
+ # @param all [Boolean] Also include Push subscriptions created via the web
182
+ # UI in your results
183
+ def get(page = 1, per_page = 20, order_by = :created_at, order_dir = :desc, include_finished = 0, all = false)
126
184
  params = {
127
- :page => page,
128
- :per_page => per_page,
129
- :order_by => order_by,
130
- :order_dir => order_dir
185
+ :page => page,
186
+ :per_page => per_page,
187
+ :order_by => order_by,
188
+ :order_dir => order_dir,
189
+ :include_finished => include_finished,
190
+ :all => all
131
191
  }
132
192
  DataSift.request(:GET, 'push/get', @config, params)
133
193
  end
134
194
 
135
- ##
136
195
  # Pull data from a 'pull' type Push Subscription
137
- def pull(id, size = 52428800, cursor = '', callback = nil)
196
+ #
197
+ # @param id [String] ID of the Push subscription to pull data from
198
+ # @param size [Integer] Max size (bytes) of the data that should be returned
199
+ # @param cursor [String] Point to a specific point in your Push buffer using
200
+ # a cursor
201
+ # @param callback [Method] Pass a callback to process each interaction
202
+ # returned from a successful pull request
203
+ def pull(id, size = 52_428_800, cursor = '', callback = nil)
138
204
  params = {
139
- :id => id,
140
- :size => size,
141
- :cursor => cursor
205
+ :id => id
142
206
  }
143
- if callback
144
- params.merge!({:on_interaction => callback})
145
- end
207
+ requires params
208
+ params.merge!(
209
+ :size => size,
210
+ :cursor => cursor
211
+ )
212
+ params.merge!({:on_interaction => callback}) unless callback.nil?
146
213
  DataSift.request(:GET, 'pull', @config, params, {}, 30, 30, true)
147
214
  end
148
215
  end