2020-04-19 00:59:18 +02:00
|
|
|
class Inbox < ApplicationRecord
|
2014-11-10 23:45:36 +01:00
|
|
|
belongs_to :user
|
2014-11-11 07:10:02 +01:00
|
|
|
belongs_to :question
|
2014-11-30 18:05:51 +01:00
|
|
|
|
2022-06-15 17:30:48 +02:00
|
|
|
attr_accessor :returning
|
|
|
|
|
2015-01-03 22:27:14 +01:00
|
|
|
before_create do
|
2022-06-15 17:30:48 +02:00
|
|
|
raise "User does not want to receive anonymous questions" if !returning &&
|
|
|
|
question.author_is_anonymous &&
|
2022-07-06 19:44:33 +02:00
|
|
|
(question.author_identifier != "justask") &&
|
2022-06-15 17:30:48 +02:00
|
|
|
!user.privacy_allow_anonymous_questions?
|
2015-01-03 22:27:14 +01:00
|
|
|
end
|
|
|
|
|
2015-01-03 18:09:56 +01:00
|
|
|
def answer(answer_content, user)
|
2022-06-13 16:12:06 +02:00
|
|
|
raise Errors::AnsweringOtherBlockedSelf if question.user&.blocking?(user)
|
2022-06-09 19:40:09 +02:00
|
|
|
raise Errors::AnsweringSelfBlockedOther if user.blocking?(question.user)
|
|
|
|
|
2015-01-03 18:09:56 +01:00
|
|
|
answer = user.answer(self.question, answer_content)
|
2014-11-30 18:05:51 +01:00
|
|
|
self.destroy
|
2014-12-12 23:14:32 +01:00
|
|
|
answer
|
2014-11-30 18:05:51 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def remove
|
2014-12-14 12:19:52 +01:00
|
|
|
self.question.destroy if self.question.can_be_removed?
|
2014-11-30 18:05:51 +01:00
|
|
|
self.destroy
|
|
|
|
end
|
2014-11-10 23:45:36 +01:00
|
|
|
end
|