diff options
Diffstat (limited to 'users/app')
-rw-r--r-- | users/app/controllers/v1/messages_controller.rb | 13 | ||||
-rw-r--r-- | users/app/models/user_message.rb | 3 |
2 files changed, 14 insertions, 2 deletions
diff --git a/users/app/controllers/v1/messages_controller.rb b/users/app/controllers/v1/messages_controller.rb index e67e2a3..a4e9aec 100644 --- a/users/app/controllers/v1/messages_controller.rb +++ b/users/app/controllers/v1/messages_controller.rb @@ -4,6 +4,7 @@ module V1 # TODO need to add authentication respond_to :json + # for now, will not pass unseen, so unseen will always be true def user_messages(unseen = true) user_messages = unseen ? UserMessage.by_user_id_and_seen(:key => [params[:user_id], false]).all : UserMessage.by_user_id(:key => params[:user_id]).all @@ -16,9 +17,17 @@ module V1 end - # only for PUT + # routes ensure this is only for PUT def mark_read - # params[:user_id] params[:message_id] + user_message = UserMessage.find_by_user_id_and_message_id([params[:user_id], params[:message_id]]) + user_message.seen = true + + # TODO what to return? + if user_message.save + render json: true + else + render json: false + end end end diff --git a/users/app/models/user_message.rb b/users/app/models/user_message.rb index 0b2ce17..37aae0b 100644 --- a/users/app/models/user_message.rb +++ b/users/app/models/user_message.rb @@ -7,6 +7,8 @@ class UserMessage < CouchRest::Model::Base validates :user_id, presence: true validates :message_id, presence: true + # should not have multiple rows connecting one user to particular message: + validates_uniqueness_of :user_id, :scope => [:message_id] property :seen, TrueClass, :default => false @@ -14,6 +16,7 @@ class UserMessage < CouchRest::Model::Base view :by_user_id view :by_message_id view :by_user_id_and_seen + view :by_user_id_and_message_id own_path = Pathname.new(File.dirname(__FILE__)) load_views(own_path.join('..', 'designs', 'user_message')) |