Add certificate path to the web service. Add 'add_gradebook_certificates_cron_task_enabled' configuration parameter - refs BT#9022

1.9.x
Imanol Losada 10 years ago
parent 4148d4980d
commit 2fd2c2b7a4
  1. 2
      main/install/configuration.dist.php
  2. 80
      main/webservices/registration.soap.php

@ -278,3 +278,5 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
//$_configuration['exercise_max_fckeditors_in_page'] = 0;
// Default upload option
//$_configuration['document_if_file_exists_option'] = 'rename'; // overwrite
// Enable add_gradebook_certificates.php cron task
//$_configuration['add_gradebook_certificates_cron_task_enabled'] = true;

@ -5533,6 +5533,86 @@ function WSUserSubscribedInCourse ($params)
return (CourseManager::is_user_subscribed_in_course($userId,$courseCode));
}
/* Register WSCertificatesList function */
// Register the data structures used by the service
$server->wsdl->addComplexType(
'certificateDetails',
'complexType',
'struct',
'all',
'',
array(
'id' => array('name' => 'id', 'type' => 'xsd:int'),
'username' => array('name' => 'username', 'type' => 'xsd:string'),
'course_code' => array('name' => 'course_code', 'type' => 'xsd:string'),
'session_id' => array('name' => 'session_id', 'type' => 'xsd:int'),
'cat_id' => array('name' => 'cat_id', 'type' => 'xsd:int'),
'created_at' => array('name' => 'created_at', 'type' => 'xsd:string'),
'path_certificate' => array('name' => 'path_certificate', 'type' => 'xsd:string')
)
);
$server->wsdl->addComplexType(
'certificatesList',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP:ENC:arrayType',
'wsdl:arrayType'=>'tns:certificateDetails[]')
),
'tns:certificateDetails'
);
// Register the method to expose
$server->register(
'WSCertificatesList', // method name
array(
'startingDate' => 'xsd:string', // input parameters
'endingDate' => 'xsd:string'
),
array('return' => 'tns:certificatesList'), // output parameters
'urn:WSRegistration', // namespace
'urn:WSRegistration#WSCertificatesList', // soapaction
'rpc', // style
'encoded', // use
'This service returns a list of certificates' // documentation
);
function WSCertificatesList($startingDate = '', $endingDate = '')
{
global $_configuration;
if ($_configuration['add_gradebook_certificates_cron_task_enabled']) {
require_once api_get_path(SYS_CODE_PATH).'cron/add_gradebook_certificates.php';
}
$result = array();
$certificateTable = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CERTIFICATE);
$userTable = Database::get_main_table(TABLE_MAIN_USER);
$categoryTable = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$query = "SELECT certificate.id, user.username, category.course_code, category.session_id,
certificate.user_id, certificate.cat_id, certificate.created_at, certificate.path_certificate
FROM $certificateTable AS certificate
JOIN $userTable AS user ON certificate.user_id = user.user_id
JOIN $categoryTable AS category ON certificate.cat_id = category.id";
if (!empty($startingDate) && !empty($endingDate)) {
$query .= " WHERE certificate.created_at BETWEEN '$startingDate' AND '$endingDate'";
} else if (!empty($startingDate)) {
$query .= " WHERE certificate.created_at >= '$startingDate'";
} else if (!empty($endingDate)) {
$query .= " WHERE certificate.created_at <= '$endingDate'";
}
$queryResult = Database::query($query);
$basePath = api_get_path(WEB_CODE_PATH).'upload/users/';
while ($row = Database::fetch_array($queryResult)) {
$row['path_certificate'] = $basePath.substr((string) $row['user_id'], 0, 1)
.'/'.$row['user_id'].'/certificate'.$row['path_certificate'];
$result[] = $row;
}
return $result;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
// If you send your data in utf8 then this value must be false.

Loading…
Cancel
Save