first commit
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
$job_name = "update packing_lot Job";
|
||||
echo "[" . date("Y-m-d H:i:s") . "] $job_name is starting.\n";
|
||||
require('./lock.php');
|
||||
//$lock_file = lock_pid_file();
|
||||
require('./../backend.php');
|
||||
require('./common/SVY21.php');
|
||||
set_time_limit(0); // No limit!
|
||||
$httpAuthToken = $savvyext->cfgReadChar('system.oauth2_token');
|
||||
|
||||
$db_host = $savvyext->cfgReadChar('database.host');
|
||||
$db_name = $savvyext->cfgReadChar('database.name');
|
||||
$db_user = $savvyext->cfgReadChar('database.user');
|
||||
$db_pass = $savvyext->cfgReadChar('database.pass');
|
||||
$db_port = $savvyext->cfgReadLong('database.port');
|
||||
$connstr = "host=${db_host} port=${db_port} dbname=${db_name} user=${db_user} password=${db_pass}";
|
||||
$con = pg_connect($connstr); // or die ("Could not connect to server\n");
|
||||
|
||||
$db_host = $savvyext->cfgReadChar('database_replica.host');
|
||||
$db_name = $savvyext->cfgReadChar('database_replica.name');
|
||||
$db_user = $savvyext->cfgReadChar('database_replica.user');
|
||||
$db_pass = $savvyext->cfgReadChar('database_replica.pass');
|
||||
$db_port = $savvyext->cfgReadLong('database_replica.port');
|
||||
$readOnlyReplicaConnstr = "host=${db_host} port=${db_port} dbname=${db_name} user=${db_user} password=${db_pass}";
|
||||
$readOnlyReplicaConn = pg_connect($readOnlyReplicaConnstr);
|
||||
|
||||
// Step 1: get URA token
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://www.ura.gov.sg/uraDataService/insertNewToken.action",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_TIMEOUT => 1000, //1000s
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"accesskey: support@float.sg",
|
||||
"cache-control: no-cache",
|
||||
),
|
||||
));
|
||||
$response = json_decode(curl_exec($curl), true);
|
||||
$err = curl_error($curl);
|
||||
curl_close($curl);
|
||||
$token = $response['Result'] ?? '';
|
||||
if ($err) {
|
||||
echo "cURL Error #1: Cannot get URA token!!! - " . $err;
|
||||
}
|
||||
// Step2. get car parking
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://www.ura.gov.sg/uraDataService/invokeUraDS?service=Car_Park_Details",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_TIMEOUT => 1000, //1000s
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"accesskey: support@float.sg",
|
||||
"token: $token",
|
||||
"cache-control: no-cache"
|
||||
),
|
||||
));
|
||||
$response = json_decode(curl_exec($curl), true);
|
||||
$err = curl_error($curl);
|
||||
curl_close($curl);
|
||||
$parking_lots = $response['Result'] ?? [];
|
||||
if ($err) {
|
||||
echo "cURL Error #2: Cannot get car parking - " . $err;
|
||||
}
|
||||
// Step 3. INSERT data to database
|
||||
if (!empty($parking_lots)) {
|
||||
$now = (new \DateTime())->format('Y-m-d H:i:s');
|
||||
$svy21 = new SVY21();
|
||||
pg_query($con, 'DELETE FROM parking_lot');
|
||||
pg_query($con, 'ALTER SEQUENCE parking_lot_id_seq RESTART WITH 1');
|
||||
foreach ($parking_lots as $key => $lot) {
|
||||
foreach ($lot['geometries']??[] as $geo){
|
||||
list($n, $e) = explode(',',$geo['coordinates']);
|
||||
list($lat, $long) = $svy21->CnvEN2LL($n, $e);
|
||||
$res = pg_insert($con, 'parking_lot', [
|
||||
'ppcode' => $lot['ppCode'] ?? '',
|
||||
'name' => $lot['ppName'] ?? '',
|
||||
'address' => $lot['ppName'] ?? '',
|
||||
'lat' => strval($lat),
|
||||
'long' => strval($long),
|
||||
'weekday_price' => (float)str_replace('$', '', $lot['weekdayRate']??0),
|
||||
'sat_price' => (float)str_replace('$', '', $lot['satdayRate']??0),
|
||||
'sun_price' => (float)str_replace('$', '', $lot['sunPHRate']??0),
|
||||
'start_time' => $lot['startTime'] ?? '',
|
||||
'end_time' => $lot['endTime'] ?? '',
|
||||
'updated_time' => $now,
|
||||
], PGSQL_DML_ASYNC);
|
||||
}
|
||||
}
|
||||
}
|
||||
//unlock_pid_file($lock_file);
|
||||
echo "[" . date("Y-m-d H:i:s") . "] " . $job_name . " completed.\n";
|
||||
?>
|
||||
Reference in New Issue
Block a user