Guest User

Untitled

a guest
Mar 5th, 2018
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.21 KB | None | 0 0
  1. def create
  2. Rails.logger.event.debug("===New Create===n")
  3. @user_check = true;
  4.  
  5. #@event = Event.new(event_params)
  6. @event = Event.new(event_user_params)
  7.  
  8. @users = User.new
  9.  
  10. @event.users.each do |user|
  11. user.password = SecureRandom.base64
  12. user.password_confirmation = user.password
  13. #test all saves here
  14. if(!user.try(:save))
  15. user_check = false;
  16. end
  17. end
  18. Rails.logger.event.debug("Can we save all users: #{@user_check}. If true, continue.")
  19. if(@user_check)
  20. #add all saves here
  21. #add all associations here
  22. @event.users.each do |user|
  23. @user_in_database = User.find_by email: user.email
  24. Rails.logger.event.debug("User in database check. Id: #{@user_in_database.id}. Email: #{@user_in_database.email}.")
  25. if (@user_in_database.nil?) # if user is not in the database (unique email check)
  26. # create a new user
  27. User.transaction do
  28. user.save
  29. end
  30. Rails.logger.event.debug("User id check: #{@user}")
  31. @event_user = EventUser.new(user_id: user.id, event_id: params[:event_id])
  32. # create a new join table record
  33. EventUser.transaction do
  34. @event_user.save
  35. end
  36. else
  37. @event_user_join = EventUser.find_by user_id: @user_in_database.id, event_id: params[:event_id]
  38. Rails.logger.event.debug("Is there a join on this event for this user?. Join object: #{@event_user_join}. If this is nil, no join exists.")
  39. if (@event_user_join.nil?)
  40. @event_user = EventUser.new(user_id: @user_in_database.id, event_id: params[:event_id])
  41. EventUser.transaction do
  42. @event_user.save
  43. end
  44. else
  45. Rails.logger.event.debug("Join user_id: #{@event_user_join.user_id}. Join event_id: #{@event_user_join.event_id}.")
  46. Rails.logger.event.debug("Try removing join.")
  47. EventUser.transaction do
  48. @event_user_join.delete
  49. end
  50. Rails.logger.event.debug("Removal success.")
  51. end
  52. end
  53. end
  54. Rails.logger.event.debug("===Redirect to Event Guests Page===n")
  55. redirect_to event_display_path(params[:event_id])
  56. else
  57. render 'new'
  58. Rails.logger.event.debug("===Render New===n")
  59. end
  60. end
  61.  
  62. private
  63. def event_user_params
  64. #params.require(:user).permit(:first_name, :last_name, :email)
  65. params.require(:event).permit(users_attributes: [:id, :first_name, :last_name, :email, :_destroy])
  66. end
  67.  
  68. def random_password
  69. random_pass = SecureRandom.base64
  70.  
  71. end
  72.  
  73. class User < ApplicationRecord
  74. # Include default devise modules. Others available are:
  75. # :confirmable, :lockable, :timeoutable and :omniauthable
  76. devise :database_authenticatable, :registerable,
  77. :recoverable, :rememberable, :trackable, :validatable
  78.  
  79. has_many :event_users
  80. has_many :events, through: :event_users
  81. #validation code...
  82. end
  83.  
  84. class EventUser < ApplicationRecord
  85. belongs_to :event
  86. belongs_to :user
  87. end
  88.  
  89. class Event < ApplicationRecord
  90. #belongs_to :user
  91. belongs_to :owner, class_name: "User", foreign_key: :user_id
  92. has_many :event_users
  93. has_many :users, through: :event_users
  94.  
  95. accepts_nested_attributes_for :users
  96. #validation code...
  97. end
  98.  
  99. class DeviseCreateUsers < ActiveRecord::Migration[5.1]
  100. def change
  101. create_table :users do |t|
  102. ## Database authenticatable
  103. t.string :email, null: false, default: ""
  104. t.string :encrypted_password, null: false, default: ""
  105.  
  106. ## Recoverable
  107. t.string :reset_password_token
  108. t.datetime :reset_password_sent_at
  109.  
  110. ## Rememberable
  111. t.datetime :remember_created_at
  112.  
  113. ## Trackable
  114. t.integer :sign_in_count, default: 0, null: false
  115. t.datetime :current_sign_in_at
  116. t.datetime :last_sign_in_at
  117. t.string :current_sign_in_ip
  118. t.string :last_sign_in_ip
  119.  
  120. t.timestamps null: false
  121. end
  122.  
  123. add_index :users, :email, unique: true
  124. add_index :users, :reset_password_token, unique: true
  125. end
  126. end
  127.  
  128. class AddNamesToUsers < ActiveRecord::Migration[5.1]
  129. def change
  130. add_column :users, :first_name, :string, null: false, default: ""
  131. add_column :users, :last_name, :string, null: false, default: ""
  132. end
  133. end
  134.  
  135. class CreateEvents < ActiveRecord::Migration[5.1]
  136. def change
  137. create_table :events do |t|
  138. t.string :name, null: false, default: ""
  139. t.text :description, null: true
  140. t.integer :option, null: false, default: 1
  141. t.string :street_address, null: true
  142. t.integer :apartment_number, null: true
  143. t.string :city, null: true
  144. t.date :date, null: true
  145. t.time :time, null: true
  146. t.string :password, null: false, default: ""
  147. t.references :user, foreign_key: true
  148. end
  149. end
  150. end
  151.  
  152. class CreateJoinTableEventUser < ActiveRecord::Migration[5.1]
  153. def change
  154. create_join_table :events, :users do |t|
  155. t.index [:event_id, :user_id]
  156. t.index [:user_id, :event_id]
  157. end
  158. end
  159. end
  160.  
  161. class RenameTableEventsUsers < ActiveRecord::Migration[5.1]
  162. def change
  163. rename_table :events_users, :event_users
  164. end
  165. end
  166.  
  167. Rails.logger.event.debug("Try removing join.")
  168. EventUser.transaction do
  169. @event_user_join.delete
  170. end
  171. Rails.logger.event.debug("Removal success.")
  172. end
  173.  
  174. {"utf8"=>"✓","authenticity_token"=>"HfCo+U+X7DtWUrCn/O2KFEkioGtXyut99NEsjUL08DBs+4FMWkuKYAH0x8cCN8a0OQwiwwxbUBeNz6dqeotZhg==",
  175. "event"=>
  176. {"id"=>"16",
  177. "owner"=>"5",
  178. "users_attributes"=>
  179. {"0"=>{"first_name"=>"Test1", "last_name"=>"Test11", "email"=>"test1@test.com", "_destroy"=>"false", "id"=>"8"},
  180. "1"=>{"first_name"=>"Test4", "last_name"=>"Test44", "email"=>"test4@test.com", "_destroy"=>"false", "id"=>"11"},
  181. "2"=>{"first_name"=>"Test5", "last_name"=>"Test55", "email"=>"test5@test.com", "_destroy"=>"false", "id"=>"12"}}},
  182. "commit"=>"Save",
  183. "event_id"=>"16"}
Add Comment
Please, Sign In to add comment