impermium 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/MIT-LICENSE.txt +20 -0
- data/README.md +118 -0
- data/Rakefile +7 -0
- data/impermium.gemspec +31 -0
- data/lib/faraday/raise_4xx.rb +18 -0
- data/lib/impermium/client.rb +57 -0
- data/lib/impermium/configuration.rb +44 -0
- data/lib/impermium/content/blog_post.rb +38 -0
- data/lib/impermium/content/bookmark.rb +47 -0
- data/lib/impermium/content/comment.rb +38 -0
- data/lib/impermium/content/connection.rb +42 -0
- data/lib/impermium/content/listing.rb +37 -0
- data/lib/impermium/content.rb +15 -0
- data/lib/impermium/errors.rb +25 -0
- data/lib/impermium/user/account.rb +50 -0
- data/lib/impermium/user/profile.rb +35 -0
- data/lib/impermium/user.rb +9 -0
- data/lib/impermium/version.rb +3 -0
- data/lib/impermium.rb +20 -0
- data/spec/.gitignore +1 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_analyst_feedback_method/missing_arguments/missing_blog_post_id.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_analyst_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_blog_post_id.yml +43 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_blog_post_permalink.yml +43 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_blog_url.yml +43 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_content.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_enduser_ip.yml +43 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/missing_arguments/missing_user_id.yml +43 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_method/successful_blog_post_request.yml +39 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/missing_arguments/missing_blog_post_id.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/blog_post_object/blog_post_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_analyst_feedback_method/missing_arguments/missing_bookmark_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_analyst_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/missing_arguments/missing_bookmark_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/missing_arguments/missing_bookmark_url.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/missing_arguments/missing_like_value.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_like_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_method/missing_arguments/missing_bookmark_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_method/missing_arguments/missing_bookmark_url.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/missing_arguments/missing_bookmark_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/bookmark_object/bookmark_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/comment_object/comment_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_analyst_feedback_method/missing_arguments/missing_comment_id.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_analyst_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_article_permalink.yml +43 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_comment_id.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_comment_permalink.yml +43 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_content.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_enduser_ip.yml +43 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/missing_arguments/missing_user_id.yml +43 -0
- data/spec/cassettes/content_API_section/comment_object/comment_method/successful_request.yml +39 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/missing_arguments/missing_comment_id.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/comment_object/comment_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/missing_arguments/invalid_connection_type_value.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/missing_arguments/missing_connection_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/missing_arguments/missing_connection_type.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/invalid_connection_type_value.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/invalid_operation_value.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/missing_connection_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/missing_connection_type.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/missing_requester_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/missing_arguments/missing_responder_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/successful_follow_connection_request.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/successful_follow_connection_response.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/successful_friend_connection_request.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_method/successful_friend_connection_response.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/invalid_connection_type_value.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/missing_connection_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/missing_connection_type.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/connection_object/connection_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/listing_object/listing_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_analyst_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_analyst_feedback_method/missing_arguments/missing_listing_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/missing_arguments/missing_content.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/missing_arguments/missing_listing_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/missing_arguments/missing_listing_permalink.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_method/successful_request.yml +38 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/missing_arguments/missing_listing_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/content_API_section/listing_object/listing_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_analyst_feedback_method/missing_arguments/missing_analyst_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_analyst_feedback_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_analyst_feedback_method/successful_account_analyst_feedback_method_request.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_attempt_method/missing_arguments.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_attempt_method/successful_account_attempt_request.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_login_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_login_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_login_method/successful_account_login_request.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_method/successful_account_method_request.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/account_object/account_user_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/user_API_section/profile_object/profile_analyst_feedback_method/missing_params/missing_analyst_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_analyst_feedback_method/missing_params/missing_desired_result.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_analyst_feedback_method/missing_params/missing_profile_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_analyst_feedback_method/successful_request.yml +38 -0
- data/spec/cassettes/user_API_section/profile_object/profile_method/missing_arguments/missing_enduser_ip.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_method/missing_arguments/missing_profile_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_method/missing_arguments/missing_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_method/successful_request.yml +38 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/missing_arguments/invalid_reporter_user_type.yml +38 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/missing_arguments/missing_desired_result.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/missing_arguments/missing_profile_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/missing_arguments/missing_reporter_ip.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/missing_arguments/missing_reporter_user_id.yml +42 -0
- data/spec/cassettes/user_API_section/profile_object/profile_user_feedback_method/successful_request.yml +38 -0
- data/spec/configuration.yml.sample +3 -0
- data/spec/impermium/client_spec.rb +67 -0
- data/spec/impermium/content/blog_post_spec.rb +173 -0
- data/spec/impermium/content/bookmark_spec.rb +205 -0
- data/spec/impermium/content/comment_spec.rb +178 -0
- data/spec/impermium/content/connection_spec.rb +257 -0
- data/spec/impermium/content/listing_spec.rb +169 -0
- data/spec/impermium/user/account_spec.rb +184 -0
- data/spec/impermium/user/profile_spec.rb +154 -0
- data/spec/spec_helper.rb +32 -0
- metadata +433 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour -f d
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create ruby-1.9.3-p0@whi
|
data/Gemfile
ADDED
data/MIT-LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 WHI Inc, Juanjo Bazán, Bosko Ivanisevic and Neil Berkman
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# Impermium #
|
2
|
+
|
3
|
+
Ruby wrapper for the [Impermium API](http://impermium.com).
|
4
|
+
|
5
|
+
* gem version 1.0.0 supports the Impermium API version 3.1
|
6
|
+
|
7
|
+
## Usage ##
|
8
|
+
|
9
|
+
In order to use Impermium gem you must get an Impermium API key.
|
10
|
+
|
11
|
+
### Instantiate and configure a client ###
|
12
|
+
|
13
|
+
The Impermium client can be instantiated and configured in several ways. A new client can be created with
|
14
|
+
|
15
|
+
client = Impermium.new(:api_key => <your_api_key>)
|
16
|
+
|
17
|
+
which is actually short way of
|
18
|
+
|
19
|
+
client = Impermium::Client.new(:api_key => <your_api_key>)
|
20
|
+
|
21
|
+
Constructor accepts a hash of options that can be used to configure the Impermium client. Valid hash keys are
|
22
|
+
|
23
|
+
* `:adapter` (sets Faraday adapter)
|
24
|
+
* `:api_version` (sets Impermium API version - default 3.1)
|
25
|
+
* `:api_key` (sets API key)
|
26
|
+
* `:client_name` (sets client name)
|
27
|
+
* `:client_id` (sets client ID)
|
28
|
+
* `:endpoint` (sets URL to Impermium server - default http://api.impermium.com)
|
29
|
+
|
30
|
+
Either of these values can be set directly too:
|
31
|
+
|
32
|
+
* client = Impermium.new
|
33
|
+
* client.api_key = <your_api_key>
|
34
|
+
* client.endpoint = "http://api-test.impermium.com"
|
35
|
+
|
36
|
+
Finally, Impermium client can be configured through a block with:
|
37
|
+
|
38
|
+
Impermium.configure do |conf|
|
39
|
+
conf.api_key = <your_api_key>
|
40
|
+
conf.endpoint = "http://api-test.impermium.com"
|
41
|
+
end
|
42
|
+
|
43
|
+
client = Impermium.new
|
44
|
+
|
45
|
+
### Calling API methods ###
|
46
|
+
|
47
|
+
Each method accepts the mandatory arguments of the correspondent API call, and have an options hash and a block as optional arguments. Here is the list of all supported methods and their mandatory arguments:
|
48
|
+
|
49
|
+
* __USER__
|
50
|
+
+ __Account:__
|
51
|
+
- `client.account(user_id, enduser_ip)`
|
52
|
+
- `client.account_attempt(enduser_ip)`
|
53
|
+
- `client.account_login(user_id, enduser_ip)`
|
54
|
+
- `client.account_analyst_feedback(analyst_id, user_id, desired_result)`
|
55
|
+
- `client.account_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, user_id, desired_result)`
|
56
|
+
|
57
|
+
+ __Profile:__
|
58
|
+
- `client.profile(user_id, profile_id, enduser_ip)`
|
59
|
+
- `client.profile_analyst_feedback(profile_id, analyst_id, desired_result)`
|
60
|
+
- `client.profile_user_feedback(profile_id, rep_usr_id, rep_usr_type, reporter_ip, desired_result)`
|
61
|
+
|
62
|
+
* __CONTENT__
|
63
|
+
+ __Blog post:__
|
64
|
+
- `client.blog_post(user_id, blog_post_id, content, blog_post_permalink, blog_url, enduser_ip)`
|
65
|
+
- `client.blog_post_analyst_feedback(analyst_id, blog_post_id, desired_result)`
|
66
|
+
- `client.blog_post_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, blog_post_id, desired_result)`
|
67
|
+
|
68
|
+
+ __Bookmark:__
|
69
|
+
- `client.bookmark(user_id, bookmark_id, bookmark_url, enduser_ip)`
|
70
|
+
- `client.bookmark_like(user_id, bookmark_id, bookmark_url, like_value, enduser_ip)`
|
71
|
+
- `client.bookmark_analyst_feedback(analyst_id, bookmark_id, desired_result)`
|
72
|
+
- `client.bookmark_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, bookmark_id, desired_result)`
|
73
|
+
|
74
|
+
+ __Comment:__
|
75
|
+
- `client.comment(user_id, comment_id, content, comment_permalink, article_permalink, enduser_ip)`
|
76
|
+
- `client.comment_analyst_feedback(analyst_id, comment_id, desired_result)`
|
77
|
+
- `client.comment_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, comment_id, desired_result)`
|
78
|
+
|
79
|
+
+ __Connection:__
|
80
|
+
- `client.connection(operation, connection_type, connection_id, requester_user_id, responder_user_id, enduser_ip)`
|
81
|
+
- `client.connection_analyst_feedback(analyst_id, connection_type, connection_id, desired_result)`
|
82
|
+
- `client.connection_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, connection_type, connection_id, desired_result)`
|
83
|
+
|
84
|
+
+ __Listing:__
|
85
|
+
- `client.listing(user_id, listing_id, content, listing_permalink, enduser_ip)`
|
86
|
+
- `client.listing_analyst_feedback(analyst_id, listing_id, desired_result)`
|
87
|
+
- `client.listing_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, listing_id, desired_result)`
|
88
|
+
|
89
|
+
Additional arguments can be passed through the hash which is the last argument for every method
|
90
|
+
|
91
|
+
client.account('33', '255.255.255.255', {:alias => "user33", :password_hash=>'7d222a5d269a'})
|
92
|
+
|
93
|
+
If request headers have to be set it can be done through block
|
94
|
+
|
95
|
+
Impermium.account('33', '255.255.255.255') do |req|
|
96
|
+
req.headers = {:http_user_agent => "Impermium gem 1.0.0"}
|
97
|
+
end
|
98
|
+
|
99
|
+
You can find the complete arguments lists and types in the official Impermium API docs site.
|
100
|
+
|
101
|
+
### Responses ###
|
102
|
+
|
103
|
+
Any method call receiving a successful response from impermium API will return a Hash like structure containing the body of the response, typically including `response_id`, `timestamp` and posibly `spam_classifier` and any other additional classifiers.
|
104
|
+
|
105
|
+
Any 4XX response will raise an Impermium Exception with the body of the response in the error message.
|
106
|
+
|
107
|
+
* A 400 status response from the impermium API will raise an `Impermium::BadRequest`
|
108
|
+
* A 401 status response from the impermium API will raise an `Impermium::UnauthorizedRequest`
|
109
|
+
* A 403 status response from the impermium API will raise an `Impermium::ForbiddenRequest`
|
110
|
+
* A 404 status response from the impermium API will raise an `Impermium::NotFoundRequest`
|
111
|
+
|
112
|
+
## Credits ##
|
113
|
+
|
114
|
+
Here is the [list of contributors](https://github.com/weheartit/impermium/contributors)\.
|
115
|
+
|
116
|
+
## License ##
|
117
|
+
|
118
|
+
Copyright 2012 WHI Inc. \([weheartit.com](http://weheartit.com)\), released under the MIT license.
|
data/Rakefile
ADDED
data/impermium.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "impermium/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "impermium"
|
7
|
+
s.version = Impermium::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
10
|
+
|
11
|
+
s.authors = ["Juanjo Bazán", "Bosko Ivanisevic", "Neil Berkman"]
|
12
|
+
s.email = ["jjbazan@gmail.com"]
|
13
|
+
s.homepage = "https://github.com/weheartit/impermium"
|
14
|
+
s.summary = "Impermium API wrapper"
|
15
|
+
s.description = "Ruby wrapper for the Impermium social spam API"
|
16
|
+
|
17
|
+
s.add_dependency "faraday", "~> 0.7.4"
|
18
|
+
s.add_dependency "faraday_middleware", "~> 0.7.0"
|
19
|
+
s.add_dependency "hashie", "~> 1.1.0"
|
20
|
+
s.add_dependency "yajl-ruby", "~> 0.8.3"
|
21
|
+
s.add_dependency "multi_json"
|
22
|
+
|
23
|
+
s.add_development_dependency "rspec", "~> 2.8.0"
|
24
|
+
s.add_development_dependency "webmock", "~> 1.8.1"
|
25
|
+
s.add_development_dependency "vcr", "~> 2.0.0"
|
26
|
+
|
27
|
+
s.files = `git ls-files`.split("\n")
|
28
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
29
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
30
|
+
s.require_paths = ["lib"]
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
3
|
+
module Faraday
|
4
|
+
class Response::Raise4xx < Response::Middleware
|
5
|
+
def on_complete(env)
|
6
|
+
case env[:status].to_i
|
7
|
+
when 400
|
8
|
+
raise Impermium::BadRequest.new(env[:method].to_s.upcase, env[:url].to_s, env[:body])
|
9
|
+
when 401
|
10
|
+
raise Impermium::UnauthorizedRequest.new(env[:method].to_s.upcase, env[:url].to_s, env[:body])
|
11
|
+
when 403
|
12
|
+
raise Impermium::ForbiddenRequest.new(env[:method].to_s.upcase, env[:url].to_s, env[:body])
|
13
|
+
when 404
|
14
|
+
raise Impermium::NotFoundRequest.new(env[:method].to_s.upcase, env[:url].to_s, env[:body])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require "uri"
|
2
|
+
require "faraday"
|
3
|
+
require "faraday_middleware"
|
4
|
+
require "impermium/configuration"
|
5
|
+
require "impermium/content"
|
6
|
+
require "impermium/errors"
|
7
|
+
require "impermium/user"
|
8
|
+
require "faraday/raise_4xx"
|
9
|
+
|
10
|
+
module Impermium
|
11
|
+
class Client
|
12
|
+
include Configuration
|
13
|
+
include Content
|
14
|
+
include User
|
15
|
+
|
16
|
+
def initialize(options = {})
|
17
|
+
options = Impermium.options.merge(options)
|
18
|
+
Configuration::VALID_CONFIG_KEYS.each do |key|
|
19
|
+
send("#{key}=", options[key])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def api_connection
|
24
|
+
@api_connection ||= Faraday.new(:url => endpoint, :headers => default_headers) do |builder|
|
25
|
+
builder.use Faraday::Response::Mashify
|
26
|
+
builder.use Faraday::Response::ParseJson
|
27
|
+
builder.use Faraday::Response::Raise4xx
|
28
|
+
builder.request :json
|
29
|
+
|
30
|
+
builder.adapter adapter
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def post(url, options={})
|
35
|
+
api_connection.post do |req|
|
36
|
+
req.url api_url(url)
|
37
|
+
req.body = options
|
38
|
+
req.headers['Content-Type'] = 'application/json'
|
39
|
+
yield req if block_given?
|
40
|
+
end.body
|
41
|
+
end
|
42
|
+
|
43
|
+
def api_url(request_path)
|
44
|
+
url = URI.join(endpoint,
|
45
|
+
request_path[-1] == '/' ? request_path : request_path + "/",
|
46
|
+
api_version + "/",
|
47
|
+
api_key + "/").to_s
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def default_headers
|
53
|
+
{ :http_user_agent => "Impermium Ruby Gem",
|
54
|
+
:http_accept => "application/json"}
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Configuration
|
3
|
+
VALID_CONFIG_KEYS = [
|
4
|
+
:adapter,
|
5
|
+
:api_version,
|
6
|
+
:api_key,
|
7
|
+
:client_name,
|
8
|
+
:client_id,
|
9
|
+
:endpoint
|
10
|
+
].freeze
|
11
|
+
|
12
|
+
DEFAULT_ADAPTER = :net_http
|
13
|
+
DEFAULT_API_VERSION = "3.1"
|
14
|
+
DEFAULT_API_KEY = nil
|
15
|
+
DEFAULT_CLIENT_NAME = nil
|
16
|
+
DEFAULT_CLIENT_ID = nil
|
17
|
+
DEFAULT_ENDPOINT = "http://api.impermium.com"
|
18
|
+
|
19
|
+
attr_accessor *VALID_CONFIG_KEYS
|
20
|
+
|
21
|
+
def self.extended(base)
|
22
|
+
base.reset
|
23
|
+
end
|
24
|
+
|
25
|
+
def configure
|
26
|
+
yield self
|
27
|
+
end
|
28
|
+
|
29
|
+
def options
|
30
|
+
options = {}
|
31
|
+
VALID_CONFIG_KEYS.each { |key| options[key] = send(key) }
|
32
|
+
options
|
33
|
+
end
|
34
|
+
|
35
|
+
def reset
|
36
|
+
self.adapter = DEFAULT_ADAPTER
|
37
|
+
self.api_version = DEFAULT_API_VERSION
|
38
|
+
self.api_key = DEFAULT_API_KEY
|
39
|
+
self.client_name = DEFAULT_CLIENT_NAME
|
40
|
+
self.client_id = DEFAULT_CLIENT_ID
|
41
|
+
self.endpoint = DEFAULT_ENDPOINT
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Impermium
|
2
|
+
module BlogPost
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def blog_post(user_id, blog_post_id, content, blog_post_permalink, blog_url, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:blog_post_id => blog_post_id,
|
9
|
+
:content => content,
|
10
|
+
:blog_post_permalink => blog_post_permalink,
|
11
|
+
:blog_url => blog_url,
|
12
|
+
:enduser_ip => enduser_ip
|
13
|
+
)
|
14
|
+
post("blog_post", options, &block)
|
15
|
+
end
|
16
|
+
|
17
|
+
def blog_post_analyst_feedback(analyst_id, blog_post_id, desired_result, options={}, &block)
|
18
|
+
options.merge!(
|
19
|
+
:analyst_id => analyst_id,
|
20
|
+
:blog_post_id => blog_post_id,
|
21
|
+
:desired_result => desired_result
|
22
|
+
)
|
23
|
+
post("blog_post/analyst_feedback", options, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def blog_post_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, blog_post_id, desired_result, options={}, &block)
|
27
|
+
options.merge!(
|
28
|
+
:reporter_user_id => rep_usr_id,
|
29
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
30
|
+
:reporter_ip => reporter_ip,
|
31
|
+
:blog_post_id => blog_post_id,
|
32
|
+
:desired_result => desired_result
|
33
|
+
)
|
34
|
+
post("blog_post/user_feedback", options, &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Bookmark
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def bookmark(user_id, bookmark_id, bookmark_url, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:bookmark_id => bookmark_id,
|
9
|
+
:bookmark_url => bookmark_url,
|
10
|
+
:enduser_ip => enduser_ip
|
11
|
+
)
|
12
|
+
post("bookmark", options, &block)
|
13
|
+
end
|
14
|
+
|
15
|
+
def bookmark_like(user_id, bookmark_id, bookmark_url, like_value, enduser_ip, options={}, &block)
|
16
|
+
options.merge!(
|
17
|
+
:user_id => user_id,
|
18
|
+
:bookmark_id => bookmark_id,
|
19
|
+
:bookmark_url => bookmark_url,
|
20
|
+
:like_value => like_value,
|
21
|
+
:enduser_ip => enduser_ip
|
22
|
+
)
|
23
|
+
post("bookmark/like", options, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def bookmark_analyst_feedback(analyst_id, bookmark_id, desired_result, options={}, &block)
|
27
|
+
options.merge!(
|
28
|
+
:analyst_id => analyst_id,
|
29
|
+
:bookmark_id => bookmark_id,
|
30
|
+
:desired_result => desired_result
|
31
|
+
)
|
32
|
+
post("bookmark/analyst_feedback", options, &block)
|
33
|
+
end
|
34
|
+
|
35
|
+
def bookmark_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, bookmark_id, desired_result, options={}, &block)
|
36
|
+
options.merge!(
|
37
|
+
:reporter_user_id => rep_usr_id,
|
38
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
39
|
+
:reporter_ip => reporter_ip,
|
40
|
+
:bookmark_id => bookmark_id,
|
41
|
+
:desired_result => desired_result
|
42
|
+
)
|
43
|
+
post("bookmark/user_feedback", options, &block)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Comment
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def comment(user_id, comment_id, content, comment_permalink, article_permalink, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:comment_id => comment_id,
|
9
|
+
:content => content,
|
10
|
+
:comment_permalink => comment_permalink,
|
11
|
+
:article_permalink => article_permalink,
|
12
|
+
:enduser_ip => enduser_ip
|
13
|
+
)
|
14
|
+
post("comment", options, &block)
|
15
|
+
end
|
16
|
+
|
17
|
+
def comment_analyst_feedback(analyst_id, comment_id, desired_result, options={}, &block)
|
18
|
+
options.merge!(
|
19
|
+
:analyst_id => analyst_id,
|
20
|
+
:comment_id => comment_id,
|
21
|
+
:desired_result => desired_result
|
22
|
+
)
|
23
|
+
post("comment/analyst_feedback", options, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def comment_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, comment_id, desired_result, options={}, &block)
|
27
|
+
options.merge!(
|
28
|
+
:reporter_user_id => rep_usr_id,
|
29
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
30
|
+
:reporter_ip => reporter_ip,
|
31
|
+
:comment_id => comment_id,
|
32
|
+
:desired_result => desired_result
|
33
|
+
)
|
34
|
+
post("comment/user_feedback", options, &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Connection
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
OPERATION_VALUES = ['request', 'response'] # => default first
|
5
|
+
CONNECTION_TYPE_VALUES = ['follow', 'friend']
|
6
|
+
|
7
|
+
def connection(operation, connection_type, connection_id, requester_user_id, responder_user_id, enduser_ip, options={}, &block)
|
8
|
+
options.merge!(
|
9
|
+
:operation => OPERATION_VALUES.include?(operation) ? operation : OPERATION_VALUES.first,
|
10
|
+
:connection_type => connection_type,
|
11
|
+
:connection_id => connection_id,
|
12
|
+
:requester_user_id => requester_user_id,
|
13
|
+
:responder_user_id => responder_user_id,
|
14
|
+
:enduser_ip => enduser_ip
|
15
|
+
)
|
16
|
+
post("connection", options, &block)
|
17
|
+
end
|
18
|
+
|
19
|
+
def connection_analyst_feedback(analyst_id, connection_type, connection_id, desired_result, options={}, &block)
|
20
|
+
options.merge!(
|
21
|
+
:analyst_id => analyst_id,
|
22
|
+
:connection_type => connection_type,
|
23
|
+
:connection_id => connection_id,
|
24
|
+
:desired_result => desired_result
|
25
|
+
)
|
26
|
+
post("connection/analyst_feedback", options, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
def connection_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, connection_type, connection_id, desired_result, options={}, &block)
|
30
|
+
options.merge!(
|
31
|
+
:reporter_user_id => rep_usr_id,
|
32
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
33
|
+
:reporter_ip => reporter_ip,
|
34
|
+
:connection_type => connection_type,
|
35
|
+
:connection_id => connection_id,
|
36
|
+
:desired_result => desired_result
|
37
|
+
)
|
38
|
+
post("connection/user_feedback", options, &block)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Listing
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def listing(user_id, listing_id, content, listing_permalink, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:listing_id => listing_id,
|
9
|
+
:content => content,
|
10
|
+
:listing_permalink => listing_permalink,
|
11
|
+
:enduser_ip => enduser_ip
|
12
|
+
)
|
13
|
+
post("listing", options, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def listing_analyst_feedback(analyst_id, listing_id, desired_result, options={}, &block)
|
17
|
+
options.merge!(
|
18
|
+
:analyst_id => analyst_id,
|
19
|
+
:listing_id => listing_id,
|
20
|
+
:desired_result => desired_result
|
21
|
+
)
|
22
|
+
post("listing/analyst_feedback", options, &block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def listing_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, listing_id, desired_result, options={}, &block)
|
26
|
+
options.merge!(
|
27
|
+
:reporter_user_id => rep_usr_id,
|
28
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
29
|
+
:reporter_ip => reporter_ip,
|
30
|
+
:listing_id => listing_id,
|
31
|
+
:desired_result => desired_result
|
32
|
+
)
|
33
|
+
post("listing/user_feedback", options, &block)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "impermium/content/blog_post"
|
2
|
+
require "impermium/content/bookmark"
|
3
|
+
require "impermium/content/comment"
|
4
|
+
require "impermium/content/connection"
|
5
|
+
require "impermium/content/listing"
|
6
|
+
|
7
|
+
module Impermium
|
8
|
+
module Content
|
9
|
+
include BlogPost
|
10
|
+
include Bookmark
|
11
|
+
include Comment
|
12
|
+
include Connection
|
13
|
+
include Listing
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Impermium
|
2
|
+
class BaseError < StandardError
|
3
|
+
attr_reader :request_type
|
4
|
+
attr_reader :request_url
|
5
|
+
|
6
|
+
def initialize(request_type, request_url, message)
|
7
|
+
@request_type = request_type
|
8
|
+
@request_url = request_url
|
9
|
+
super message
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class BadRequest < BaseError
|
14
|
+
end
|
15
|
+
|
16
|
+
class UnauthorizedReqeust < BaseError
|
17
|
+
end
|
18
|
+
|
19
|
+
class ForbiddenRequest < BaseError
|
20
|
+
end
|
21
|
+
|
22
|
+
class NotFoundRequest < BaseError
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Account
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def account(user_id, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:enduser_ip => enduser_ip
|
9
|
+
)
|
10
|
+
post("account", options, &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
def account_attempt(enduser_ip, options={}, &block)
|
14
|
+
options.merge!(
|
15
|
+
:enduser_ip => enduser_ip
|
16
|
+
)
|
17
|
+
post("account/attempt", options, &block)
|
18
|
+
end
|
19
|
+
|
20
|
+
def account_login(user_id, enduser_ip, options={}, &block)
|
21
|
+
options.merge!(
|
22
|
+
:user_id => user_id,
|
23
|
+
:enduser_ip => enduser_ip
|
24
|
+
)
|
25
|
+
post("account/login", options, &block)
|
26
|
+
end
|
27
|
+
|
28
|
+
def account_analyst_feedback(analyst_id, user_id, desired_result, options={}, &block)
|
29
|
+
options.merge!(
|
30
|
+
:analyst_id => analyst_id,
|
31
|
+
:user_id => user_id,
|
32
|
+
:desired_result => desired_result
|
33
|
+
)
|
34
|
+
post("account/analyst_feedback", options, &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
def account_user_feedback(rep_usr_id, rep_usr_type, reporter_ip, user_id, desired_result, options={}, &block)
|
38
|
+
options.merge!(
|
39
|
+
:reporter_user_id => rep_usr_id,
|
40
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
41
|
+
:reporter_ip => reporter_ip,
|
42
|
+
:user_id => user_id,
|
43
|
+
:desired_result => desired_result
|
44
|
+
)
|
45
|
+
post("account/user_feedback", options, &block)
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Impermium
|
2
|
+
module Profile
|
3
|
+
REPORTER_USER_TYPE_VALUES = ["ENDUSER", "MODERATOR"] # => default first
|
4
|
+
|
5
|
+
def profile(user_id, profile_id, enduser_ip, options={}, &block)
|
6
|
+
options.merge!(
|
7
|
+
:user_id => user_id,
|
8
|
+
:profile_id => profile_id,
|
9
|
+
:enduser_ip => enduser_ip
|
10
|
+
)
|
11
|
+
post("profile", options, &block)
|
12
|
+
end
|
13
|
+
|
14
|
+
def profile_analyst_feedback(profile_id, analyst_id, desired_result, options={}, &block)
|
15
|
+
options.merge!(
|
16
|
+
:profile_id => profile_id,
|
17
|
+
:analyst_id => analyst_id,
|
18
|
+
:desired_result => desired_result
|
19
|
+
)
|
20
|
+
post("profile/analyst_feedback", options, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
def profile_user_feedback(profile_id, rep_usr_id, rep_usr_type, reporter_ip, desired_result, options={}, &block)
|
24
|
+
options.merge!(
|
25
|
+
:profile_id => profile_id,
|
26
|
+
:reporter_user_id => rep_usr_id,
|
27
|
+
:reporter_user_type => REPORTER_USER_TYPE_VALUES.include?(rep_usr_type) ? rep_usr_type : REPORTER_USER_TYPE_VALUES.first,
|
28
|
+
:reporter_ip => reporter_ip,
|
29
|
+
:desired_result => desired_result
|
30
|
+
)
|
31
|
+
post("profile/user_feedback", options, &block)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|