Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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)
- result = Yodlee::Api::V1::User.new.register(user.create_or_get_default_yoddlee_user)
- if result.success?
- yodlee_registrable.update_attributes!(yodlee_id: result.userId)
- else
- # Manage the error
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement