App-Office-Contacts

 view release on metacpan or  search on metacpan

lib/App/Office/Contacts/Database/EmailAddress.pm  view on Meta::CPAN

	my($self, $context, $organization, $count) = @_;

	$self -> db -> logger -> log(debug => 'Database::EmailAddress.save_email_address_for_organization(...)');

	my($table_name)                = 'email_addresses';
	my($email)                     = {};
	$$email{address}               = $$organization{"email_address_$count"};
	$$email{email_address_type_id} = $$organization{"email_address_type_id_$count"};
	$$email{upper_address}         = uc $$email{address};
	my($id)                        = $self -> get_email_address_id_via_address($$email{address});

	if ($id == 0)
	{
		$id = $self -> db -> library -> insert_hashref_get_id($table_name, $email);
	}

	$table_name               = 'email_organizations';
	$email                    = {};
	$$email{email_address_id} = $id;
	$$email{organization_id}  = $$organization{id};

	$self -> db -> simple -> insert($table_name, $email)
		|| die $self -> db -> simple -> error;

} # End of save_email_address_for_organization.

# --------------------------------------------------

sub save_email_address_for_person
{
	my($self, $context, $person, $count) = @_;

	$self -> db -> logger -> log(debug => 'Database::EmailAddress.save_email_address_for_person(...)');

	my($table_name)                = 'email_addresses';
	my($email)                     = {};
	$$email{address}               = $$person{"email_address_$count"};
	$$email{email_address_type_id} = $$person{"email_address_type_id_$count"};
	$$email{upper_address}         = uc $$email{address};
	my($id)                        = $self -> get_email_address_id_via_address($$email{address});

	$self -> db -> logger -> log(debug => "Saving email_address: $$email{address}");

	if ($id == 0)
	{
		$id = $self -> db -> library -> insert_hashref_get_id($table_name, $email);
	}

	$table_name               = 'email_people';
	$email                    = {};
	$$email{email_address_id} = $id;
	$$email{person_id}        = $$person{id};

	$self -> db -> simple -> insert($table_name, $email)
		|| die $self -> db -> simple -> error;

} # End of save_email_address_for_person.

# -----------------------------------------------

sub update_email_address_type
{
	my($self, $creator_id, $address) = @_;

	$self -> db -> logger -> log(debug => "Database::EmailAddress.update_email_address_type($creator_id, ...)");

	my($table_name) = 'email_addresses';

	$self -> db -> simple -> update($table_name, {email_address_type_id => $$address{type_id} }, {id => $$address{address_id} })
		|| die $self -> db -> simple -> error;

} # End of update_email_address_type.

# --------------------------------------------------

1;

=head1 NAME

App::Office::Contacts::Database::EmailAddress - A web-based contacts manager

=head1 Synopsis

See L<App::Office::Contacts/Synopsis>.

=head1 Description

L<App::Office::Contacts> implements a utf8-aware, web-based, private and group contacts manager.

=head1 Distributions

See L<App::Office::Contacts/Distributions>.

=head1 Installation

See L<App::Office::Contacts/Installation>.

=head1 Object attributes

This module extends L<App::Office::Contacts::Database::Base>, with these attributes:

=over 4

=item o (None)

=back

=head1 Methods

=head2 delete_email_address_organization($creator_id, $id)

Deletes the database entry linking an email address to an organization.

=head2 delete_email_address_person($creator_id, $id)

Deletes the database entry linking an email address to a person.

=head2 get_email_address_id_via_address($address)

Returns the id of an email address.



( run in 0.611 second using v1.01-cache-2.11-cpan-99c4e6809bf )