add flutter

This commit is contained in:
Ariska
2026-03-11 15:29:37 +07:00
parent c253e1a370
commit 619d758027
9490 changed files with 135801 additions and 1353 deletions
+45 -10
View File
@@ -10,6 +10,7 @@ class Driver extends REST_Controller
parent::__construct();
$this->load->helper("url");
$this->load->helper('fcm_v1_helper');
$this->load->database();
$this->load->model('Driver_model');
$this->load->model('Pelanggan_model');
@@ -75,16 +76,28 @@ class Driver extends REST_Controller
$data = file_get_contents("php://input");
$decoded_data = json_decode($data);
$reg_id = array(
'reg_id' => $decoded_data->token
);
// Only save reg_id (FCM token) when valid. Invalid/placeholder tokens are updated by relogin.
$token_from_regid = isset($decoded_data->reg_id) ? trim((string) $decoded_data->reg_id) : '';
$token_from_token = isset($decoded_data->token) ? trim((string) $decoded_data->token) : '';
$token = $token_from_regid !== '' ? $token_from_regid : $token_from_token;
$reg_id = array();
if ($token !== '' && function_exists('fcm_v1_is_valid_device_token') && fcm_v1_is_valid_device_token($token)) {
$reg_id['reg_id'] = $token;
}
$condition = array(
'password' => sha1($decoded_data->password),
'no_telepon' => $decoded_data->no_telepon,
//'token' => $decoded_data->token
'password' => sha1($decoded_data->password)
);
$check_banned = $this->Driver_model->check_banned($decoded_data->no_telepon);
$login_by_phone = isset($decoded_data->no_telepon) && $decoded_data->no_telepon !== '';
if ($login_by_phone) {
$condition['no_telepon'] = $decoded_data->no_telepon;
} else {
$condition['email'] = $decoded_data->email;
}
$check_banned = $login_by_phone
? $this->Driver_model->check_banned($decoded_data->no_telepon)
: $this->Driver_model->check_banned_by_email($decoded_data->email);
if ($check_banned) {
$message = array(
'message' => 'banned',
@@ -96,9 +109,12 @@ class Driver extends REST_Controller
$message = array();
if ($cek_login->num_rows() > 0) {
$upd_regid = $this->Driver_model->edit_profile($reg_id, $decoded_data->no_telepon);
$no_telepon = $cek_login->row()->no_telepon;
if (!empty($reg_id)) {
$this->Driver_model->edit_profile($reg_id, $no_telepon);
}
$get_pelanggan = $this->Driver_model->get_data_pelanggan($condition);
$this->Driver_model->edit_status_login($decoded_data->no_telepon);
$this->Driver_model->edit_status_login($no_telepon);
$message = array(
'code' => '200',
'message' => 'found',
@@ -133,6 +149,12 @@ class Driver extends REST_Controller
);
$ins = $this->Driver_model->my_location($data);
// When driver sends valid FCM token (reg_id) with location, update so they receive order requests. Invalid/placeholder tokens are updated by relogin.
$reg_id = isset($decoded_data->reg_id) ? trim((string) $decoded_data->reg_id) : '';
if ($reg_id !== '' && isset($decoded_data->id_driver) && function_exists('fcm_v1_is_valid_device_token') && fcm_v1_is_valid_device_token($reg_id)) {
$this->Driver_model->update_driver_reg_id($decoded_data->id_driver, $reg_id);
}
if ($ins) {
$message = array(
'message' => 'location updated',
@@ -360,6 +382,7 @@ class Driver extends REST_Controller
$data = file_get_contents("php://input");
$dec_data = json_decode($data);
log_message('debug', 'accept_post: payload=' . $data);
$data_req = array(
'id_driver' => $dec_data->id,
@@ -372,9 +395,11 @@ class Driver extends REST_Controller
);
$cek_login = $this->Driver_model->get_status_driver($condition);
log_message('debug', 'accept_post: get_status_driver rows=' . $cek_login->num_rows());
if ($cek_login->num_rows() > 0) {
$acc_req = $this->Driver_model->accept_request($data_req);
log_message('debug', 'accept_post: accept_request result=' . json_encode($acc_req));
if ($acc_req['status']) {
$message = array(
'message' => 'berhasil',
@@ -415,6 +440,7 @@ class Driver extends REST_Controller
$data = file_get_contents("php://input");
$dec_data = json_decode($data);
log_message('debug', 'start_post: payload=' . $data);
$data_req = array(
'id_driver' => $dec_data->id,
@@ -422,6 +448,7 @@ class Driver extends REST_Controller
);
$acc_req = $this->Driver_model->start_request($data_req);
log_message('debug', 'start_post: start_request result=' . json_encode($acc_req));
if ($acc_req['status']) {
$message = array(
'message' => 'berhasil',
@@ -455,6 +482,7 @@ class Driver extends REST_Controller
$data = file_get_contents("php://input");
$dec_data = json_decode($data);
log_message('debug', 'finish_post: payload=' . $data);
$data_req = array(
'id_driver' => $dec_data->id,
@@ -467,6 +495,7 @@ class Driver extends REST_Controller
);
$finish_transaksi = $this->Driver_model->finish_request($data_req, $data_tr);
log_message('debug', 'finish_post: finish_request result=' . json_encode($finish_transaksi));
if ($finish_transaksi['status']) {
$message = array(
'message' => 'berhasil',
@@ -863,6 +892,12 @@ class Driver extends REST_Controller
$namafoto = time() . '-' . rand(0, 99999) . ".jpg";
$path = "images/fotodriver/" . $namafoto;
file_put_contents($path, base64_decode($image));
// New driver registrations from older apps do not send an FCM token yet.
// Generate a deterministic placeholder based on email so reg_id is never empty.
// This stays unusable for FCM v1 because fcm_v1_is_valid_device_token() will reject it.
$regIdPlaceholder = 'R' . sprintf('%u', crc32(strtolower(trim((string) $dec_data->email))));
$data_signup = array(
'id' => 'D' . time(),
'nama_driver' => $dec_data->nama_driver,
@@ -878,7 +913,7 @@ class Driver extends REST_Controller
'countrycode' => $dec_data->countrycode,
'gender' => $dec_data->gender,
'alamat_driver' => $dec_data->alamat_driver,
'reg_id' => 12345,
'reg_id' => $regIdPlaceholder,
'status' => 0
);