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-30 07:18:32 +0300
committerPatricio Cano <suprnova32@gmail.com>2016-08-15 21:18:15 +0300
commit64ab2b3d9f10366249c03a6bcf5e8b1d20010d8f (patch)
tree80f4e4b496c55c8aacfc37ee361330b015d9fad4 /app/services/spam_check_service.rb
parent722fc84e3d4785fb3a9db5f1c7d2aabad22e8e01 (diff)
Refactored spam related code even further
- Removed unnecessary column from `SpamLog` - Moved creation of SpamLogs out of its own service and into SpamCheckService - Simplified code in SpamCheckService. - Moved move spam related code into Spammable concern
Diffstat (limited to 'app/services/spam_check_service.rb')
-rw-r--r--app/services/spam_check_service.rb35
1 files changed, 18 insertions, 17 deletions
diff --git a/app/services/spam_check_service.rb b/app/services/spam_check_service.rb
index 7d6754546a8..71b9436a22e 100644
--- a/app/services/spam_check_service.rb
+++ b/app/services/spam_check_service.rb
@@ -1,32 +1,33 @@
-class SpamCheckService < BaseService
- attr_accessor :request, :api, :subject
+class SpamCheckService
+ attr_accessor :request, :api, :spammable
- 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)
-
- create_spam_log
+ def initialize(request, api, spammable)
+ @request, @api, @spammable = request, api, spammable
+ end
- true
+ def execute
+ if request && spammable.check_for_spam?
+ if spammable.spam_detected?(request.env)
+ create_spam_log
+ end
+ end
end
private
def spam_log_attrs
{
- user_id: current_user.id,
- project_id: project.id,
- title: params[:title],
- description: params[:description],
- source_ip: subject.client_ip(request.env),
- user_agent: subject.user_agent(request.env),
- noteable_type: subject.class.to_s,
+ user_id: spammable.owner_id,
+ title: spammable.spam_title,
+ description: spammable.spam_description,
+ source_ip: spammable.client_ip(request.env),
+ user_agent: spammable.user_agent(request.env),
+ noteable_type: spammable.class.to_s,
via_api: api
}
end
def create_spam_log
- CreateSpamLogService.new(project, current_user, spam_log_attrs).execute
+ SpamLog.create(spam_log_attrs)
end
end