Files
click-erp/app/Libs/PaperLessNgx.php
2024-07-02 21:10:48 +00:00

192 lines
5.2 KiB
PHP

<?php
namespace App\Libs;
use Config;
use Log;
use App\Models;
class PaperLessNgx {
public function __construct(){
//nothingness
}
public function sendToPaperless($file_path, $tags_arr, $created_at, $document_type, $title, $correspondent){
$dir = getcwd();
// dd($dir);
$prod_url = "http://206.225.84.201:8000/api/documents/post_document/";
$local_url = "http://192.168.68.152:8000/api/documents/post_document/";
// dd($ip);
if ($dir !== '/Users/kwesibanson/Sites/team_tracker') {
$url = $prod_url;
$auth = "cGxjbGlja2FkbWluOkJyYW5jaDIwMDA=";
}
else{
$url = $local_url;
$auth = "cGxhZG1pbjpCcmFuY2gyMDAw";
}
// dd($url);
// $pop = new \CURLFILE('/Users/kwesibanson/Documents/36-PropertyBillsRegister-2019.pdf');
// $curl_file = new \CURLFILE(public_path('documents/ultra_host.pdf'));
$curl_file = new \CURLFILE(public_path($file_path));
$curl = curl_init();
$data = [
"document" => $curl_file,
'title' => $title,
'tags' => $tags_arr,
'correspondent' => $correspondent,
'created' => $created_at,
'document_type' => $document_type,
'storage_path' => 1
];
if (count($tags_arr) > 0) {
foreach ($tags_arr as $tag) {
$data['tags'] = $tag;
}
}
\Log::info($data);
// dd($data);
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $data, //['document' => $curl_file],
// CURLOPT_POSTFIELDS => array('document'=> new CURLFILE('/Users/kwesibanson/Documents/36-PropertyBillsRegister-2019.pdf')),
CURLOPT_HTTPHEADER => array(': ', 'Authorization: Basic ' . $auth),
));
$response = curl_exec($curl);
// print_r(curl_getinfo($ch));
// dump(curl_errno($curl));
// dump(curl_error($curl));
// curl_close($curl);
return $response;
}
public function getToPaperlessParamValues($name){
// $name = "document_types/";
$dir = getcwd();
$prod_url = "http://206.225.84.201:8000/api/$name/";
$local_url = "http://192.168.68.152:8000/api/$name/";
// dd($ip);
if ($dir !== '/Users/kwesibanson/Sites/team_tracker') {
$url = $prod_url;
$auth = "cGxjbGlja2FkbWluOkJyYW5jaDIwMDA=";
}
else{
$url = $local_url;
$auth = "cGxhZG1pbjpCcmFuY2gyMDAw";
}
// $pop = new \CURLFILE('/Users/kwesibanson/Documents/36-PropertyBillsRegister-2019.pdf');
// $curl_file = new \CURLFILE(public_path('documents/ultra_host.pdf'));
// curl --location 'http://206.225.84.201:8000/api/tags/' \
// --header 'Authorization: Basic cGxjbGlja2FkbWluOkJyYW5jaDIwMDA=' \
// --header 'Cookie: csrftoken=bDnOrmAk0cKFXwKEQ7LMl0fiTn8EZDqU'
// dd($data);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(': ', 'Authorization: Basic ' . $auth),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function processPaperlessFile($title, $category, $filename, $store_location){
# set parameters and push to paperless
$tags_correspondent = $this->getDocumentCorrespondent($category);
if ($store_location == "general_files") {
$file_path = "documents/general_files/" . $filename; //"documents/oasl.pdf";
}
else{
$file_path = "documents/client_files/" . $filename; //"documents/oasl.pdf";
}
$tags_arr[] = $tags_correspondent['tags']; //[1,2];
$created_at = date('Y-m-d H:i:s');
$document_type = $tags_correspondent['document_type'];
$correspondent = $tags_correspondent['correspondent'];
$retval_paperless = $this->sendToPaperless($file_path, $tags_arr, $created_at, $document_type, $title, $correspondent);
\Log::info($retval_paperless);
return true;
}
public function getDocumentCorrespondent($category){
$category = strtolower($category);
switch ($category) {
case 'sidwl':
$correspondent = "2";
$tags = "9";
$document_type = "3";
break;
case 'api':
$correspondent = "1";
$tags = "7";
$document_type = "3";
break;
case 'contracts':
$correspondent = "3";
$tags = "8";
$document_type = "4";
break;
case 'scfees':
$correspondent = "2";
$tags = "9";
$document_type = "7";
break;
case 'presentations':
$correspondent = "3";
$tags = "1";
$document_type = "1";
break;
case 'proposal':
$correspondent = "3";
$tags = "2";
$document_type = "10";
break;
case 'rates':
// code...General
$correspondent = "6";
$tags = "3";
$document_type = "7";
break;
case 'non disclosure':
$correspondent = "3";
$tags = "8";
$document_type = "4";
break;
case 'technical document':
$correspondent = "1";
$tags = "10";
$document_type = "3";
break;
default:
$correspondent = "3";
$tags = "10";
$document_type = "11";
break;
}
$data = ['correspondent' => $correspondent, 'tags' => $tags, 'document_type' => $document_type];
return $data;
}
}