NAME

Bric::SOAP::Media - SOAP interface to Bricolage media.

VERSION

$Revision: 1.12.2.1 $

DATE

$Date: 2002/10/25 22:54:03 $

SYNOPSIS

use SOAP::Lite;
import SOAP::Data 'name';

# setup soap object to login with
my $soap = new SOAP::Lite
  uri      => 'http://bricolage.sourceforge.net/Bric/SOAP/Auth',
  readable => DEBUG;
$soap->proxy('http://localhost/soap',
             cookie_jar => HTTP::Cookies->new(ignore_discard => 1));
# login
$soap->login(name(username => USER), 
               name(password => PASSWORD));

# set uri for Media module
$soap->uri('http://bricolage.sourceforge.net/Bric/SOAP/Media');

# get a list of media_ids for all Illustrations (a Media Type)
my $media_ids = $soap->list_ids(name(element => 'Illustration'));

DESCRIPTION

This module provides a SOAP interface to manipulating Bricolage media.

INTERFACE

Public Class Methods

list_ids

This method queries the database for matching media and returns a list of ids. If no media is found an empty list will be returned.

This method can accept the following named parameters to specify the search. Some fields support matching and are marked with an (M). The value for these fields will be interpreted as an SQL match expression and will be matched case-insensitively. Other fields must specify an exact string to match. Match fields combine to narrow the search results (via ANDs in an SQL WHERE clause).

title (M)

The media title.

description (M)

The media description.

uri (M)

The media uri.

file_name (M)

The name of the file inside the media object.

simple (M)

A single OR search that hits title, description and uri.

category

The category containing the story, given as the complete category path from the root. Example: "/news/linux".

workflow

The name of the workflow containing the media. (ex. Media)

priority

The priority of the media object.

element

The name of the top-level element for the media. Also know as the "Media Type". This value corresponds to the element attribute on the media element in the asset schema.

publish_date_start

Lower bound on publishing date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

publish_date_end

Upper bound on publishing date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

cover_date_start

Lower bound on cover date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

cover_date_end

Upper bound on cover date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

expire_date_start

Lower bound on cover date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

expire_date_end

Upper bound on cover date. Given in XML Schema dateTime format (CCYY-MM-DDThh:mm:ssTZ).

Throws: NONE

Side Effects: NONE

Notes: Some options are missing - the SQL tweaking paramters (Order, Limit, etc.) in Bric::SOAP::Story most obviously. We should add them to Bric::Biz::Asset::Business::Media->list() and then support them here too.

export

The export method retrieves a set of media from the database, serializes them and returns them as a single XML document. See Bric::SOAP for the schema of the returned document.

Accepted paramters are:

media_id

Specifies a single media_id to be retrieved.

media_ids

Specifies a list of media_ids. The value for this option should be an array of interger "media_id" elements.

Throws: NONE

Side Effects: NONE

Notes: Bric::SOAP::Media->export doesn't provide equivalents to the export_related_stories and export_related_media options in Bric::SOAP::Story->export. Related media and related stories will always be returned with absolute id references. If you're... creative... enough to be using related media and stories in your Media types then you'll have to manually fetch the relations.

create

The create method creates new objects using the data contained in an XML document of the format created by export().

Returns a list of new ids created in the order of the assets in the document.

Available options:

document (required)

The XML document containing objects to be created. The document must contain at least one media object.

Throws: NONE

Side Effects: NONE

Notes: The setting for publish_status in the incoming media is ignored and always 0 for new media.

update

The update method updates media using the data in an XML document of the format created by export(). A common use of update() is to export() a selected media object, make changes to one or more fields and then submit the changes with update().

Returns a list of new ids created in the order of the assets in the document.

Takes the following options:

document (required)

The XML document where the objects to be updated can be found. The document must contain at least one media and may contain any number of related media objects.

update_ids (required)

A list of "media_id" integers for the assets to be updated. These must match id attributes on media elements in the document. If you include objects in the document that are not listed in update_ids then they will be treated as in create(). For that reason an update() with an empty update_ids list is equivalent to a create().

Throws: NONE

Side Effects: NONE

NNotes: The setting for publish_status for new media is ignored and always 0 for new stories. Updated media do get their publish_status set from the incoming document.

delete

The delete() method deletes media. It takes the following options:

media_id

Specifies a single media_id to be deleted.

media_ids

Specifies a list of media_ids to delete.

Throws: NONE

Side Effects: NONE

Notes: NONE

Private Class Methods

$pkg->_load_media($args)

This method provides the meat of both create() and update(). The only difference between the two methods is that update_ids will be empty on create().

$pkg->_serialize_media(writer => $writer, media_id => $media_id, args => $args)

Serializes a single media object into a <media> element using the given writer and args.

AUTHOR

Sam Tregar <stregar@about-inc.com>

SEE ALSO

Bric::SOAP

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 166:

=back doesn't take any parameters, but you said =back 4

Around line 276:

=back doesn't take any parameters, but you said =back 4

Around line 365:

=back doesn't take any parameters, but you said =back 4

Around line 434:

=back doesn't take any parameters, but you said =back 4

Around line 496:

=back doesn't take any parameters, but you said =back 4

Around line 564:

=back doesn't take any parameters, but you said =back 4