Notification , API : ps

This commit is contained in:
VE10-Sanjeev 2023-09-21 11:01:55 +05:30
parent 50736198ee
commit 7f5bd919db
9 changed files with 346 additions and 315 deletions

View File

@ -97,7 +97,23 @@ define('EVENT_PRIORITY_HIGH', 10);
* Constants For Api Integration.
*/
// define('VB_APIURL', 'https://vbp.venbait.in/wp-json/wc/v3/');
// define('VB_BOOKS', VB_APIURL.'products');
// define('VB_CUSTOMERS', VB_APIURL.'customers');
define('product','books');
define('product_column', ["book_id","wp_api_product_id"]);
define('product_child','book_images');
define('product_child_column', ["book_id","wp_api_img_id","book_img_id"]);
define('customer','customers');
define('customer_column', ["customer_id","wp_api_customer_id"]);
define('customer_child','customer_addresses');
define('customer_child_column', ["customer_id","","customer_address_id"]);
define('order','invoice');
define('order_column', ["invoice_id","wp_api_order_id","invoice_child_id"]);
define('order_child','invoiceitems');
define('order_child_column', ["invoice_id","wp_api_line_items_id","customer_id"]);

View File

@ -28,24 +28,22 @@ class Email extends BaseConfig
/**
* SMTP Server Address
*/
public string $SMTPHost = 'bh-in-11.webhostbox.net';
public string $SMTPHost = 'smtp.sendgrid.net';
/**
* SMTP Username
*/
public string $SMTPUser = 'devbook@mprkv.co.in';
//public string $SMTPUser = 'venbalap08@gmail.com';
public string $SMTPUser = 'apikey';
/**
* SMTP Password
*/
public string $SMTPPass = 'DevBook@2023';
//public string $SMTPPass = 'sganobynfyouaxgs';
public string $SMTPPass = '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';
/**
* SMTP Port
*/
public int $SMTPPort = 465;
public int $SMTPPort = 587;
/**
* SMTP Timeout (in seconds)
@ -60,7 +58,7 @@ class Email extends BaseConfig
/**
* SMTP Encryption. Either tls or ssl
*/
public string $SMTPCrypto = 'ssl';
public string $SMTPCrypto = 'tls';
/**
* Enable word-wrap

View File

@ -101,17 +101,17 @@ $routes->post("load_details2/", "Invoice::load_details2/");
$routes->post("save_invoice/", "Invoice::save_invoice/");
$routes->get("delete_invoice/(:any)", "Invoice::delete_invoice/$1");
$routes->get('whatsapp/send/(:any)/(:any)', 'Notifications::index/$1/$2');
# Api integration Routes
$routes->group("api", function ($routes) {
// $routes->post("create_products/", "ApiIntegration::save_book_details");
$routes->match(['put', 'post', 'get', 'delete'], 'products', 'ApiIntegration::book_api_integration');
$routes->match(['put', 'post', 'get', 'delete'], 'customers', 'ApiIntegration::customer_api_integration');
$routes->match(['put', 'post', 'get', 'delete'], 'orders', 'ApiIntegration::sales_api_integration');
});
$routes->post('api/(:any)', 'ApiIntegration::api_integration/$1');
// $routes->group("api", function ($routes) {
// // $routes->post("create_products/", "ApiIntegration::save_book_details");
// // $routes->match(['put', 'post', 'get', 'delete'], 'products', 'ApiIntegration::book_api_integration');
// // $routes->match(['put', 'post', 'get', 'delete'], 'customers', 'ApiIntegration::customer_api_integration');
// // $routes->match(['put', 'post', 'get', 'delete'], 'orders', 'ApiIntegration::sales_api_integration');
// });
/*
* --------------------------------------------------------------------

View File

@ -11,94 +11,155 @@ class ApiIntegration extends ResourceController
{
use ResponseTrait;
public function book_api_integration()
{
$request = \Config\Services::request();
$message = "";
public function api_integration($api_request_text) {
$this->logger->info("Api Integration : Request Text = ".$api_request_text);
try {
switch ($this->request) {
case $this->request->is('put'):
$request_data = $this->request->getVar();
$this->logger->info("Api Integration : Request data type = ".gettype($request_data));
if(isset($request_data) && gettype($request_data) === 'object') {$request_data = [$request_data]; $this->logger->info("Api Integration : Request data type = ".gettype($request_data));}
if(count($request_data)>0){
$this->logger->info("Api Integration : Request data count = ".count($request_data));
$i = 0;
$final_response = [];
foreach($request_data as $row_data)
{
$get_response[$i] = $this->call_methods((array)$row_data, $api_request_text);
$final_response[$i] = $get_response[$i]['message'];
$i++;
}
// return $this->respond(['status' => 200, 'message' => $final_response,'references'=>$get_response]);
return $this->respond(['status' => 200, 'message' => $final_response]);
}else{
$this->logger->error('Api Integration : Err = Request data Not Found.');
throw new \Exception('Api Request data Not Found.');
}
} catch (\Exception $e) {
$this->logger->error("Api Integration : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('request failed, An error occurred on line ' . $e->getline() . ' : ' . $e->getMessage());
}
}
public function call_methods($row_data, $api_request_text)
{
$parts = explode('_', $api_request_text);
$method = $parts[0];
$table = constant($parts[1]);
$table_column = constant($parts[1].'_column');
$table_child = constant($parts[1].'_child');
// $table_child_column = constant($table.'_child_column');
$this->logger->info("Api CallMethods : method name = ".$method.", table = ".$table.", table child = ".$table_child);
$this->logger->info("Api CallMethods : table = ".$table ." and its column => " .implode(",",$table_column));
try {
switch ($method) {
case "create":
case "update":
try {
// $url = http://localhost/vb_book/api/products?id=795;
$records = (array)$this->request->getVar();
$id = $this->request->getVar('id');
if ($records['id'] == $id) {
$response = $this->save_book_details($records, $id);
} else {
$response = ['status' => 404, 'message' => "ID Mismatched"];
switch ($table) {
case "books":
try {
$records = (array)$row_data;
$wordpress_book_id = $records['id'];
$this->logger->info("Api CallMethods : method name = ".$method.", row data count = ".count($records).", wordpress Product Ref ID = ".$wordpress_book_id);
$response = $this->save_book_details($records, $wordpress_book_id);
$this->logger->info("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." response = ".$response['status']);
} catch (\Exception $e) {
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case "customers":
try {
$records = (array)$row_data;
$wordpress_customer_id = $records['id'];
$this->logger->info("Api CallMethods : method name = ".$method.", row data count = ".count($records).", wordpress Customer Ref ID = ".$wordpress_customer_id);
$response = $this->save_customer_details($records, $wordpress_customer_id);
$this->logger->info("Api CallMethods : response = ".$response['status']);
} catch (\Exception $e) {
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case "invoice":
try {
$records = (array)$row_data;
$wordpress_order_id = $records['id'];
$this->logger->info("Api CallMethods : method name = ".$method.", row data count = ".count($records).", wordpress Order Ref ID = ".$wordpress_order_id);
$response = $this->save_sales_details($records, $wordpress_order_id);
$this->logger->info("Api CallMethods : response = ".$response['status']);
} catch (\Exception $e) {
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
default:
$this->logger->error('Api CallMethods : Err = Invaild Api Route.');
throw new \Exception('Api Route Not Available');
}
} catch (\Exception $e) {
return $this->fail('PUT request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
$exception_ends_with = $e->getline() ? 'on line ' . $e->getline() . ': ' . $e->getMessage() : $e->getMessage();
return $this->fail(ucwords($method).' request failed, An error occurred ' .$exception_ends_with);
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
}
break;
case $this->request->is('post'):
case 'delete':
try {
// $url = http://localhost/vb_book/api/products;
$records = (array)$this->request->getVar();
$wordpress_book_id = $records['id'];
$response = $this->save_book_details($records, $wordpress_book_id);
} catch (\Exception $e) {
return $this->fail('POST request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('get'):
try {
// $url = http://localhost/vb_book/api/products?id=795;
// $url = http://localhost/vb_book/api/products;
$id = $this->request->getVar('id');
if ($id) {
$where = ['wp_api_product_id' => (int)$id, 'isactive' => 1];
} else {
$where = ['isactive' => 1];
}
$basic_message = "";
$records = (array)$row_data;
$wordpress_refer_id = $records['id'];
$api_model = new ApiIntegrationModel();
$book_details = $api_model->setTable('books')->where($where);
$response = ['status' => 200, 'message' => "Book Details", "data" => $book_details];
} catch (\Exception $e) {
return $this->fail('GET request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('delete'):
try {
// $url = http://localhost/vb_book/api/products?id=795;
$id = $this->request->getVar('id');
$api_model = new ApiIntegrationModel();
$where = ['isactive' => 1, 'wp_api_product_id' => (int)$id];
$existing_book_data = $api_model->getData('books', $where);
if ((int)count($existing_book_data) > 0) {
$book_id = (int)$existing_book_data[0]->book_id;
$where = ['isactive' => 1, $table_column[1] => (int)$wordpress_refer_id];
$existing_data = $api_model->getData($table, $where);
$this->logger->info("Api CallMethods : method name = ".$method.", row data count = ".count($records).", ".$table_column[1]." Ref ID = ".$wordpress_refer_id);
if ((int)count($existing_data) > 0) {
if(isset($existing_data[0]) && gettype($existing_data[0]) === 'object') {$existing_data[0] = (array)$existing_data[0]; $this->logger->info("Api Integration : delete ".$table." array data type = ".gettype($existing_data[0]));}
$primary_key_id = (int)$existing_data[0][$table_column[0]];
$this->logger->info("Api CallMethods : ".$table." its PrimaryKey ID = ".$primary_key_id);
$inactive_data['isactive'] = 0;
$update_where = ['isactive' => 1, 'book_id' => $book_id];
$api_model->updateData('books', $inactive_data, $update_where);
$getExistingBookImageDetails = $api_model->getData('book_images', $update_where);
if ($getExistingBookImageDetails) {
// $update_where = ['book_id' => $book_id];
$api_model->updateData('book_images', $inactive_data, $update_where);
$update_where = ['isactive' => 1, $table_column[0] => $primary_key_id];
$api_model->updateData($table, $inactive_data, $update_where);
$get_existing_child_details = $api_model->getData($table_child, $update_where);
$this->logger->info("Api CallMethods : ".$table." Child Details Count = ".count($get_existing_child_details));
if ($get_existing_child_details) {
$api_model->updateData($table_child, $inactive_data, $update_where);
}
$basic_message = ucwords($table)." Details (ID = ".$primary_key_id.") and ".ucwords($table)." Child Details Are Deleted";
}else{
$basic_message = ucwords($table)." has No Details";
}
$response = ['status' => 200, 'message' => "Book Details and Book Images Details Are Inactived"];
$this->logger->info("Api CallMethods : ".$basic_message);
$response = ['status' => 200, 'message' => $basic_message];
} catch (\Exception $e) {
// Handle DELETE-specific exception
return $this->fail('DELETE request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
$exception_ends_with = $e->getline() ? 'on line ' . $e->getline() . ': ' . $e->getMessage() : $e->getMessage();
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('DELETE request failed, An error occurred' . $exception_ends_with);
}
break;
default:
throw new \Exception('Unsupported HTTP method');
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." Unsupported HTTP method");
// return $this->fail('Unsupported HTTP method');
}
return $this->respond($response);
return $response;
} catch (\Exception $e) {
// Handle the exception, you can log it or return an error response
return $this->fail('An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
// return $this->fail($e->getMessage());
$exception_ends_with = $e->getline() ? 'on line ' . $e->getline() . ': ' . $e->getMessage() : $e->getMessage();
$this->logger->error("Api CallMethods : ".str_replace("_", " ",ucwords($api_request_text))." {exception}", ['exception' => $e]);
return $this->fail('An error occurred ' . $exception_ends_with);
}
}
public function save_book_details($records, $wordpress_book_id)
{
$this->logger->info("Api SaveBookDetails : records count = ".count($records).", wordpress Product Ref ID = ".$wordpress_book_id);
$api_model = new ApiIntegrationModel();
$message = "";
$extensive_correspondence = "";
$basic_message = "";
$book_id = "";
if (count($records) > 0 && !empty($wordpress_book_id)) {
$where = ['wp_api_product_id' => $wordpress_book_id, 'isactive' => 1];
@ -108,11 +169,12 @@ class ApiIntegration extends ResourceController
$where['book_id'] = $book_details['book_id'];
} // update means bookid where condition added : else no where condition added.
$countAll = $api_model->countAll('books', $where);
$this->logger->info(($countAll) ? "Api SaveBookDetails : in wordpress product ref ID = ".$wordpress_book_id." is available on Book table and its PrimaryKey = ".$book_id : "Api SaveBookDetails : in wordpress product ref ID = ".$wordpress_book_id." Not available on Book table");
$publisher = '';
$language = '';
$attributes = $records['attributes'];
if (count($attributes) > 0) {
foreach ($attributes as $att) {
if (isset($att->name) && $att->name == "Publisher") {
@ -139,24 +201,31 @@ class ApiIntegration extends ResourceController
$book_data['business_id'] = 1;
$images = $records['images'];
$i = 0;
if ((int)$countAll == 0) {
$insert_result = $api_model->insertData('books', $book_data);
$last_insert_book_id = $insert_result['info'];
$message .= $insert_result['info'] ? "Book id : " . $insert_result['info']
$extensive_correspondence .= $insert_result['info'] ? "Book id : " . $insert_result['info']
: "Err :" . $insert_result['err'];
$basic_message .= $insert_result['info'] ? " Book id : " . $insert_result['info'] : "Book details Not Inserted";
$insert_result['info'] ? $this->logger->info("Api SaveBookDetails : Book id = ".$insert_result['info']):"";
$insert_result['err'] ? $this->logger->error("Api SaveBookDetails : Err = ".$insert_result['err']):"";
} else {
$last_insert_book_id = $book_id;
$book_where = ['book_id' => $book_id, 'isactive' => 1, 'wp_api_product_id' => $wordpress_book_id];
$update_result = $api_model->updateData('books', $book_data, $book_where);
$message .= $update_result['info'] ? "Book id : " . $last_insert_book_id . " ( " . $update_result['info'] . ")"
$extensive_correspondence .= $update_result['info'] ? "Book id : " . $last_insert_book_id . " ( " . $update_result['info'] . ")"
: " ( Err :" . $update_result['err'] . ")";
$basic_message .= "Book id : " . $last_insert_book_id;
$update_result['info'] ? $this->logger->info("Api SaveBookDetails : Book id : " . $last_insert_book_id . " ( " . $update_result['info'] . ")"):"";
$update_result['err'] ? $this->logger->error("Api SaveBookDetails : Err = ".$update_result['err']):"";
}
$book_image_data = [];
$this->logger->info("Api SaveBookDetails : Book images count : " .count($images));
if (count($images) > 0 && $last_insert_book_id != "") {
$message .= " Its have " . count($images) . " Images ,";
$extensive_correspondence .= " Its have " . count($images) . " Images ,";
$basic_message .= " Its have " . count($images) . " Images";
$this->logger->info("Api SaveBookDetails : ".$extensive_correspondence);
$where = ['book_id' => (int)$last_insert_book_id, 'isactive' => 1];
$existing_images = $api_model->getData('book_images', $where);
$request_images = (array)$images;
@ -174,11 +243,14 @@ class ApiIntegration extends ResourceController
}
if (!empty($filteringExistingImagesWpApiId)) {
$this->logger->info("Api SaveBookDetails : Incoming Images Wp Id " .implode(",",$filteringRequestedImagesWpApiId));
$this->logger->info("Api SaveBookDetails : Existing Images Wp Id " .implode(",",$filteringExistingImagesWpApiId));
$A = $filteringExistingImagesWpApiId;
$B = $filteringRequestedImagesWpApiId;
$missingValues = array_diff($A, $B); //Find difference element in Existing Images only
$commonElements = array_intersect($A, $B);
if (!empty($missingValues)) {
$this->logger->info("Api SaveBookDetails : Missing Images Wp Id " .implode(",",$missingValues)." Are inactived");
$inactive_where = ['isactive' => 1, 'book_id' => (int)$last_insert_book_id];
$inactive_whereIn[0] = 'wp_api_img_id';
$inactive_whereIn[1] = $missingValues;
@ -195,7 +267,9 @@ class ApiIntegration extends ResourceController
$whereIn = null;
}
$lastestActiveBookImageData = $api_model->getData('book_images', $where, $whereIn);
$this->logger->info("Api SaveBookDetails : lastest Active Book Image Data Count " .count($lastestActiveBookImageData));
$book_image_data = [];
$i = 0;
foreach ($images as $img) {
$bookImgId = null;
// Iterate through the array and find the 'book_img_id' based on 'wp_api_img_id'
@ -214,106 +288,30 @@ class ApiIntegration extends ResourceController
$book_image_data[$i]['isactive'] = 1;
$book_image_data[$i]['wp_api_img_id'] = $img->id;
$book_image_data[$i]['book_img_id'] = $bookImgId;
$this->logger->info("Api SaveBookDetails : Image Data = $i ");
$i++;
} // image loop closed
$message .= (!empty($book_image_data) ? $api_model->insertAndUpdateChildDetails($book_image_data, 'book_images', 'book_img_id') : []);
$extensive_correspondence .= (!empty($book_image_data) ? $api_model->insertAndUpdateChildDetails($book_image_data, 'book_images', 'book_img_id') : []);
$this->logger->info("Api SaveBookDetails : ".$extensive_correspondence);
} //image count closed
$response = ['status' => 200, 'message' => $message];
else{
$this->logger->error("Api SaveBookDetails : Err = Image Data Not Found");
}
$response = ['status' => 200, 'message' => $basic_message ,'indetails' => $extensive_correspondence];
} //if cond. closed
else {
$response = ['status' => 204, 'message' => 'Data No Found'];
$this->logger->error("Api SaveBookDetails : Err = Data Not Found");
$response = ['status' => 204, 'message' => 'Data Not Found'];
}
return $response;
}
public function customer_api_integration()
{
$request = \Config\Services::request();
$message = "";
try {
switch ($this->request) {
case $this->request->is('put'):
try {
// $url = http://localhost/vb_book/api/customers?id=795;
$records = (array)$this->request->getVar();
$id = $this->request->getVar('id');
if ($records['id'] == $id) {
$response = $this->save_customer_details($records, $id);
} else {
$response = ['status' => 404, 'message' => "ID Mismatched"];
}
} catch (\Exception $e) {
return $this->fail('PUT request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $this->request->is('post'):
try {
// $url = http://localhost/vb_book/api/customers;
$records = (array)$this->request->getVar();
$wordpress_customer_id = $records['id'];
$response = $this->save_customer_details($records, $wordpress_customer_id);
} catch (\Exception $e) {
return $this->fail('POST request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('get'):
try {
// $url = http://localhost/vb_book/api/customers?id=795;
// $url = http://localhost/vb_book/api/customers;
$id = $this->request->getVar('id');
if ($id) {
$where = ['wp_api_customer_id' => (int)$id, 'isactive' => 1];
} else {
$where = ['isactive' => 1];
}
$api_model = new ApiIntegrationModel();
$customer_details = $api_model->setTable('customers')->where($where);
$response = ['status' => 200, 'message' => "Customer Details", "data" => $customer_details];
} catch (\Exception $e) {
return $this->fail('GET request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('delete'):
try {
// $url = http://localhost/vb_book/api/customers?id=795;
$id = $this->request->getVar('id');
$api_model = new ApiIntegrationModel();
$where = ['isactive' => 1, 'wp_api_customer_id' => (int)$id];
$existing_customer_data = $api_model->getData('customers', $where);
if ((int)count($existing_customer_data) > 0) {
$customer_id = (int)$existing_customer_data[0]->customer_id;
$inactive_data['isactive'] = 0;
$update_where = ['isactive' => 1, 'customer_id' => $customer_id];
$api_model->updateData('customers', $inactive_data, $update_where);
$getExistingCustomerImageDetails = $api_model->getData('customer_addresses', $update_where);
if ($getExistingCustomerImageDetails) {
$api_model->updateData('customer_addresses', $inactive_data, $update_where);
}
}
$response = ['status' => 200, 'message' => "customer Details and Customer Addresses Details Are Inactived"];
} catch (\Exception $e) {
// Handle DELETE-specific exception
return $this->fail('DELETE request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
default:
throw new \Exception('Unsupported HTTP method');
// return $this->fail('Unsupported HTTP method');
}
return $this->respond($response);
} catch (\Exception $e) {
// Handle the exception, you can log it or return an error response
return $this->fail('An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
// return $this->fail($e->getMessage());
}
}
public function save_customer_details($records, $wordpress_customer_id)
{
$this->logger->info("Api SaveCustomerDetails : records count = ".count($records).", wordpress Customer Ref ID = ".$wordpress_customer_id);
$api_model = new ApiIntegrationModel();
$message = "";
$extensive_correspondence = "";
$basic_message = "";
$customer_id = "";
if (count($records) > 0 && !empty($wordpress_customer_id)) {
$where = ['wp_api_customer_id' => $wordpress_customer_id, 'isactive' => 1];
@ -322,7 +320,9 @@ class ApiIntegration extends ResourceController
$customer_id = $customer_details['customer_id'];
$where['customer_id'] = $customer_details['customer_id'];
}
$countAll = $api_model->countAll('customers', $where);
$this->logger->info(($countAll) ? "Api SaveCustomerDetails : in wordpress customer ref ID = ".$wordpress_customer_id." is available on customer table and its PrimaryKey = ".$customer_id : "Api SaveBookDetails : in wordpress Customer ref ID = ".$wordpress_customer_id." Not available on Customer table");
$customer_data['first_name'] = $records['first_name'];
$customer_data['last_name'] = $records['last_name'];
@ -339,27 +339,36 @@ class ApiIntegration extends ResourceController
if ((int)$countAll == 0) {
$insert_result = $api_model->insertData('customers', $customer_data);
$last_insert_customer_id = $insert_result['info'];
$message .= $insert_result['info'] ? "Customer id : " . $insert_result['info']
$extensive_correspondence .= $insert_result['info'] ? "Customer id : " . $insert_result['info']
: "Err :" . $insert_result['err'];
$basic_message .= $insert_result['info'] ? " Customer id : " . $insert_result['info'] : "Customer details Not Inserted";
$insert_result['info'] ? $this->logger->info("Api SaveCustomerDetails : Customer id = ".$insert_result['info']):"";
$insert_result['err'] ? $this->logger->error("Api SaveCustomerDetails : Err = ".$insert_result['err']):"";
} else {
$last_insert_customer_id = $customer_id;
$customer_where = ['customer_id' => $customer_id, 'isactive' => 1, 'wp_api_customer_id' => $wordpress_customer_id];
$update_result = $api_model->updateData('customers', $customer_data, $customer_where);
$message .= $update_result['info'] ? "Customer id : " . $last_insert_customer_id . " ( " . $update_result['info'] . ")"
$extensive_correspondence .= $update_result['info'] ? "Customer id : " . $last_insert_customer_id . " ( " . $update_result['info'] . ")"
: " ( Err :" . $update_result['err'] . ")";
$basic_message .= "Customer id : " . $last_insert_customer_id;
$update_result['info'] ? $this->logger->info("Api SaveCustomerDetails : Customer id : " . $last_insert_customer_id . " ( " . $update_result['info'] . ")"):"";
$update_result['err'] ? $this->logger->error("Api SaveCustomerDetails : Err = ".$update_result['err']):"";
}
$i = 0; $customer_billing_address_data = [];
$j = 0; $customer_shipping_address_data = [];
if(isset($billing) && gettype($billing) === 'object') {$billing = [$billing];}
if(isset($shipping) && gettype($shipping) === 'object') {$shipping = [$shipping];}
$this->logger->info("Api SaveCustomerDetails : billing count : " .count($billing));
$this->logger->info("Api SaveCustomerDetails : shipping count : " .count($shipping));
// echo "Customer ID : ".$last_insert_customer_id." have Billing address = ".count($billing)." and Shipping address = ".count($shipping)." <br/>";
if (count($billing) > 0 && $last_insert_customer_id != "") {
$message .= " Its have " . count($billing) . " Billing address ,";
$extensive_correspondence .= " Its have " . count($billing) . " Billing address ,";
$basic_message .= " Its have " . count($billing) . " Billing address ,";
$this->logger->info("Api SaveCustomerDetails : ".$extensive_correspondence);
$where = ['customer_id' => (int)$last_insert_customer_id, 'isactive' => 1, 'address_type'=>1];
$existing_billing = $api_model->getData('customer_addresses', $where);
$request_billing = (array)$billing;
@ -377,11 +386,14 @@ class ApiIntegration extends ResourceController
}
if (!empty($filteringExistingBillingAddress)) {
$this->logger->info("Api SaveCustomerDetails : Incoming billing " .implode(",",$filteringExistingBillingAddress));
$this->logger->info("Api SaveCustomerDetails : Existing billing " .implode(",",$filteringRequestedBillingAddress));
$A = $filteringExistingBillingAddress;
$B = $filteringRequestedBillingAddress;
$missingBillingValues = array_diff($A, $B); //Find difference element in Existing Images only
$commonBillingElements = array_intersect($A, $B);
if (!empty($missingBillingValues)) {
$this->logger->info("Api SaveCustomerDetails : Missing billing " .implode(",",$missingBillingValues)." Are inactived");
$inactive_where = ['isactive' => 1, 'customer_id' => (int)$last_insert_customer_id,'address_type'=>1];
$inactive_whereIn[0] = 'address_1';
$inactive_whereIn[1] = $missingBillingValues;
@ -398,7 +410,7 @@ class ApiIntegration extends ResourceController
$whereIn = null;
}
$lastestActiveBillingAdressData = $api_model->getData('customer_addresses', $where, $whereIn);
$this->logger->info("Api SaveCustomerDetails : lastest Active billing Data Count " .count($lastestActiveBillingAdressData));
foreach ($billing as $bill) {
$billingAddressId = null;
if ($bill->first_name != '') {
@ -424,17 +436,21 @@ class ApiIntegration extends ResourceController
$customer_billing_address_data[$i]['email'] = isset($bill->email) ? $bill->email : '';
$customer_billing_address_data[$i]['mobile_no'] = isset($bill->phone) ? $bill->phone : '';
$customer_billing_address_data[$i]['customer_address_id'] = $billingAddressId;
$this->logger->info("Api SaveCustomerDetails : Billing address has a value and Inserted ");
$i++;
// echo "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; Billing address has a value and Inserted ".$i." <br/>";
}else{
$this->logger->info("Api SaveCustomerDetails : Billing address has no value ");
// echo "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; Keys are available but Billing address has no value; <br/>";
}
}
$message .= (!empty($customer_billing_address_data) ? $api_model->insertAndUpdateChildDetails($customer_billing_address_data, 'customer_addresses', 'customer_address_id') : []);
$extensive_correspondence .= (!empty($customer_billing_address_data) ? $api_model->insertAndUpdateChildDetails($customer_billing_address_data, 'customer_addresses', 'customer_address_id') : []);
$this->logger->info("Api SaveCustomerDetails : ".$extensive_correspondence);
}
if (count($shipping) > 0 && $last_insert_customer_id != "") {
$message .= " Its have " . count($shipping) . " Shipping address ,";
$extensive_correspondence .= " Its have " . count($shipping) . " Shipping address ,";
$basic_message .= " Its have " . count($shipping) . " Shipping address .";
$where = ['customer_id' => (int)$last_insert_customer_id, 'isactive' => 1, 'address_type'=>2];
$existing_shipping = $api_model->getData('customer_addresses', $where);
$request_shipping = (array)$shipping;
@ -452,6 +468,8 @@ class ApiIntegration extends ResourceController
}
if (!empty($filteringExistingShippingAddress)) {
$this->logger->info("Api SaveCustomerDetails : Incoming shipping " .implode(",",$filteringExistingShippingAddress));
$this->logger->info("Api SaveCustomerDetails : Existing shipping " .implode(",",$filteringExistingShippingAddress));
$A = $filteringExistingShippingAddress;
$B = $filteringRequestedShippingAddress;
$missingShippingValues = array_diff($A, $B); //Find difference element in Existing Images only
@ -461,6 +479,7 @@ class ApiIntegration extends ResourceController
$inactive_whereIn[0] = 'address_1';
$inactive_whereIn[1] = $missingShippingValues;
$api_model->inactiveMissingDetails('customer_addresses', $inactive_where, $inactive_whereIn);
$this->logger->info("Api SaveCustomerDetails : Missing Shipping " .implode(",",$missingShippingValues)." Are inactived");
}
}
}
@ -473,6 +492,7 @@ class ApiIntegration extends ResourceController
$whereIn = null;
}
$lastestActiveShippingAdressData = $api_model->getData('customer_addresses', $where, $whereIn);
$this->logger->info("Api SaveCustomerDetails : lastest Active Shipping Data Count " .count($lastestActiveShippingAdressData));
foreach ($shipping as $ship) {
$shippingAddressId = null;
@ -499,108 +519,34 @@ class ApiIntegration extends ResourceController
$customer_shipping_address_data[$j]['customer_id'] = $last_insert_customer_id;
$customer_shipping_address_data[$j]['address_type'] = 2;
$customer_shipping_address_data[$j]['customer_address_id'] = $shippingAddressId;
$this->logger->info("Api SaveCustomerDetails : Shipping address has a value and Inserted ");
$j++;
// echo "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; Shipping address has a value and Inserted ".$j." <br/>";
}
else{
$this->logger->info("Api SaveCustomerDetails : Shipping address has no value ");
// echo "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; Keys are available but Shipping address has no value <br/>";
}
}
$message .= (!empty($customer_shipping_address_data) ? $api_model->insertAndUpdateChildDetails($customer_shipping_address_data, 'customer_addresses', 'customer_address_id') : []);
$extensive_correspondence .= (!empty($customer_shipping_address_data) ? $api_model->insertAndUpdateChildDetails($customer_shipping_address_data, 'customer_addresses', 'customer_address_id') : []);
$this->logger->info("Api SaveCustomerDetails : ".$extensive_correspondence);
}else{
$this->logger->error("Api SaveCustomerDetails : Err = Address Data Not Found");
}
$response = ['status' => 200, 'message' => $message];
$response = ['status' => 200, 'message' => $basic_message ,'indetails' => $extensive_correspondence];
} //if cond. closed
else {
$this->logger->error("Api SaveCustomerDetails : Err = Data Not Found");
$response = ['status' => 204, 'message' => 'Data No Found'];
}
return $response;
}
public function sales_api_integration()
{
$request = \Config\Services::request();
$message = "";
try {
switch ($this->request) {
case $this->request->is('put'):
try {
// $url = http://localhost/vb_book/api/orders?id=795;
$records = (array)$this->request->getVar();
$id = $this->request->getVar('id');
if ($records['id'] == $id) {
$response = $this->save_sales_details($records, $id);
} else {
$response = ['status' => 404, 'message' => "ID Mismatched"];
}
} catch (\Exception $e) {
return $this->fail('PUT request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $this->request->is('post'):
try {
// $url = http://localhost/vb_book/api/orders;
$records = (array)$this->request->getVar();
$wordpress_order_id = $records['id'];
$response = $this->save_sales_details($records, $wordpress_order_id);
} catch (\Exception $e) {
return $this->fail('POST request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('get'):
try {
// $url = http://localhost/vb_book/api/orders?id=795;
// $url = http://localhost/vb_book/api/orders;
$id = $this->request->getVar('id');
if ($id) {
$where = ['wp_api_order_id' => (int)$id, 'isactive' => 1];
} else {
$where = ['isactive' => 1];
}
$api_model = new ApiIntegrationModel();
$invoice_details = $api_model->setTable('invoice')->where($where);
$response = ['status' => 200, 'message' => "Invoice Details", "data" => $invoice_details];
} catch (\Exception $e) {
return $this->fail('GET request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
case $request->is('delete'):
try {
// $url = http://localhost/vb_book/api/orders?id=795;
$id = $this->request->getVar('id');
$api_model = new ApiIntegrationModel();
$where = ['isactive' => 1, 'wp_api_order_id' => (int)$id];
$existing_invoice_data = $api_model->getData('invoice', $where);
if ((int)count($existing_invoice_data) > 0) {
$invoice_id = (int)$existing_invoice_data[0]->invoice_id;
$inactive_data['isactive'] = 0;
$update_where = ['isactive' => 1, 'invoice_id' => $invoice_id];
$api_model->updateData('invoice', $inactive_data, $update_where);
$getExistingInvoiceItemsDetails = $api_model->getData('invoiceitems', $update_where);
if ($getExistingInvoiceItemsDetails) {
$api_model->updateData('invoiceitems', $inactive_data, $update_where);
}
}
$response = ['status' => 200, 'message' => "Invoice Details and Invoice Items Details Are Inactived"];
} catch (\Exception $e) {
// Handle DELETE-specific exception
return $this->fail('DELETE request failed, An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
}
break;
default:
throw new \Exception('Unsupported HTTP method');
// return $this->fail('Unsupported HTTP method');
}
return $this->respond($response);
} catch (\Exception $e) {
// Handle the exception, you can log it or return an error response
return $this->fail('An error occurred on line ' . $e->getline() . ': ' . $e->getMessage());
// return $this->fail($e->getMessage());
}
}
public function save_sales_details($records, $wordpress_order_id){
$this->logger->info("Api SaveSalesDetails : records count = ".count($records).", wordpress Order Ref ID = ".$wordpress_order_id);
$basic_message="";
$api_model = new ApiIntegrationModel();
$message = "";
$extensive_correspondence = "";
$invoice_id = "";
if (count($records) > 0 && !empty($wordpress_order_id)) {
$where = ['wp_api_order_id' => $wordpress_order_id, 'isactive' => 1];
@ -610,6 +556,7 @@ class ApiIntegration extends ResourceController
$where['invoice_id'] = (int)$invoice_id;
}
$countAll = $api_model->countAll('invoice', $where);
$this->logger->info(($countAll) ? "Api SaveSalesDetails : in wordpress product ref ID = ".$wordpress_order_id." is available on Invoice table and its PrimaryKey = ".$invoice_id : "Api SaveSalesDetails : in wordpress order ref ID = ".$wordpress_order_id." Not available on Invoice table");
$billing_addr = "";$shipping_addr = "";
$lineitems_array = [];
$billing_array = []; $shipping_array = [];
@ -669,22 +616,31 @@ class ApiIntegration extends ResourceController
if ((int)$countAll == 0) {
$insert_result = $api_model->insertData('invoice', $invoice_data);
$last_insert_invoice_id = $insert_result['info'];
$message .= $insert_result['info'] ? "Invoice id : " . $insert_result['info']
$extensive_correspondence .= $insert_result['info'] ? "Invoice id : " . $insert_result['info']
: "Err :" . $insert_result['err'];
$basic_message .= $insert_result['info'] ? " Invoice id : " . $insert_result['info'] : "Invoice details Not Inserted";
$insert_result['info'] ? $this->logger->info("Api SaveSalesDetails : Invoice id = ".$insert_result['info']):"";
$insert_result['err'] ? $this->logger->error("Api SaveSalesDetails : Err = ".$insert_result['err']):"";
} else {
$last_insert_invoice_id = $invoice_id;
$customer_where = ['invoice_id' => $invoice_id, 'isactive' => 1, 'wp_api_order_id' => $wordpress_order_id];
$update_result = $api_model->updateData('invoice', $invoice_data, $customer_where);
$message .= $update_result['info'] ? "Invoice id : " . $last_insert_invoice_id . " ( " . $update_result['info'] . ")"
$extensive_correspondence .= $update_result['info'] ? "Invoice id : " . $last_insert_invoice_id . " ( " . $update_result['info'] . ")"
: " ( Err :" . $update_result['err'] . ")";
$basic_message .= "Invoice id : " . $last_insert_invoice_id;
$update_result['info'] ? $this->logger->info("Api SaveSalesDetails : Invoice id : " . $last_insert_invoice_id . " ( " . $update_result['info'] . ")"):"";
$update_result['err'] ? $this->logger->error("Api SaveSalesDetails : Err = ".$update_result['err']):"";
}
$line_item_data = [];
$shipping_line_item_data = [];
$i = 0;$j=0;
$this->logger->info("Api SaveSalesDetails : Invoice items count : " .count($lineitems_array));
if (count($lineitems_array) > 0 && $last_insert_invoice_id != "") {
$message .= " Its have " . count($lineitems_array) . " LineItems ,";
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1];
$extensive_correspondence .= " Its have " . count($lineitems_array) . " LineItems ,";
$basic_message .= " Its have " . count($lineitems_array) . " LineItems";
$this->logger->info("Api SaveSalesDetails : ".$extensive_correspondence);
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1, 'quantity != '=>0];
$existing_invoiceitem = $api_model->getData('invoiceitems', $where);
$request_invoiceitem = (array)$lineitems_array;
@ -701,11 +657,14 @@ class ApiIntegration extends ResourceController
}
if (!empty($filteringExistingInvoiceItemWpApiId)) {
$this->logger->info("Api SaveSalesDetails : Incoming InvoiceItem Wp Id " .implode(",",$filteringRequestedInvoiceItemWpApiId));
$this->logger->info("Api SaveSalesDetails : Existing InvoiceItem Wp Id " .implode(",",$filteringExistingInvoiceItemWpApiId));
$A = $filteringExistingInvoiceItemWpApiId;
$B = $filteringRequestedInvoiceItemWpApiId;
$missingValues = array_diff($A, $B); //Find difference element in Existing Images only
$commonElements = array_intersect($A, $B);
if (!empty($missingValues)) {
$this->logger->info("Api SaveSalesDetails : Missing InvoiceItem Wp Id " .implode(",",$missingValues)." Are inactived");
$inactive_where = ['isactive' => 1, 'invoice_id' => (int)$last_insert_invoice_id];
$inactive_whereIn[0] = 'wp_api_line_items_id';
$inactive_whereIn[1] = $missingValues;
@ -714,7 +673,7 @@ class ApiIntegration extends ResourceController
}
}
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1];
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1, 'quantity != '=>0];
if (!empty($commonElements)) {
$whereIn[0] = 'wp_api_line_items_id';
$whereIn[1] = $commonElements;
@ -722,6 +681,7 @@ class ApiIntegration extends ResourceController
$whereIn = null;
}
$lastestActiveInvoiceitemsData = $api_model->getData('invoiceitems', $where, $whereIn);
$this->logger->info("Api SaveSalesDetails : lastest Active Invoice Items Data Count " .count($lastestActiveInvoiceitemsData));
foreach ($lineitems_array as $ii) {
$invoiceItemsId = null;
@ -747,17 +707,24 @@ class ApiIntegration extends ResourceController
$line_item_data[$i]['invoice_child_id'] = $invoiceItemsId;
$line_item_data[$i]['wp_api_line_items_id'] = $ii->id;
$line_item_data[$i]['invoice_id'] = $last_insert_invoice_id;
$this->logger->info("Api SaveSalesDetails : Invoiceitem Data inx = $i ");
$i++;
} // line item loop closed
$message .= (!empty($line_item_data) ? $api_model->insertAndUpdateChildDetails($line_item_data, 'invoiceitems', 'invoice_child_id') : []);
$extensive_correspondence .= (!empty($line_item_data) ? $api_model->insertAndUpdateChildDetails($line_item_data, 'invoiceitems', 'invoice_child_id') : []);
$this->logger->info("Api SaveSalesDetails : ".$extensive_correspondence);
}
else{
$this->logger->error("Api SaveSalesDetails : Err = Invoice items Data Not Found");
}
$shipping_lineitems_array = $records['shipping_lines'];
$this->logger->info("Api SaveSalesDetails : Shipping Invoice items count : " .count($shipping_lineitems_array));
if (count($shipping_lineitems_array) > 0 && $last_insert_invoice_id != "") {
$message .= " Its have " . count($shipping_lineitems_array) . " shipping details ,";
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1];
$existing_shipping_invoiceitem = $api_model->getData('invoiceitems', $where);
$extensive_correspondence .= " Its have " . count($shipping_lineitems_array) . " shipping details ,";
$basic_message .= " and Its have " . count($shipping_lineitems_array) . " shipping details";
$this->logger->info("Api SaveSalesDetails : ".$extensive_correspondence);
$shipping_where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1,'quantity'=>0];
$existing_shipping_invoiceitem = $api_model->getData('invoiceitems', $shipping_where);
$request_shipping_invoiceitem = (array)$shipping_lineitems_array;
$filteringExistingShippingInvoiceItemWpApiId = [];
@ -773,11 +740,15 @@ class ApiIntegration extends ResourceController
}
if (!empty($filteringExistingShippingInvoiceItemWpApiId)) {
$this->logger->info("Api SaveSalesDetails : Incoming InvoiceItem (Shipping) Wp Id " .implode(",",$filteringRequestedShippingInvoiceItemWpApiId));
$this->logger->info("Api SaveSalesDetails : Existing InvoiceItem (Shipping) Wp Id " .implode(",",$filteringExistingShippingInvoiceItemWpApiId));
$A = $filteringExistingShippingInvoiceItemWpApiId;
$B = $filteringRequestedShippingInvoiceItemWpApiId;
$missingShippingValues = array_diff($A, $B); //Find difference element in Existing Images only
$commonShippingElements = array_intersect($A, $B);
if (!empty($missingShippingValues)) {
$this->logger->info("Api SaveSalesDetails : Missing InvoiceItem (shipping) Wp Id " .implode(",",$missingShippingValues)." Are inactived");
$inactive_where = ['isactive' => 1, 'invoice_id' => (int)$last_insert_invoice_id];
$inactive_whereIn[0] = 'wp_api_line_items_id';
$inactive_whereIn[1] = $missingShippingValues;
@ -786,7 +757,7 @@ class ApiIntegration extends ResourceController
}
}
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1];
$where = ['invoice_id' => (int)$last_insert_invoice_id, 'isactive' => 1,'quantity'=>0];
if (!empty($commonShippingElements)) {
$whereIn[0] = 'wp_api_line_items_id';
$whereIn[1] = $commonShippingElements;
@ -794,6 +765,7 @@ class ApiIntegration extends ResourceController
$whereIn = null;
}
$lastestActiveShippingInvoiceitemsData = $api_model->getData('invoiceitems', $where, $whereIn);
$this->logger->info("Api SaveSalesDetails : lastest Active Invoice Item (shipping) Data Count " .count($lastestActiveShippingInvoiceitemsData));
foreach ($shipping_lineitems_array as $sii) {
$shippingInvoiceItemsId = null;
@ -819,17 +791,23 @@ class ApiIntegration extends ResourceController
$shipping_line_item_data[$j]['invoice_child_id'] = $shippingInvoiceItemsId;
$shipping_line_item_data[$j]['wp_api_line_items_id'] = $sii->id;
$shipping_line_item_data[$j]['invoice_id'] = $last_insert_invoice_id;
$this->logger->info("Api SaveSalesDetails : Invoiceitem Data For Shipping inx = $j ");
$j++;
} // line item loop closed
$message .= (!empty($shipping_line_item_data) ? $api_model->insertAndUpdateChildDetails($shipping_line_item_data, 'invoiceitems', 'invoice_child_id') : []);
$extensive_correspondence .= (!empty($shipping_line_item_data) ? $api_model->insertAndUpdateChildDetails($shipping_line_item_data, 'invoiceitems', 'invoice_child_id') : []);
$this->logger->info("Api SaveSalesDetails : ".$extensive_correspondence);
}
$response = ['status' => 200, 'message' => $message];
else{
$this->logger->error("Api SaveSalesDetails : Err = Invoice items (Shipping) Data Not Found");
}
$response = ['status' => 200, 'message' => $basic_message ,'indetails' => $extensive_correspondence];
}
else {
$this->logger->error("Api SaveSalesDetails : Err = Data Not Found");
$response = ['status' => 204, 'message' => 'Data No Found'];
}
return $response;
}
}
}

View File

@ -84,7 +84,7 @@ class Authentication extends BaseController
public function auth_confirm_mail()
{
// Get the email address from the request
$email = $this->request->getGet('email');
$mail_id = $this->request->getGet('email');
$url_domain = base_url();
// Validate the email address
@ -99,43 +99,32 @@ class Authentication extends BaseController
// Check if the email exists in the database
$auth_model = new AuthenticationModel();
// $user = $auth_model->where('email', $email)->first();
$where = ['email' => $email, 'isactive' => 1];
// $user = $auth_model->where('email', $mail_id)->first();
$where = ['email' => $mail_id, 'isactive' => 1];
$user = $auth_model->where($where)->first();
if (!$user) {
$this->logger->error('There is no user enteries against given mail');
return redirect()->back()->withInput()->with('error', 'There is no user enteries against given mail');
} else {
$data['email'] = $email;
$data['mail_id'] = $mail_id;
// Generate a unique token for password reset
$token = bin2hex(random_bytes(32));
$content = "Click the link below to reset your password : " . $url_domain . "reset_password?email=" . $email . "&token=" . $token;
// $email = \Config\Services::email();
// $email->setTo('sanjeev.p@venbainfotech.com');
// $email->setFrom('venbalap08@gmail.com', 'BB-VBP');
// $email->setSubject('BB-VBP Password Reset');
// $email->setMessage($content);
$content = "Click the link below to reset your password : " . $url_domain . "auth_reset_password?email=" . $mail_id . "&token=" . $token;
$email = \Config\Services::email();
// $recipient = 'venbalap08@gmail.com';
$recipient = $mail_id;
// $email->setTo('venbalap08@gmail.com');
// $email->setFrom('venbalap08@gmail.com');
// $email->setSubject('Password Reset Testing');
// $email->setMessage('ZXER');
// if ($email->send()) {
// // Email sent successfully
// return view('auth_confirm_mail', $data);
// } else {
// $this->logger->error('Email Not Sended,Try Again');
// return redirect()->back()->withInput()->with('error', 'Email Not Sended,Try Again');
// }
// Compose the email
$email->setTo($recipient);
$email->setFrom('no-reply@tripapprovaltool.com', 'BB-VBP');
$email->setSubject('Email Notification');
// $email->setMessage('This is a notification email from CodeIgniter.');
$email->setMessage($content);
$update_token['reset_link'] = $token;
$auth_model->update($user['user_id'], $update_token);
$data['link'] = $url_domain . "auth_reset_password?email=" . $email . "&token=" . $token;
$data['link'] = $url_domain . "auth_reset_password?email=" . $mail_id . "&token=" . $token;
// Retrieve flashed session data
$successMessage = session()->getFlashdata('success');
$validationErrors = session()->getFlashdata('error');
@ -144,7 +133,14 @@ class Authentication extends BaseController
// Here, we'll use the default View class for demonstration purposes
$data['successMessage'] = $successMessage;
$data['validationErrors'] = $validationErrors;
return view('auth_confirm_mail', $data);
// return view('auth_confirm_mail', $data);
if ($email->send()) {
// Email sent successfully
return view('auth_confirm_mail', $data);
} else {
$this->logger->error('Email Not Sended,Try Again');
return redirect()->back()->withInput()->with('error', 'Email Not Sended,Try Again');
}
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Controllers;
class Notifications extends BaseController
{
public function index($phoneNumber,$message)
{
// Sanitize phone number to remove special characters and spaces
$phoneNumber = preg_replace('/[^0-9]/', '', $phoneNumber);
// Construct the WhatsApp link
$whatsappLink = "https://wa.me/{$phoneNumber}?text=" . urlencode($message);
// Redirect to the WhatsApp link
return redirect()->to($whatsappLink);
}
}

View File

@ -1,5 +1,5 @@
<?php
function perform_http_request($method, $url, $data = false) {
function perform_http_request_old($method, $url, $data = false) {
$username = "ck_935889d13267b63c2341168e42ffafe3c1ee831a";
$password = "cs_6ce1321c3f08049dfb3c8098ea21137796446bc4";
$encodekey = base64_encode($username.':'.$password);

View File

@ -0,0 +1,22 @@
<?php
namespace App\Models;
use CodeIgniter\Model;
class NotificationModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'user_id';
protected $allowedFields = ['user_id','user_name','email','first_name','last_name','password','mobile_no','date_of_birth','address','gender','profile_picture','city','state','postal_code','country','role','isactive','business_id'];
public function saveData($data, $id = null)
{
if ($id === null) {
// Insert new record
return $this->insert($data);
} else {
// Update existing record
return $this->update($id, $data);
}
}
}

View File

@ -103,12 +103,12 @@
</svg>
<h3>Success !</h3>
<!-- <p class="text-muted mt-2"> A email has been send to <span class="font-weight-medium"><?= $email; ?></span>.
<p class="text-muted mt-2"> A email has been send to <span class="font-weight-medium"><?= $mail_id; ?></span>.
Please check for an email from company and click on the included link to
reset your password. </p>
<a href="<?= base_url(); ?>" class="btn btn-block btn-primary waves-effect waves-light mt-3">Back to Home</a> -->
<a href="<?= $link; ?>" class="btn btn-block btn-primary waves-effect waves-light mt-3" target="_blank">Alternative So Click here</a>
<a href="<?= base_url(); ?>" class="btn btn-block btn-primary waves-effect waves-light mt-3">Back to Home</a>
<!-- <a href="<?= $link; ?>" class="btn btn-block btn-primary waves-effect waves-light mt-3" target="_blank">Alternative So Click here</a> -->
</div>
</div> <!-- end card-body -->
</div>