gnip-client 0.1.8 → 0.1.9

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