From ee85bfcbaa1d4b0524103dae244806d1c1f7e682 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 19 Jun 2019 16:04:15 +0100 Subject: [PATCH] Clublog Upload - added validation and marks qsos when sent. --- application/controllers/Clublog.php | 88 +++++++++++++++------------- application/models/Clublog_model.php | 11 ++++ 2 files changed, 58 insertions(+), 41 deletions(-) diff --git a/application/controllers/Clublog.php b/application/controllers/Clublog.php index f9a937b4..01bdeb00 100644 --- a/application/controllers/Clublog.php +++ b/application/controllers/Clublog.php @@ -26,51 +26,57 @@ class Clublog extends CI_Controller { exit; } - print_r($clublog_info); - $data['qsos'] = $this->logbook_model->get_clublog_qsos(); - // Create ADIF File of contacts not uploaded to Clublog - $string = $this->load->view('adif/data/clublog', $data, TRUE); + if($data['qsos']->num_rows()){ + // Create ADIF File of contacts not uploaded to Clublog + $string = $this->load->view('adif/data/clublog', $data, TRUE); - if ( ! write_file('uploads/clublog.adi', $string)) { - echo 'Unable to write the file - Make the folder Upload folder has write permissions.'; + if ( ! write_file('uploads/clublog.adi', $string)) { + echo 'Unable to write the file - Make the folder Upload folder has write permissions.'; + } + else { + $file_info = get_file_info('uploads/clublog.adi'); + + // initialise the curl request + $request = curl_init('https://clublog.org/putlogs.php'); + + if (function_exists('curl_file_create')) { // php 5.5+ + $cFile = curl_file_create($_SERVER['DOCUMENT_ROOT']."/".$file_info['server_path']); + } else { // + $cFile = '@' . realpath($_SERVER['DOCUMENT_ROOT']."/".$file_info['server_path']); + } + + // send a file + curl_setopt($request, CURLOPT_POST, true); + curl_setopt( + $request, + CURLOPT_POSTFIELDS, + array( + 'email' => $clublog_info['user_clublog_name'], + 'password' => $clublog_info['user_clublog_password'], + 'callsign' => $clublog_info['user_clublog_callsign'], + 'api' => "a11c3235cd74b88212ce726857056939d52372bd", + 'file' => $cFile + )); + + // output the response + curl_setopt($request, CURLOPT_RETURNTRANSFER, true); + $results = curl_exec($request); + + // close the session + curl_close($request); + + // If Clublog Accepts mark the QSOs + if (strpos($results, 'accepted') !== false) { + $this->clublog_model->mark_qsos_sent(); + + echo "QSOs uploaded and Logbook QSOs marked as sent to Clublog"; + } + } + } else { + echo "Nothing awaiting upload to clublog"; } - else { - echo "uploads/clublog.adi file created."; - } - - $file_info = get_file_info('uploads/clublog.adi'); - - // initialise the curl request - $request = curl_init('https://clublog.org/putlogs.php'); - - if (function_exists('curl_file_create')) { // php 5.5+ - $cFile = curl_file_create($_SERVER['DOCUMENT_ROOT']."/".$file_info['server_path']); - } else { // - $cFile = '@' . realpath($_SERVER['DOCUMENT_ROOT']."/".$file_info['server_path']); - } - - // send a file - curl_setopt($request, CURLOPT_POST, true); - curl_setopt( - $request, - CURLOPT_POSTFIELDS, - array( - 'email' => $clublog_info['user_clublog_name'], - 'password' => $clublog_info['user_clublog_password'], - 'callsign' => $clublog_info['user_clublog_callsign'], - 'api' => "a11c3235cd74b88212ce726857056939d52372bd", - 'file' => $cFile - )); - - // output the response - curl_setopt($request, CURLOPT_RETURNTRANSFER, true); - echo curl_exec($request); - - // close the session - curl_close($request); - } diff --git a/application/models/Clublog_model.php b/application/models/Clublog_model.php index 83d3ad83..23b3bf25 100644 --- a/application/models/Clublog_model.php +++ b/application/models/Clublog_model.php @@ -13,6 +13,17 @@ class Clublog_model extends CI_Model { $query = $this->db->get($this->config->item('auth_table')); return $row = $query->row_array(); } + + function mark_qsos_sent() { + $data = array( + 'COL_CLUBLOG_QSO_UPLOAD_DATE' => date('Y-m-d'), + 'COL_CLUBLOG_QSO_UPLOAD_STATUS' => "Y", + ); + + $this->db->where("COL_CLUBLOG_QSO_UPLOAD_STATUS", ""); + $this->db->or_where("COL_CLUBLOG_QSO_UPLOAD_STATUS", "N"); + $this->db->update($this->config->item('table_name'), $data); + } } ?> \ No newline at end of file