thisdata 0.2.0 → 0.2.1
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 +4 -4
- data/README.md +48 -0
- data/lib/this_data/client.rb +6 -0
- data/lib/this_data/rule.rb +62 -0
- data/lib/this_data/version.rb +1 -1
- data/lib/this_data.rb +2 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dcdcde8de9993cf31989f0b1f8d44d58ecb5b12
|
4
|
+
data.tar.gz: 66da007fd238510bbab8967a3107a0f509e21b72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dac75e9d1960a4cf841fed96653d8b0c421ffc223a63b0e3116818b7f7e3e7c2282921a147492d53a47186901fdc4093a457d99c381e68b1059a6e81ddcf08c
|
7
|
+
data.tar.gz: 0cf6a8b109ca9b392be6e34e819e582a94123beef84f2e3adb41e75e14855defa014c5737feda7424f42bded94483eb692e27f90638149aa63412b43c88f3d25
|
data/README.md
CHANGED
@@ -100,6 +100,54 @@ events.first.user.id
|
|
100
100
|
=> "112233"
|
101
101
|
```
|
102
102
|
|
103
|
+
#### Managing custom Rules
|
104
|
+
You can get, create, update and delete custom rules. Note that no error handling is done
|
105
|
+
within the API wrapper so you will need to watch out for error `messages` in the
|
106
|
+
response body of each call.
|
107
|
+
|
108
|
+
Create a rule
|
109
|
+
```ruby
|
110
|
+
# returns an OpenStruct rule
|
111
|
+
|
112
|
+
rule = ThisData::Rule.create({
|
113
|
+
name: "Blacklist all ipv4 addresses",
|
114
|
+
description: "Blocks every possible ipv4 address",
|
115
|
+
type: "blacklist",
|
116
|
+
target: "location.ip",
|
117
|
+
filters: ["0.0.0.0/0"]
|
118
|
+
})
|
119
|
+
|
120
|
+
puts rule.id
|
121
|
+
puts rule.name
|
122
|
+
...
|
123
|
+
```
|
124
|
+
|
125
|
+
List all rules
|
126
|
+
```ruby
|
127
|
+
rules = ThisData::Rule.all
|
128
|
+
```
|
129
|
+
|
130
|
+
Find a single rule
|
131
|
+
```ruby
|
132
|
+
rule = ThisData::Rule.find(1234567)
|
133
|
+
```
|
134
|
+
|
135
|
+
Update a rule
|
136
|
+
```ruby
|
137
|
+
# id is reqired. Other params are optional
|
138
|
+
|
139
|
+
ThisData::Rule.update({
|
140
|
+
id: "123456",
|
141
|
+
filters: ["0.0.0.0/0",""]
|
142
|
+
})
|
143
|
+
```
|
144
|
+
|
145
|
+
Delete a rule
|
146
|
+
```ruby
|
147
|
+
# returns bool
|
148
|
+
ThisData::Rule.delete(123456)
|
149
|
+
```
|
150
|
+
|
103
151
|
### Rails
|
104
152
|
|
105
153
|
#### Set Up
|
data/lib/this_data/client.rb
CHANGED
@@ -48,6 +48,12 @@ module ThisData
|
|
48
48
|
self.class.post(path, query: query, headers: @headers, body: body)
|
49
49
|
end
|
50
50
|
|
51
|
+
# Perform a DELETE request against the ThisData API, with the API key
|
52
|
+
# prepopulated
|
53
|
+
def delete(path)
|
54
|
+
self.class.delete(path, query: @default_query, headers: @headers)
|
55
|
+
end
|
56
|
+
|
51
57
|
private
|
52
58
|
|
53
59
|
def version
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# A wrapper for the GET /rules API
|
2
|
+
#
|
3
|
+
# Note: No error handling is included in this wrapper
|
4
|
+
#
|
5
|
+
module ThisData
|
6
|
+
class Rule
|
7
|
+
|
8
|
+
# Fetch an array of Rules from the ThisData API
|
9
|
+
# Available options can be found at
|
10
|
+
# http://help.thisdata.com/docs/v1rules
|
11
|
+
#
|
12
|
+
# Returns: Array of OpenStruct Rule objects
|
13
|
+
def self.find(id)
|
14
|
+
response = ThisData::Client.new.get("#{ThisData::RULES_ENDPOINT}/#{id}")
|
15
|
+
OpenStruct.new( response.parsed_response)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Fetch an array of Rules from the ThisData API
|
19
|
+
# Available options can be found at
|
20
|
+
# http://help.thisdata.com/docs/v1rules
|
21
|
+
#
|
22
|
+
# Returns: Array of OpenStruct Rule objects
|
23
|
+
def self.all
|
24
|
+
response = ThisData::Client.new.get(ThisData::RULES_ENDPOINT)
|
25
|
+
response.parsed_response.collect do |rule_hash|
|
26
|
+
OpenStruct.new(rule_hash)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create a new rule on the ThisData API
|
31
|
+
# Available options can be found at
|
32
|
+
# http://help.thisdata.com/docs/v1rules-1
|
33
|
+
#
|
34
|
+
# Returns: OpenStruct Rule object
|
35
|
+
def self.create(rule)
|
36
|
+
response = ThisData::Client.new.post(ThisData::RULES_ENDPOINT, body: JSON.generate(rule))
|
37
|
+
OpenStruct.new(response.parsed_response)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Update a rule on the ThisData API
|
41
|
+
# Available options can be found at
|
42
|
+
# http://help.thisdata.com/docs/v1rulesid-1
|
43
|
+
#
|
44
|
+
# Returns: OpenStruct Rule object
|
45
|
+
def self.update(rule)
|
46
|
+
rule_id = OpenStruct.new(rule).id
|
47
|
+
response = ThisData::Client.new.post("#{ThisData::RULES_ENDPOINT}/#{rule_id}", body: JSON.generate(rule))
|
48
|
+
OpenStruct.new(response.parsed_response)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Delete a rule on the ThisData API
|
52
|
+
# Available options can be found at
|
53
|
+
# http://help.thisdata.com/docs/v1rulesid-2
|
54
|
+
#
|
55
|
+
# Returns: OpenStruct Rule object
|
56
|
+
def self.destroy(id)
|
57
|
+
response = ThisData::Client.new.delete("#{ThisData::RULES_ENDPOINT}/#{id}")
|
58
|
+
response.code.eql?(204)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
data/lib/this_data/version.rb
CHANGED
data/lib/this_data.rb
CHANGED
@@ -2,6 +2,7 @@ require "httparty"
|
|
2
2
|
require "logger"
|
3
3
|
require "json"
|
4
4
|
|
5
|
+
require "this_data/rule"
|
5
6
|
require "this_data/event"
|
6
7
|
require "this_data/version"
|
7
8
|
require "this_data/verbs"
|
@@ -15,6 +16,7 @@ module ThisData
|
|
15
16
|
# API Endpoint Paths
|
16
17
|
EVENTS_ENDPOINT = '/events'
|
17
18
|
VERIFY_ENDPOINT = '/verify'
|
19
|
+
RULES_ENDPOINT = '/rules'
|
18
20
|
|
19
21
|
# Risk level constants, defined at http://help.thisdata.com/docs/apiv1verify#what-does-the-risk_level-mean
|
20
22
|
RISK_LEVEL_GREEN = 'green'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thisdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ThisData Ltd
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/this_data/client.rb
|
133
133
|
- lib/this_data/configuration.rb
|
134
134
|
- lib/this_data/event.rb
|
135
|
+
- lib/this_data/rule.rb
|
135
136
|
- lib/this_data/track_request.rb
|
136
137
|
- lib/this_data/verbs.rb
|
137
138
|
- lib/this_data/version.rb
|
@@ -158,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
159
|
version: '0'
|
159
160
|
requirements: []
|
160
161
|
rubyforge_project:
|
161
|
-
rubygems_version: 2.
|
162
|
+
rubygems_version: 2.2.2
|
162
163
|
signing_key:
|
163
164
|
specification_version: 4
|
164
165
|
summary: Ruby wrapper for ThisData's Login Intelligence API
|