gnip-client 0.1.8 → 0.1.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7db523bd6ac69ada3f363c2f675ae783a78334f
4
- data.tar.gz: 84a9d3a0a5dfc0ec1898627a04da3b7b42474571
3
+ metadata.gz: 29fc5f29ca80ad4cc0890c96fe11ede63cc3cfae
4
+ data.tar.gz: 343351bcd72e115270688bdd71d17952a4072ad7
5
5
  SHA512:
6
- metadata.gz: e2d5f4c2727a740c30efda269c801c0e15b2e50df392166e661fdb14739fabdffda5e9b41a4d83b53193cc19ca5a2e62bbe33208171868dabca64537e7212591
7
- data.tar.gz: b179744c41fe4e1d0a9187fa2bed29c44fcb3ca62fac9f8b9c39f4b33bd9b65320629419304fd64a6dc2a710c4ee0f870ca6b23507cf9c7eae38e0c7829e46d4
6
+ metadata.gz: e3d24eac3276135861abe708a47c17d15a16fb9ccf2676fb7f430d087e5c9b9991325f45cf33ec1b13183af2f27f933f27e9d8cfd63b6645b4aa6d53cf882f73
7
+ data.tar.gz: 8c2624f96f34bea6d7bb8fa5cbd1a0e2d5b37d8dad6f903802fe1c4af8f947be90e8b662ad6e07ca7671490c43e856edf171632aca9823e9bf49dff90982a2e3
@@ -14,37 +14,85 @@ module Gnip
14
14
  #Add rules to PowerTrack rules
15
15
  #rules should be an hash in the format {"rules": [{"value": "rule1", "tag": "tag1"}, {"value":"rule2"}]}"
16
16
  def add(rules)
17
- self.class.post(self.rules_url, basic_auth: @auth, body: rules.to_json)
17
+ begin
18
+ response = self.class.post(self.rules_url, basic_auth: @auth, body: rules.to_json)
19
+ if response.parsed_response["error"].present?
20
+ { status: :error, code: response.response.code, error: response.parsed_response["error"]["message"] }
21
+ else
22
+ { status: :success, code: response.response.code }
23
+ end
24
+ rescue Exception => e
25
+ { status: :error, code: 500, error: e.message }
26
+ end
27
+
18
28
  end
19
29
 
20
30
  #Remove rules from PowerTrack rules
21
31
  #rules should be an hash in the format {"rules": [{"value": "rule1", "tag": "tag1"}, {"value":"rule2"}]}"
22
32
  def remove(rules)
23
- self.class.delete(self.rules_url, basic_auth: @auth, body: rules.to_json)
33
+ begin
34
+ response = self.class.delete(self.rules_url, basic_auth: @auth, body: rules.to_json)
35
+ if response.parsed_response["error"].present?
36
+ { status: :error, code: response.response.code, error: response.parsed_response["error"]["message"] }
37
+ else
38
+ { status: :success, code: response.response.code }
39
+ end
40
+ rescue Exception => e
41
+ { status: :error, code: 500, error: e.message }
42
+ end
43
+
24
44
  end
25
45
 
26
46
  #Get the full list of rules
27
47
  def list
28
- self.class.get(self.rules_url, basic_auth: @auth).parsed_response.slice("rules")
48
+ begin
49
+ response = self.class.get(self.rules_url, basic_auth: @auth)
50
+ { rules: response.parsed_response["rules"], status: :success, code: response.response.code }
51
+ rescue Exception => e
52
+ { status: :error, code: 500, error: e.message }
53
+ end
54
+ end
55
+
56
+ #Get the full list of rules by tag
57
+ def list_by_tag(tag)
58
+ begin
59
+ response = self.class.get(self.rules_url, basic_auth: @auth)
60
+ rules = response.parsed_response["rules"]
61
+ return { rules: rules.select{|rule| rule["tag"] == tag} }.merge({ status: :success, code: response.response.code })
62
+ rescue Exception => e
63
+ { status: :error, code: 500, error: e.message }
64
+ end
65
+
29
66
  end
30
67
 
31
68
  #delete all rules from PowerTrack
32
69
  #http://support.gnip.com/apis/powertrack/api_reference.html#DeleteRules
33
70
  #Request Body Size Limit 1 MB (~5000 rules)
34
71
  def delete_all!
35
- rules_list = self.list
36
- rules_list["rules"].in_groups_of(2, false).each do |group_of_rules|
37
- self.remove({ "rules": group_of_rules })
38
- end
39
- sleep 0.05
40
- rules_list = self.list
41
- if !rules_list["rules"].size.zero?
42
- self.delete_all!
43
- else
44
- return []
72
+ retry_times = 0
73
+ begin
74
+ rules_list = self.list
75
+ rules_list["rules"].in_groups_of(2, false).each do |group_of_rules|
76
+ self.remove({ "rules": group_of_rules })
77
+ end
78
+ sleep 0.05
79
+ rules_list = self.list
80
+ if !rules_list["rules"].size.zero?
81
+ self.delete_all!
82
+ else
83
+ return { status: :success, code: 200, rules: []}
84
+ end
85
+ rescue Exception => e
86
+ retry_times += 1
87
+ if retry_times <= 3
88
+ retry
89
+ else
90
+ { status: :error, code: 500, error: e.message}
91
+ end
45
92
  end
93
+
46
94
  end
95
+
47
96
  end
48
-
49
97
  end
50
98
  end
data/lib/gnip/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gnip
2
- VERSION = "0.1.8"
3
- end
2
+ VERSION = "0.1.9"
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnip-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Duccio Giovannelli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2015-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler