Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatricio Cano <suprnova32@gmail.com>2016-07-29 03:02:56 +0300
committerPatricio Cano <suprnova32@gmail.com>2016-08-15 21:18:15 +0300
commit722fc84e3d4785fb3a9db5f1c7d2aabad22e8e01 (patch)
treebc87237d15d15216cb6b59af27eee36278e7b962 /app/services/spam_check_service.rb
parent95419679f23f0628d1885dd9656cc159e9d55ea9 (diff)
Complete refactor of the `Spammable` concern and tests:
- Merged `AkismetSubmittable` into `Spammable` - Clean up `SpamCheckService` - Added tests for `Spammable` - Added submit (ham or spam) options to `AkismetHelper`
Diffstat (limited to 'app/services/spam_check_service.rb')
-rw-r--r--app/services/spam_check_service.rb22
1 files changed, 8 insertions, 14 deletions
diff --git a/app/services/spam_check_service.rb b/app/services/spam_check_service.rb
index 7c3e692bde9..7d6754546a8 100644
--- a/app/services/spam_check_service.rb
+++ b/app/services/spam_check_service.rb
@@ -1,23 +1,17 @@
class SpamCheckService < BaseService
- include Gitlab::AkismetHelper
+ attr_accessor :request, :api, :subject
- attr_accessor :request, :api
+ def execute(request, api, subject)
+ @request, @api, @subject = request, api, subject
+ return false unless request || subject.check_for_spam?(project)
+ return false unless subject.spam?(request.env, current_user)
- def execute(request, api)
- @request, @api = request, api
- return false unless request || check_for_spam?(project)
- return false unless is_spam?(request.env, current_user, text)
-
create_spam_log
true
end
private
-
- def text
- [params[:title], params[:description]].reject(&:blank?).join("\n")
- end
def spam_log_attrs
{
@@ -25,9 +19,9 @@ class SpamCheckService < BaseService
project_id: project.id,
title: params[:title],
description: params[:description],
- source_ip: client_ip(request.env),
- user_agent: user_agent(request.env),
- noteable_type: 'Issue',
+ source_ip: subject.client_ip(request.env),
+ user_agent: subject.user_agent(request.env),
+ noteable_type: subject.class.to_s,
via_api: api
}
end