# frozen_string_literal: true # helpers to read data from a user class UserGetterService def initialize(user) @user = user end def read_attribute(attribute) parsed = /^(user|profile)\.(.+)$/.match(attribute) case parsed[1] when 'user' @user[parsed[2].to_sym] when 'profile' case attribute when 'profile.avatar' @user.profile.user_avatar.remote_attachment_url when 'profile.address' @user.invoicing_profile.address&.address when 'profile.organization_name' @user.invoicing_profile.organization&.name when 'profile.organization_address' @user.invoicing_profile.organization&.address&.address when 'profile.gender' @user.statistic_profile.gender when 'profile.birthday' @user.statistic_profile.birthday else @user.profile[parsed[2].to_sym] end else nil end end end