(bool) $success, 'message' => (string) $message ), $data); return $CI->output ->set_status_header((int) $httpStatus) ->set_content_type('application/json', 'utf-8') ->set_output(json_encode($payload)); } function business_exception_response(Throwable $exception) { $status = $exception instanceof BusinessException ? $exception->getCode() : 500; if ($status < 400 || $status > 599) { $status = 500; } if (!($exception instanceof BusinessException)) { log_message('error', get_class($exception) . ': ' . $exception->getMessage()); } $message = $exception instanceof BusinessException ? $exception->getMessage() : 'Terjadi kesalahan saat memproses transaksi.'; return json_response(false, $message, array(), $status); }