Guest User

Untitled

a guest
Nov 24th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. class OnboardingController < ApplicationController
  2.  
  3. # TODO: This is the jankiest shit ever and needs to be made better ASAP
  4.  
  5. before_filter :authenticate_user!, :done_is_done, :load_step, :load_heading_and_message
  6.  
  7. OnboardingSteps = %w{ share music friends done }
  8.  
  9. def index
  10. render :index, :layout => 'onboarding'
  11. end
  12.  
  13. def magic
  14. case current_step
  15. when OnboardingSteps[0]
  16. story = Story.share_movie(current_user, params[:netflix_id], 'suggest')
  17. render :index and return if story.blank?
  18. set_step(next_step)
  19. when OnboardingSteps[1]
  20. if params[:lastfm_username].present?
  21. current_user.update_attributes(:lastfm_username => params[:lastfm_username])
  22. end
  23.  
  24. render :index and return if current_user.authentications.rdio.blank? && current_user.lastfm_username.blank?
  25. set_step(next_step)
  26. when OnboardingSteps[2]
  27. if current_user.authentications.twitter && params[:send_tweet] == 'true'
  28. client = current_user.twitter
  29. client.update("stuff")
  30. end
  31.  
  32. render :index and return if current_user.authentications.twitter.blank?
  33. set_step(next_step)
  34. end
  35.  
  36. redirect_to onboarding_path
  37. end
  38.  
  39. private
  40.  
  41. def current_step
  42. set_step(OnboardingSteps.first) if current_user.onboarding_step.blank?
  43. current_user.onboarding_step
  44. end
  45.  
  46. def set_step(step)
  47. current_user.update_attribute(:onboarding_step, step) if OnboardingSteps.include? step
  48. end
  49.  
  50. def next_step
  51. OnboardingSteps[OnboardingSteps.index(current_step) + 1]
  52. end
  53.  
  54. def load_step
  55. @current_step = current_step
  56. @current_step_index = OnboardingSteps.index(@current_step)
  57. end
  58.  
  59. def load_heading_and_message
  60. @onboarding_heading, @onboarding_message = case current_step
  61. when OnboardingSteps[0]
  62. ["Welcome to MyZeus", "Take a minute and set up the best experience"]
  63. when OnboardingSteps[1]
  64. ["Looking great, now add music", "Wait until you see this"]
  65. when OnboardingSteps[2]
  66. ["Last step, find friends", "MyZeus is a lot more fun with friends"]
  67. end
  68. end
  69.  
  70. def done_is_done
  71. redirect_to dashboard_path and return if current_step == 'done'
  72. end
  73.  
  74. end
Add Comment
Please, Sign In to add comment