summaryrefslogtreecommitdiff
path: root/app/workers/concerns/new_issuable.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers/concerns/new_issuable.rb')
-rw-r--r--app/workers/concerns/new_issuable.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/workers/concerns/new_issuable.rb b/app/workers/concerns/new_issuable.rb
new file mode 100644
index 00000000000..eb0d6c9c36c
--- /dev/null
+++ b/app/workers/concerns/new_issuable.rb
@@ -0,0 +1,26 @@
+module NewIssuable
+ attr_reader :issuable, :user
+
+ def objects_found?(issuable_id, user_id)
+ set_user(user_id)
+ set_issuable(issuable_id)
+
+ user && issuable
+ end
+
+ def set_user(user_id)
+ @user = User.find_by(id: user_id)
+
+ log_error(User, user_id) unless @user
+ end
+
+ def set_issuable(issuable_id)
+ @issuable = issuable_class.find_by(id: issuable_id)
+
+ log_error(issuable_class, issuable_id) unless @issuable
+ end
+
+ def log_error(record_class, record_id)
+ Rails.logger.error("#{self.class}: couldn't find #{record_class} with ID=#{record_id}, skipping job")
+ end
+end