Skip to content

Instantly share code, notes, and snippets.

@Dante83
Created May 22, 2015 19:23
Show Gist options
  • Save Dante83/05d0dfdd7f1f99a1a55d to your computer and use it in GitHub Desktop.
Save Dante83/05d0dfdd7f1f99a1a55d to your computer and use it in GitHub Desktop.
require 'ostruct'
class Customer < ActiveRecord::Base
belongs_to :user
has_many :customer_projects
validates :first_name, :presence => {:message => 'Cannot leave first name field blank.'}
validates :last_name, :presence => {:message => 'Cannot leave last name field blank'}
validates :phone_1, :presence => {:message => 'Must enter a primary phone'}
validates :phone_1, :format => {:with => /\(\d{3}\)[\s]\d{3}-\d{4}/, :message => 'Invalid phone number entered.'}
def setup_customer(customer_parameters)
self.first_name = customer_parameters[:first_name]
self.last_name = customer_parameters[:last_name]
self.phone_1 = customer_parameters[:phone_1]
self.phone_2 = customer_parameters[:phone_2]
self.validated_email = false
end
def generate_sign_in_token
self.sign_in_token = Digest::SHA1.hexdigest([Time.now, rand].join)
self.save!
user = OpenStruct.new()
user.id = self.id
user.first_name = self.first_name
user.delivery_email = User.find(self.user_id).email
user.sign_in_token = self.sign_in_token
UserMailer.customer_validation(user).deliver()
end
def validate_user(email_token)
if(email_token == self.sign_in_token)
self.validated_email = true
self.save!
return true
else
return false
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment