<<

NAME

Koha::Object - Koha Object base class

SYNOPSIS

    use Koha::Object;
    my $object = Koha::Object->new({ property1 => $property1, property2 => $property2, etc... } );

DESCRIPTION

This class must always be subclassed.

API

Class Methods

Koha::Object->new();

my $object = Koha::Object->new(); my $object = Koha::Object->new($attributes);

Note that this cannot be used to retrieve record from the DB.

Koha::Object->_new_from_dbic();

my $object = Koha::Object->_new_from_dbic($dbic_row);

$object->store();

Saves the object in storage. If the object is new, it will be created. If the object previously existed, it will be updated.

Returns: $self if the store was a success undef if the store failed

$object->update();

A shortcut for set + store in one call.

$object->delete();

Removes the object from storage.

Returns: 1 if the deletion was a success 0 if the deletion failed -1 if the object was never in storage

$object->set( $properties_hashref )

$object->set( { property1 => $property1, property2 => $property2, property3 => $propery3, } );

Enables multiple properties to be set at once

Returns: 1 if all properties were set. 0 if one or more properties do not exist. undef if all properties exist but a different error prevents one or more properties from being set.

If one or more of the properties do not exist, no properties will be set.

$object->set_or_blank( $properties_hashref )

$object->set_or_blank( { property1 => $property1, property2 => $property2, property3 => $propery3, } );

If not listed in $properties_hashref, the property will be set to the default value defined at DB level, or nulled.

$object->unblessed();

Returns an unblessed representation of object.

$object->get_from_storage;

$object->messages

    my @messages = @{ $object->messages };

Returns the (probably non-fatal) messages that were recorded on the object.

$object->add_message

    try {
        <some action that might fail>
    }
    catch {
        if ( <fatal condition> ) {
            Koha::Exception->throw...
        }

        # This is a non fatal error, notify the caller
        $self->add_message({ message => $error, type => 'error' });
    }
    return $self;

Adds a message.

$object->TO_JSON

Returns an unblessed representation of the object, suitable for JSON output.

prefetch_whitelist

    my $whitelist = $object->prefetch_whitelist()

Returns a hash of prefetchable subs and the type they return.

to_api

    my $object_for_api = $object->to_api(
        {
          [ embed => {
                items => {
                    children => {
                        holds => {,
                            children => {
                              ...
                            }
                        }
                    }
                },
                library => {
                    ...
                }
            },
            ...
         ]
        }
    );

Returns a representation of the object, suitable for API output.

to_api_mapping

    my $mapping = $object->to_api_mapping;

Generic method that returns the attribute name mappings required to render the object on the API.

Note: this only returns an empty hashref. Each class should have its own mapping returned.

from_api_mapping

    my $mapping = $object->from_api_mapping;

Generic method that returns the attribute name mappings so the data that comes from the API is correctly renamed to match what is required for the DB.

new_from_api

    my $object = Koha::Object->new_from_api;
    my $object = Koha::Object->new_from_api( $attrs );

Creates a new object, mapping the API attribute names to the ones on the DB schema.

set_from_api

    my $object = Koha::Object->new(...);
    $object->set_from_api( $attrs )

Sets the object's attributes mapping API attribute names to the ones on the DB schema.

attributes_from_api

    my $attributes = attributes_from_api( $params );

Returns the passed params, converted from API naming into the model.

$object->unblessed_all_relateds

my $everything_into_one_hashref = $object->unblessed_all_relateds

The unblessed method only retrieves column' values for the column of the object. In a *few* cases we want to retrieve the information of all the prefetched data.

$object->_result();

Returns the internal DBIC Row object

$object->_columns();

Returns an arrayref of the table columns

AUTOLOAD

The autoload method is used only to get and set values for an objects properties.

_type

This method must be defined in the child class. The value is the name of the DBIC resultset. For example, for borrowers, the _type method will return "Borrower".

_handle_to_api_child

AUTHOR

Kyle M Hall <kyle@bywatersolutions.com>

Jonathan Druart <jonathan.druart@bugs.koha-community.org>

<<