diff options
Diffstat (limited to 'users/app/controllers/v1')
-rw-r--r-- | users/app/controllers/v1/messages_controller.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/users/app/controllers/v1/messages_controller.rb b/users/app/controllers/v1/messages_controller.rb new file mode 100644 index 0000000..b58dfe9 --- /dev/null +++ b/users/app/controllers/v1/messages_controller.rb @@ -0,0 +1,30 @@ +module V1 + class MessagesController < ApplicationController + + before_filter :authorize_admin # not sure this is best way + respond_to :json + + # for now, will not pass unseen, so unseen will always be true + def user_messages(unseen = true) + user = User.find(params[:user_id]) + render json: (user ? user.messages : [] ) + end + + # routes ensure this is only for PUT + def mark_read + + # make sure user and message exist + if (user = User.find(params[:user_id])) && Message.find(params[:message_id]) + + user.message_ids_seen << params[:message_id] if !user.message_ids_seen.include?(params[:message_id]) #TODO: is it quicker to instead call uniq! after adding? + user.message_ids_to_see.delete(params[:message_id]) + user.save + render json: true + return + else + render json: false + end + + end + end +end |