diff options
| -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')) | 
