mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-01 12:24:28 +01:00
74 lines
2.1 KiB
Ruby
74 lines
2.1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# helpers to assign data to a user
|
||
|
class UserSetterService
|
||
|
def initialize(user)
|
||
|
@user = user
|
||
|
end
|
||
|
|
||
|
def assign_avatar(data)
|
||
|
@user.profile.user_avatar ||= UserAvatar.new
|
||
|
@user.profile.user_avatar.remote_attachment_url = data
|
||
|
end
|
||
|
|
||
|
def assign_address(data)
|
||
|
@user.invoicing_profile ||= InvoicingProfile.new
|
||
|
@user.invoicing_profile.address ||= Address.new
|
||
|
@user.invoicing_profile.address.address = data
|
||
|
end
|
||
|
|
||
|
def assign_organization_name(data)
|
||
|
@user.invoicing_profile ||= InvoicingProfile.new
|
||
|
@user.invoicing_profile.organization ||= Organization.new
|
||
|
@user.invoicing_profile.organization.name = data
|
||
|
end
|
||
|
|
||
|
def assign_organization_address(data)
|
||
|
@user.invoicing_profile ||= InvoicingProfile.new
|
||
|
@user.invoicing_profile.organization ||= Organization.new
|
||
|
@user.invoicing_profile.organization.address ||= Address.new
|
||
|
@user.invoicing_profile.organization.address.address = data
|
||
|
end
|
||
|
|
||
|
def assign_gender(data)
|
||
|
@user.statistic_profile ||= StatisticProfile.new
|
||
|
@user.statistic_profile.gender = data
|
||
|
end
|
||
|
|
||
|
def assign_birthday(data)
|
||
|
@user.statistic_profile ||= StatisticProfile.new
|
||
|
@user.statistic_profile.birthday = data
|
||
|
end
|
||
|
|
||
|
def assign_profile_attribute(attribute, data)
|
||
|
@user.profile[attribute[8..].to_sym] = data
|
||
|
end
|
||
|
|
||
|
def assign_user_attribute(attribute, data)
|
||
|
@user[attribute[5..].to_sym] = data
|
||
|
end
|
||
|
|
||
|
def assign_attibute(attribute, data)
|
||
|
if attribute.to_s.start_with? 'user.'
|
||
|
assign_user_attribute(attribute, data)
|
||
|
elsif attribute.to_s.start_with? 'profile.'
|
||
|
case attribute.to_s
|
||
|
when 'profile.avatar'
|
||
|
assign_avatar(data)
|
||
|
when 'profile.address'
|
||
|
assign_address(data)
|
||
|
when 'profile.organization_name'
|
||
|
assign_organization_name(data)
|
||
|
when 'profile.organization_address'
|
||
|
assign_organization_address(data)
|
||
|
when 'profile.gender'
|
||
|
assign_gender(data)
|
||
|
when 'profile.birthday'
|
||
|
assign_birthday(data)
|
||
|
else
|
||
|
assign_profile_attribute(attribute, data)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|