<?php

/**
 * Created by PhpStorm.
 */
/**
 * Funcion que regresa la lista de contenido adquirido para un usuario determinado
 */
$app->get('/library_service/get_library/{items_per_page}/{page}/{user_id}', function ($items_per_page, $page, $user_id) use($app, $logger) {
    $options = array('trace' => 1, 'location' => LIBRARY_SERVICE_ENPOINT, 'stream_context' => stream_context_create(array('http' => array('header' => "Partner: " . PARTNER . "\r\n" . "APIKey: " . APIKEY . ""))));
    $client = new SoapClient(LIBRARY_SERVICE, $options);
    try {
        $response = $client->GetLibrary(array('request' => array("ItemsPerPage" => $items_per_page, "Page" => $page, "UserId" => $user_id)));
        //handle empty library case
        if (!isset($response->GetLibraryResult->Content->Items->LibraryInfo)) {
            //set to empty array to avoid warnings
            $response->GetLibraryResult->Content->Items->LibraryInfo = array();
        }
        if (!is_array($response->GetLibraryResult->Content->Items->LibraryInfo)) {
            $response->GetLibraryResult->Content->Items->LibraryInfo = array($response->GetLibraryResult->Content->Items->LibraryInfo);
        }
        $json = json_encode($response->GetLibraryResult);
        //set content type
        $app->response->setContentType('application/json', 'UTF-8');
        //echo response
        echo $json;
        $logger->log($client->__getLastRequest());
        $logger->log("Se omite respuesta, revisar los detalles de la libreria");
    } catch (SoapFault $e) {
        $logger->log($e->getMessage());
        $logger->log($client->__getLastRequestHeaders());