From 8f04cf0eadbcde7fc5d1c970741e30ca8b97967d Mon Sep 17 00:00:00 2001 From: Patricio Cano Date: Wed, 20 Jul 2016 20:15:17 -0500 Subject: Refactor `SpamCheckService` to make it cleaner and clearer. --- app/services/spam_check_service.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 app/services/spam_check_service.rb (limited to 'app/services/spam_check_service.rb') diff --git a/app/services/spam_check_service.rb b/app/services/spam_check_service.rb new file mode 100644 index 00000000000..6768047aa63 --- /dev/null +++ b/app/services/spam_check_service.rb @@ -0,0 +1,28 @@ +class SpamCheckService + include Gitlab::AkismetHelper + + attr_accessor :subject, :current_user, :params + + def initialize(subject, user, params = {}) + @subject, @current_user, @params = subject, user, params.dup + end + + def spam_detected? + request = params[:request] + return false unless request || check_for_spam?(subject) + + text = [params[:title], params[:description]].reject(&:blank?).join("\n") + + return false unless is_spam?(request.env, current_user, text) + + attrs = { + user_id: current_user.id, + project_id: subject.id, + title: params[:title], + description: params[:description] + } + create_spam_log(subject, current_user, attrs, request.env, api: false) + + true + end +end -- cgit v1.2.3