Skip to content

Instantly share code, notes, and snippets.

@AugustoPedraza
Last active February 3, 2016 20:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AugustoPedraza/0bea789e8ddeedfb3548 to your computer and use it in GitHub Desktop.
Save AugustoPedraza/0bea789e8ddeedfb3548 to your computer and use it in GitHub Desktop.
Yodlee user registration (complete stack)
# app/models/user.rb
class User
include YodleeRegistrable
end
# app/models/concers/yodlee_registrable.rb
module YodleeRegistrable
extend ActiveSupport::Concern
included do
has_one :yodlee_user
scope :already_registered_on_yodlee?, ->(user_id) do
#TODO
end
end
def default_yodlee_username
"saveup_user_#{id}_#{name[0..7]}"
end
def create_or_get_default_yoddlee_user
return yodlee_user if yodlee_user.present?
yodlee_user = self.build_yodlee_user
yodlee_user.tap do |y_u|
y_u.email = user.email
y_u.username = user.default_yodlee_username
y_u.password = YodleePassGenerator.create
end
yodlee_user.save!
end
end
# app/models/yodlee_user.rb
class YodleeUser
belongs_to :user
#columns: email, username, password, user_id
end
# app/services/register_new_yodlee_user.rb
class RegisterNewYodleeUser
def call(user_id)
raise Error if User.registered_on_yodlee?(user_id)
user = User.find(user_id)
yodlee_user = user.create_or_get_default_yodlee_user
result = Yodlee::Api::V1::User.new.register(yodlee_user)
if result.success?
yodlee_user.update_attributes!(yodlee_id: result.userId)
else
# Manage the error
end
end
end
@kennisons77
Copy link

Missing:

Password generation method

Nice to have:
Passwrord change strategy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment