summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--users/app/controllers/v1/messages_controller.rb5
-rw-r--r--users/app/models/message.rb14
2 files changed, 15 insertions, 4 deletions
diff --git a/users/app/controllers/v1/messages_controller.rb b/users/app/controllers/v1/messages_controller.rb
index 1b994ca..55292ff 100644
--- a/users/app/controllers/v1/messages_controller.rb
+++ b/users/app/controllers/v1/messages_controller.rb
@@ -13,10 +13,7 @@ module V1
def update
message = Message.find(params[:id])
if (message and current_user)
- message.user_ids_to_show.delete(current_user.id)
- # is it necessary to keep track of what users have already seen it?
- message.user_ids_have_shown << current_user.id if !message.user_ids_have_shown.include?(current_user.id)
- # TODO: is it quicker to call uniq! after adding rather than check if it is already included?
+ message.mark_as_read_by(current_user)
message.save
render json: true
else
diff --git a/users/app/models/message.rb b/users/app/models/message.rb
index d9ccee8..7c05e06 100644
--- a/users/app/models/message.rb
+++ b/users/app/models/message.rb
@@ -13,4 +13,18 @@ class Message < CouchRest::Model::Base
load_views(own_path.join('..', 'designs', 'message'))
end
+ def mark_as_read_by(user)
+ user_ids_to_show.delete(user.id)
+ # is it necessary to keep track of what users have already seen it?
+ user_ids_have_shown << user.id unless read_by?(user)
+ # TODO: is it quicker to call uniq! after adding rather than check if it is already included?
+ end
+
+ def read_by?(user)
+ user_ids_have_shown.include?(user.id)
+ end
+
+ def unread_by?(user)
+ user_ids_to_shown.include?(user.id)
+ end
end