<?

/************************************************************************
*
*                  OMS Web Service Functions 1.4
*                  -----------------------------
*
*     Copyright:   (C) 2007 moving primates GmbH
*      Function:   GetArtist
*   Description:   Gets the basic artist data of one artist.
*   Change Date:   12/Jun/2007
*
*************************************************************************
*
*   REQUIRED ELEMENTS:
*
*   The following elements must be send with the request:
*
*   - ArtistID
*   - Fieldlist
*
*   FIELD ELEMTNES:
*   
*   The following are Field elements which define what you get back from
*   the Web Service function. They must be named "Field", their value
*   must be the exact name of the following enumeration and they must be
*   created as a child element of "Fieldlist".
*
*   Field elements are optional, however it is required that you
*   create at least one; their send order is irrelevant.
*
*   - ArtistName
*   - ArtistURL
*   - Website
*   - MusicalInfluence
*   - SoundsLike
*   - ArtistPictureExists
*   - FirstOnlineDate
*   - PostalCode
*   - City
*   - CountryID
*   - CountryCode
*   - CountryName
*   - ArtistGenreID
*   - ArtistGenreParentID
*   - ArtistGenreTopParentID
*   - ArtistGenreName
*   - ArtistParentGenreName
*   - ArtistTopParentGenreName
*
*************************************************************************
*   More info about elements and the functions can be found inside
*   the documentation.
************************************************************************/

$ArtistID = "42028"; // Example ID from an artist
include("inc/config.php"); // Example path, point it to your config.php


$dom = create_document();
$root = create_root_element($dom, "OMS");
create_element_attribute($root, "xmlns", $oms_cfg['artist_data_xmlns'] . "/GetArtist");


// Here we are defining the REQUIRED elements

$el_artist_id = create_element($dom, "ArtistID");
set_element_value($dom, $el_artist_id, $ArtistID);

$el_fields_list = create_element($dom, "FieldList");


// Here we are defining the FIELDLIST elements (requesting all available)

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistURL");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "Website");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "MusicalInfluence");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "SoundsLike");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistPictureExists");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "FirstOnlineDate");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "PostalCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "City");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CountryID");
add_child_element($el_fields_list, $el_field);
                                   
$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CountryCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CountryName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistGenreID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistGenreParentID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistGenreTopParentID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistGenreName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistParentGenreName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ArtistTopParentGenreName");
add_child_element($el_fields_list, $el_field);


// Preparing the XML which is going to be send

add_child_element($root, $el_artist_id);
add_child_element($root, $el_fields_list);

$xml_str = dump_to_string($dom);

$par = array("String_1" => $oms_cfg['ws_login'],
            
"String_2" => $oms_cfg['ws_password'],
            
"String_3" => $xml_str );                


// Executing the Web Service function "GetArtist"

$GetArtist = ProcessWSCall($oms_cfg['artist_data_ws_url'], "GetArtist", $par, $oms_cfg['artist_data_xmlns']);


/************************************************************************
*
*   From here on we assign the content of the array to variables and
*   create some example output. This was done so you can see something
*   when opening the PHP files with your browser.
*
*   If you are looking for this code without any comments or output,
*   then check out the folder 'minimal_code'.
*
*   Have a look at the folder 'examples' to see some Web Services in
*   action, the way you could probably combine them on your own website.
*
************************************************************************/

?>
<style type="text/css">
<!--
.font {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
}

-->
</style>
<span class="font"> <strong>We sent the following elements with our <u>REQUEST</u>:</strong><br />
<ul>
    <li><em>ArtistID</em> - value was &quot;42028&quot;, an example ID from an artist</li>
    <li><em>Fieldlist</em> - the requested child elements were: <i>
        <ul>
            <li>ArtistName</li>
            <li>ArtistURL</li>
            <li>Website</li>
            <li>MusicalInfluence</li>
            <li>SoundsLike</li>
            <li>ArtistPictureExists</li>
            <li>FirstOnlineDate</li>
            <li>PostalCode</li>
            <li>City</li>
            <li>CountryID</li>
            <li>CountryCode</li>
            <li>CountryName</li>
            <li>ArtistGenreID</li>
            <li>ArtistGenreParentID</li>
            <li>ArtistGenreTopParentID</li>
            <li>ArtistGenreName</li>
            <li>ArtistParentGenreName</li>
            <li>ArtistTopParentGenreName</li>
        </ul>
        </i> </li>
