login.rb 970 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. class Sessions::Event::Login < Sessions::Event::Base
  2. def run
  3. # get user_id
  4. session = nil
  5. if @is_web_socket
  6. ActiveRecord::Base.establish_connection
  7. end
  8. app_version = AppVersion.event_data
  9. if @payload && @payload['session_id']
  10. session = ActiveRecord::SessionStore::Session.find_by(session_id: @payload['session_id'])
  11. end
  12. if @is_web_socket
  13. ActiveRecord::Base.remove_connection
  14. end
  15. new_session_data = {}
  16. if session && session.data && session.data['user_id']
  17. new_session_data = {
  18. 'id' => session.data['user_id'],
  19. }
  20. end
  21. # create new session
  22. if @clients[@client_id]
  23. @clients[@client_id][:session] = new_session_data
  24. Sessions.create(@client_id, new_session_data, { type: 'websocket' })
  25. else
  26. Sessions.create(@client_id, new_session_data, { type: 'ajax' })
  27. end
  28. # send app version
  29. Sessions.send(@client_id, app_version)
  30. false
  31. end
  32. end