diff --git a/php/get_services.php b/php/get_services.php deleted file mode 100755 index 27af945..0000000 --- a/php/get_services.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -include(realpath(dirname(__FILE__) . "/config.php")); -include(CLASSPATH . "EpnTapMgr.php"); -$EpnTapMgr = new EpnTapMgr; - -$registryURL = "http://dc.zah.uni-heidelberg.de/tap"; -// $registryURL = "http://gavo.aip.de/tap"; -// $registryURL = "http://reg.g-vo.org/tap"; -$columns = ['short_name', 'res_title', 'ivoid', 'access_url', 'table_name', 'content_type', 'creator_seq', 'content_level', 'reference_url', 'created', 'updated']; - -$getServicesQuery = "SELECT DISTINCT " . implode(', ', $columns) . " FROM rr.resource - NATURAL JOIN rr.res_schema NATURAL JOIN rr.res_table NATURAL JOIN rr.interface NATURAL JOIN rr.res_detail NATURAL JOIN rr.capability - WHERE standard_id='ivo://ivoa.net/std/tap' AND intf_type='vs:paramhttp' AND detail_xpath='/capability/dataModel/@ivo-id' - AND 1=ivo_nocasematch(detail_value, 'ivo://vopdc.obspm/std/EpnCore%') AND table_name LIKE '%.epn_core' ORDER BY short_name, table_name"; - -$services = $EpnTapMgr->request($registryURL, $getServicesQuery); - -$services_info = array(); - -foreach($services as $service) { - $service_id = str_replace(['ivo://', '.epn_core'], '', $service['ivoid'] . '/' . $service['table_name']); - - $query = "SELECT dataproduct_type as dp_type, - target_class as t_class, - target_name as t_name, - COUNT(granule_uid) as nb_res, - MIN(time_min) as time_min, - MAX(time_max) as time_max - FROM " . $service['table_name'] . " GROUP BY dp_type, t_class, t_name"; - - $result = $EpnTapMgr->request($service['access_url'], $query); - if(! array_key_exists("error", $result)) { - $service['content'] = array_map('format_result', $result); - // TODO: expected format: ["pr", "planet", "Mars", "spicam", 1232, "13/01/2004", "10/04/2006"] - } - $services_info[$service_id] = $service; -} - -$servicesJsonFile = fopen(EpnTapDataPath . "new_services.json", "w"); -fwrite($servicesJsonFile, json_encode(array('services' => $services_info), JSON_PARTIAL_OUTPUT_ON_ERROR)); -fclose($servicesJsonFile); - -$json_error = json_last_error(); -if($json_error != 0) { - print("json error: " . $json_error); -} - -function format_result($result) { - global $EpnTapMgr; - return Array($result['dp_type'], $result['t_class'], $result['t_name'], $result['nb_res'], $EpnTapMgr->JDTodate($result['time_min']), $EpnTapMgr->JDTodate($result['time_max'])); -} -?> diff --git a/php/update_metadata.php b/php/update_metadata.php new file mode 100755 index 0000000..bbdbc01 --- /dev/null +++ b/php/update_metadata.php @@ -0,0 +1,44 @@ +<?php +include(realpath(dirname(__FILE__) . "/config.php")); +include(CLASSPATH . "EpnTapMgr.php"); +$metadata_json_path = EpnTapDataPath . "metadata.json"; +$EpnTapMgr = new EpnTapMgr; + +$services = $EpnTapMgr->getServices(); +if(array_key_exists('error', $services)) { + error_log('Can not get services: ' . $services['error']); + exit(1); +} + +$metadata = Array(); +foreach($services as $service) { + + $query = "SELECT dataproduct_type as dp_type, + target_class as t_class, + target_name as t_name, + COUNT(granule_uid) as nb_res, + MIN(time_min) as time_min, + MAX(time_max) as time_max + FROM " . $service['table_name'] . " GROUP BY dp_type, t_class, t_name"; + + $service_results = $EpnTapMgr->request($service['access_url'], $query); + if(! array_key_exists('error', $service_results)) { + $current_service_id = $EpnTapMgr->generateServiceId($service); + $metadata = $metadata + array_map('format_metadata', $service_results); + } +} + +$servicesJsonFile = fopen($metadata_json_path, "w"); +fwrite($servicesJsonFile, json_encode($metadata, JSON_PARTIAL_OUTPUT_ON_ERROR)); +fclose($servicesJsonFile); + +$json_error = json_last_error(); +if($json_error != 0) { + error_log("json error: " . $json_error); +} + +function format_metadata($serv) { + global $EpnTapMgr, $current_service_id; + return Array($serv['dp_type'], $serv['t_class'], $serv['t_name'], $current_service_id, $serv['nb_res'], $EpnTapMgr->JDTodate($serv['time_min']), $EpnTapMgr->JDTodate($serv['time_max'])); +} +?> -- libgit2 0.21.2