Concierge
view release on metacpan or search on metacpan
lib/Concierge.pm view on Meta::CPAN
# Warn if inconsistent (exists in one but not both)
if ($auth_exists != $users_exists) {
$response->{warning} = 'User exists in only one component - data inconsistency detected';
}
return $response;
}
# Update user data: modify user record in Users component
sub update_user_data ($self, $user_id, $update_data) {
return { success => 0, message => 'user_id is required' }
unless defined $user_id && length($user_id);
return { success => 0, message => 'update_data must be a hash reference' }
unless ref $update_data eq 'HASH';
# Filter update data (excludes user_id, password, confirm_password)
my $filtered_updates = $user_update_filter->($update_data);
return { success => 0, message => 'No valid fields to update' }
unless $filtered_updates && keys %$filtered_updates;
lib/Concierge/User.pm view on Meta::CPAN
sub session ($self) {
return $self->{session}; # undef if no session (visitor)
}
sub get_session_data ($self) {
return undef unless $self->{session};
my $result = $self->{session}->get_data();
return $result->{value} // {};
}
sub update_session_data ($self, $updates) {
return undef unless $self->{session};
my $result = $self->{session}->get_data();
my $current = $result->{value} // {};
# Merge updates into current data
for my $key (keys %$updates) {
$current->{$key} = $updates->{$key};
}
lib/Concierge/User.pm view on Meta::CPAN
# Fetch fresh data from backend, update memory snapshot
return undef unless $self->{_get_user_data};
my $result = $self->{_get_user_data}->();
return undef unless $result->{success};
$self->{user_data} = $result->{user};
return 1;
}
sub update_user_data ($self, $updates) {
# Update backend AND memory snapshot
return undef unless $self->{_update_user_data};
my $result = $self->{_update_user_data}->($updates);
return undef unless $result->{success};
# Update memory snapshot with new values
for my $field (keys %$updates) {
$self->{user_data}{$field} = $updates->{$field};
}
( run in 0.819 second using v1.01-cache-2.11-cpan-39bf76dae61 )