Skip to content
Extraits de code Groupes Projets
sockets_controller.rb 1,12 ko
Newer Older
Raphael's avatar
Raphael a validé
#   Copyright (c) 2010, Diaspora Inc.  This file is
Raphael's avatar
Raphael a validé
#   licensed under the Affero General Public License version 3 or later.  See
Raphael's avatar
Raphael a validé
#   the COPYRIGHT file.
Jamie Wilkinson's avatar
Jamie Wilkinson a validé
class SocketsController < ApplicationController
  include ApplicationHelper
  include Rails.application.routes.url_helpers
maxwell's avatar
maxwell a validé
  def incoming(msg)
ilya's avatar
ilya a validé
    Rails.logger.info("Socket received connection to: #{msg}")
maxwell's avatar
maxwell a validé
  end
  def outgoing(user_or_id, object, opts={})
    #this should be the actual params of the controller
    @params = {:user_or_id => user_or_id, :object => object}.merge(opts)
    return unless Diaspora::WebSocket.is_connected?(user_id)
maxwell's avatar
maxwell a validé
    @_request = ActionDispatch::Request.new({})
    Diaspora::WebSocket.queue_to_user(user_id, action_hash(user, object, opts))
  end

  def user_id
    if @params[:user_or_id].instance_of?(Fixnum)
      @user_id ||= @params[:user_or_id]
    else
      @user_id ||= @params[:user_or_id].id
    end
  end

  def user
   @user ||= ((@params[:user_or_id].instance_of? User )? @params[:user_or_id] : User.find(user_id))
  end

  def all_aspects
    @all_aspects ||= user.aspects
maxwell's avatar
maxwell a validé
  end
end