App-Dochazka-REST
view release on metacpan or search on metacpan
lib/App/Dochazka/REST/Model/Lock.pm view on Meta::CPAN
=head1 METHODS
=head2 load_by_lid
Instance method. Given an LID, loads a single lock into the object, rewriting
whatever was there before. Returns a status object.
=cut
sub load_by_lid {
my $self = shift;
my ( $conn, $lid ) = validate_pos( @_,
{ isa => 'DBIx::Connector' },
{ type => SCALAR },
);
return load(
conn => $conn,
class => __PACKAGE__,
sql => $site->SQL_LOCK_SELECT_BY_LID,
keys => [ $lid ],
);
}
=head2 insert
Instance method. Attempts to INSERT a record. Field values are taken from the
object. Returns a status object.
=cut
sub insert {
my $self = shift;
my ( $context ) = validate_pos( @_, { type => HASHREF } );
my $status = cud(
conn => $context->{'dbix_conn'},
eid => $context->{'current'}->{'eid'},
object => $self,
sql => $site->SQL_LOCK_INSERT,
attrs => [ 'eid', 'intvl', 'remark' ],
);
return $status;
}
=head2 update
Instance method. Attempts to UPDATE a record. Field values are taken from the
object. Returns a status object.
=cut
sub update {
my $self = shift;
my ( $context ) = validate_pos( @_, { type => HASHREF } );
return $CELL->status_err( 'DOCHAZKA_MALFORMED_400' ) unless $self->{'lid'};
my $status = cud(
conn => $context->{'dbix_conn'},
eid => $context->{'current'}->{'eid'},
object => $self,
sql => $site->SQL_LOCK_UPDATE,
attrs => [ 'eid', 'intvl', 'remark', 'lid' ],
);
return $status;
}
=head2 delete
Instance method. Attempts to DELETE a record. Field values are taken from the
object. Returns a status object.
=cut
sub delete {
my $self = shift;
my ( $context ) = validate_pos( @_, { type => HASHREF } );
my $status = cud(
conn => $context->{'dbix_conn'},
eid => $context->{'current'}->{'eid'},
object => $self,
sql => $site->SQL_LOCK_DELETE,
attrs => [ 'lid' ],
);
$self->reset( lid => $self->{lid} ) if $status->ok;
#$log->debug( "Returning from " . __PACKAGE__ . "::delete with status code " . $status->code );
return $status;
}
=head1 FUNCTIONS
=head2 lid_exists
Boolean
=cut
BEGIN {
no strict 'refs';
*{'lid_exists'} = App::Dochazka::REST::Model::Shared::make_test_exists( 'lid' );
}
=head2 fetch_locks_by_eid_and_tsrange
( run in 0.616 second using v1.01-cache-2.11-cpan-39bf76dae61 )