Pacote PHP para suportar o uso da API SirsiDynix Symphony Web Services (ILSWS) para funções de usuário
John Houser [email protected]
Estas funções podem ser usadas com qualquer ponto de acesso ILSWS válido. Eles lançarão exceções em caso de erro.
Essas funções correspondem aos pontos de acesso ILSWS, mas validam todas as entradas e lançarão exceções se forem apresentadas entradas inadequadas.
Essas funções oferecem funcionalidades não suportadas diretamente pelo ILSWS, realizando múltiplas consultas ou combinando, manipulando ou avaliando dados do sistema Symphony.
Para conveniência dos desenvolvedores, a biblioteca de código aceita datas nos seguintes formatos, sempre que uma data for aceita como parâmetro: AAAAMMDD, AAAA-MM-DD, AAAA/MM/DD, MM-DD-AAAA ou MM/DD/ AAAA.
As regras de validação para números de telefone estão atualmente definidas para esperar uma sequência de dígitos sem pontuação. Contudo, seria fácil modificar as regras de validação no topo de qualquer função pública para aceitar pontuação em números de telefone.
require_once 'vendor/autoload.php';
// Initialize and load configuration from YAML configuration file
$ilsws = new libilsws libilsws ('./ libilsws .yaml');
// Connect to ILSWS with configuration loaded from YAML file
$token = $ilsws->connect();
/**
* Valid incoming params are:
* ct = number of results to return,
* rw = row to start on (so you can page through results),
* j = boolean AND or OR to use with multiple search terms, and
* includeFields = fields to return in result.
*/
$index = 'EMAIL';
$search = '[email protected]';
// Prepare search parameters, including fields to return
$options = [
'rw' => 1,
'ct' => 10,
'j' => 'AND',
'includeFields' => 'key,barcode']
];
// Run search
$response = $ilsws->search_patron($token, $index, $search, $options);
$response = $ilsws->get_patron_attributes($token, $patron_key);
/**
* The order of the fields doesn't matter. Not all of these are actually required.
* See the YAML configuration file to determine which fields are required. If an
* email template name is included in the options array, an email will be sent to the
* patron. Actual template files must include a language extension (for example .en for
* English. The system will look for template that matches the patrons language
* preference. If one is found, it will use that, otherwise it will attempt to
* find and use an English template.
*/
$patron = [
'birthDate' => '1962-03-07',
'city_state' => 'Portland, OR',
'county' => '0_MULT',
'email' => '[email protected]',
'firstName' => 'Bogus',
'friends_notices' => 'YES',
'home_library' => 'CEN',
'language' => 'ENGLISH',
'lastName' => 'Bogart',
'library_news' => 'YES',
'middleName' => 'T',
'notice_type' => 'PHONE',
'patron_id' => '21168045918653',
'postal_code' => '97209',
'street' => '925 NW Hoyt St Apt 406',
'telephone' => '215-534-6821',
'sms_phone' => [
'number' => '215-534-6821',
'countryCode' => 'US',
'bills' => true,
'general' => true,
'holds' => true,
'manual' => true,
'overdues' => true,
],
];
$addr_num = 1;
$options = [];
$options['role'] = 'STAFF';
$options['client_id'] = 'StaffClient';
$options['template'] = 'template.html.twig';
$options['subject'] = 'Welcome to the library!';
$response = $ilsws->register_patron($patron, $token, $addr_num, $options);
// Define patron array
$patron = [
'firstName' => 'John',
'middleName' => 'Rad',
'lastName' => 'Houser',
'birthDate' => '1972-03-10',
'home_library' => 'CEN',
'county' => '0_MULT',
'notice_type' => 'PHONE',
'library_news' => 'YES',
'friends_notices' => 'YES',
'online_update' => 'YES',
'street' => '925 NW Hoyt St Apt 606',
'city_state' => 'Portland, OR',
'patron_id' => '21168045918653',
'postal_code' => '97208',
'email' => '[email protected]',
'telephone' => '215-544-6941',
'sms_phone' => [
'number' => '215-544-6941',
'countryCode => 'US',
'bills' => true,
'general' => true,
'holds' => true,
'manual' => true,
'overdues' => true,
],
];
$addr_num = 1;
$patron_key = '782339';
// Update the patron record
$response = $ilsws->update_patron($patron, $token, $patron_key, $addr_num);
/**
* Convert UTF-8 characters with accents to ASCII and strip unwanted characters and
* boolean operators from search terms
*/
$search = $ilsws->prepare_search($search);
// Prepare search parameters and choose fields to return
$params = [
'ct' => '50',
'rw' => '1',
'j' => 'AND',
'includeFields' => 'author,title,bib{650_a,856_u},callList{callNumber,itemList{barcode,currentLocation}}'
];
// Run search
$response = $ilsws->search_bib($token, $index, $search, $params);
Notas sobre o parâmetro includeFields:
bib{650_a}
callList{callNumber}
callList{itemList{barcode}}
Consulte o arquivo libilsws .yaml.sample para obter definições de campo e documentação das opções de configuração YAML.
Para obter um conjunto completo de exemplos de código, consulte os scripts de exemplo no diretório test
.
Aviso: os scripts de teste podem fazer alterações reais no sistema Symphony configurado. Não use em um sistema de produção sem revisar cuidadosamente o que eles fazem!