demo transaksi
This commit is contained in:
@@ -76,10 +76,24 @@ class Driver extends REST_Controller
|
||||
|
||||
$data = file_get_contents("php://input");
|
||||
$decoded_data = json_decode($data);
|
||||
if (!$decoded_data || !isset($decoded_data->password)) {
|
||||
$this->response(array('code' => '400', 'message' => 'Invalid request', 'data' => []), 200);
|
||||
return;
|
||||
}
|
||||
if (function_exists('fcm_v1_validate_login_device_token_from_app')) {
|
||||
$fcm_err = fcm_v1_validate_login_device_token_from_app($decoded_data);
|
||||
if (is_array($fcm_err)) {
|
||||
$this->response(
|
||||
array('code' => $fcm_err['code'], 'message' => $fcm_err['message'], 'data' => []),
|
||||
200
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 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;
|
||||
$token = function_exists('fcm_v1_device_token_from_request')
|
||||
? fcm_v1_device_token_from_request($decoded_data)
|
||||
: '';
|
||||
$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;
|
||||
@@ -149,8 +163,10 @@ 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) : '';
|
||||
// When driver sends valid FCM token with location, update so they receive order requests.
|
||||
$reg_id = function_exists('fcm_v1_device_token_from_request')
|
||||
? fcm_v1_device_token_from_request($decoded_data)
|
||||
: (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);
|
||||
}
|
||||
@@ -372,6 +388,22 @@ class Driver extends REST_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Persist driver accept exchange on transaksi row (admin order detail API log).
|
||||
*/
|
||||
private function log_driver_accept_api($id_transaksi, $raw_body, $response_message)
|
||||
{
|
||||
$id_transaksi = (int) $id_transaksi;
|
||||
if ($id_transaksi <= 0) {
|
||||
return;
|
||||
}
|
||||
$line = json_encode(array(
|
||||
'driver_request_raw' => $raw_body,
|
||||
'backend_response' => $response_message,
|
||||
), JSON_UNESCAPED_UNICODE);
|
||||
$this->Pelanggan_model->append_transaksi_driver_request_log($id_transaksi, $line);
|
||||
}
|
||||
|
||||
function accept_post()
|
||||
{
|
||||
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
||||
@@ -383,6 +415,7 @@ class Driver extends REST_Controller
|
||||
$data = file_get_contents("php://input");
|
||||
$dec_data = json_decode($data);
|
||||
log_message('debug', 'accept_post: payload=' . $data);
|
||||
$tid_for_log = (is_object($dec_data) && isset($dec_data->id_transaksi)) ? (int) $dec_data->id_transaksi : 0;
|
||||
|
||||
$data_req = array(
|
||||
'id_driver' => $dec_data->id,
|
||||
@@ -390,13 +423,13 @@ class Driver extends REST_Controller
|
||||
);
|
||||
|
||||
$condition = array(
|
||||
'id_driver' => $dec_data->id,
|
||||
'status' => '1'
|
||||
'id_driver' => $dec_data->id
|
||||
);
|
||||
|
||||
$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) {
|
||||
$driver_status = $cek_login->num_rows() > 0 ? (string) $cek_login->row('status') : '';
|
||||
log_message('debug', 'accept_post: get_status_driver rows=' . $cek_login->num_rows() . ' status=' . $driver_status);
|
||||
if ($cek_login->num_rows() > 0 && ($driver_status === '1' || $driver_status === '4')) {
|
||||
|
||||
$acc_req = $this->Driver_model->accept_request($data_req);
|
||||
log_message('debug', 'accept_post: accept_request result=' . json_encode($acc_req));
|
||||
@@ -405,6 +438,7 @@ class Driver extends REST_Controller
|
||||
'message' => 'berhasil',
|
||||
'data' => 'berhasil'
|
||||
);
|
||||
$this->log_driver_accept_api($tid_for_log, $data, $message);
|
||||
$this->response($message, 200);
|
||||
} else {
|
||||
if ($acc_req['data'] == 'canceled') {
|
||||
@@ -412,12 +446,14 @@ class Driver extends REST_Controller
|
||||
'message' => 'canceled',
|
||||
'data' => 'canceled'
|
||||
);
|
||||
$this->log_driver_accept_api($tid_for_log, $data, $message);
|
||||
$this->response($message, 200);
|
||||
} else {
|
||||
$message = array(
|
||||
'message' => 'unknown fail',
|
||||
'data' => 'canceled'
|
||||
);
|
||||
$this->log_driver_accept_api($tid_for_log, $data, $message);
|
||||
$this->response($message, 200);
|
||||
}
|
||||
}
|
||||
@@ -426,6 +462,7 @@ class Driver extends REST_Controller
|
||||
'message' => 'unknown fail',
|
||||
'data' => 'canceled'
|
||||
);
|
||||
$this->log_driver_accept_api($tid_for_log, $data, $message);
|
||||
$this->response($message, 200);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user