</ul>
<br />
<strong>We got back the following array in <u>RESPONSE</u>:</strong><br />
<pre><? var_dump($GetArtist); ?></pre>
<br />
<strong>We assign the array to  seperate variables and <u>OUTPUT</u> these (without any design here):</strong><br />
<?
    $ArtistID
= $GetArtist['ArtistID'][0];
    
$ArtistName = $GetArtist['Artist'][0]['ArtistName'];
    
$ArtistURL = $GetArtist['Artist'][0]['ArtistURL'];
    
$Website = $GetArtist['Artist'][0]['Website'];
    
$MusicalInfluence = $GetArtist['Artist'][0]['MusicalInfluence'];
    
$SoundsLike = $GetArtist['Artist'][0]['SoundsLike'];
    
$ArtistPictureExists = $GetArtist['Artist'][0]['ArtistPictureExists'];
    
$FirstOnlineDate = $GetArtist['Artist'][0]['FirstOnlineDate'];
    
$PostalCode = $GetArtist['Artist'][0]['PostalCode'];
    
$City = $GetArtist['Artist'][0]['City'];
    
$CountryID = $GetArtist['Artist'][0]['CountryID'];
    
$CountryCode = $GetArtist['Artist'][0]['CountryCode'];
    
$CountryName = $GetArtist['Artist'][0]['CountryName'];
    
$ArtistGenreID = $GetArtist['Artist'][0]['ArtistGenreID'];
    
$ArtistGenreParentID = $GetArtist['Artist'][0]['ArtistGenreParentID'];
    
$ArtistGenreTopParentID = $GetArtist['Artist'][0]['ArtistGenreTopParentID'];
    
$ArtistGenreName = $GetArtist['Artist'][0]['ArtistGenreName'];
    
$ArtistParentGenreName = $GetArtist['Artist'][0]['ArtistParentGenreName'];
    
$ArtistTopParentGenreName = $GetArtist['Artist'][0]['ArtistTopParentGenreName'];
?>
<ul>
    <li>Artist ID: <? echo $ArtistID; ?></li>
    <li>Artist Name: <? echo $ArtistName; ?></li>
    <li>Artist URL: <? echo $ArtistURL; ?></li>
    <li>Website: <? echo $Website; ?></li>
    <li>Musical Influence: <? echo $MusicalInfluence; ?></li>
    <li>Sounds Like: <? echo $SoundsLike; ?></li>
    <li>Artist Picture Exists: <? echo $ArtistPictureExists; ?></li>
    <li>First Online Date: <? echo $FirstOnlineDate; ?></li>
    <li>Postal Code: <? echo $PostalCode; ?></li>
    <li>City: <? echo $City; ?></li>
    <li>Country ID: <? echo $CountryID; ?></li>
    <li>Country Code: <? echo $CountryCode; ?></li>
    <li>Country Name: <? echo $CountryName; ?></li>
    <li>Artist Genre ID: <? echo $ArtistGenreID; ?></li>
    <li>Artist Genre Parent ID: <? echo $ArtistGenreParentID; ?></li>
    <li>Artist Genre Top Parent ID: <? echo $ArtistGenreTopParentID; ?></li>
    <li>Artist Genre Name: <? echo $ArtistGenreName; ?></li>
    <li>Artist Parent Genre Name: <? echo $ArtistParentGenreName; ?></li>
    <li>Artist Top Parent Genre Name: <? echo $ArtistTopParentGenreName; ?></li>
</ul>
</span>