public function __construct() { try { $options = array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC); $this->db = new PDO('pgsql:dbname=' . DB_NAME . ';host=' . DB_HOST . ';port=' . DB_PORT, DB_USER, DB_PASSWORD, $options); if (!$this->db) { Tool::log("Database not available.", 'emergency'); } } catch (PDOException $e) { Tool::log("Database not available: " . $e->getMessage(), 'emergency'); } }
/** * Prepare the object to retrieve access token for * specific driver */ public function __construct($provider) { if (!isset(Tool::getConfig()['oauth'][$provider])) { Tool::log('OAuth settings not configured for provider \'' . $provider . '\' in config.php'); Tool::endWithJson([], 500); exit; } $config = Tool::getConfig()['oauth'][$provider]; $this->service = $provider; if ($provider == 'github') { $this->provider = new \League\OAuth2\Client\Provider\Github(['clientId' => $config['clientId'], 'clientSecret' => $config['clientSecret']]); } else { Tool::endWithJson(["error" => "OAuth Provider " . $provider . " doesn\\'t exist"], 500); exit; } }
/** * Función para la ejecución de consultas sobre la base de datos que no devuelven un conjunto de registros como resultado (UPDATE, INSERT o DELETE). * @param $sql Cadena de instrucción SQL. * @param $db Enlace a la base de datos sobre la que se ejecuta la consulta. * @return bool Devuelve true en caso de ejecución correcta y false en caso de error. */ public static function ejecuta($sql, $db, $logErrors = false) { $res = mysql_query($sql, $db); if (!$res) { if ($logErrors) { Tool::log("[ERROR] SQL:" . $sql, LOG); } echo "SQL:" . $sql . "<br/>Error: " . mysql_error($db) . "<br/>"; return false; } else { return true; } }
/** * Función para mover una compra de la tabla Compras a HistoricoCompras. El registro desaparecerá de la tabla Compras. * @param unknown $id Id de la compra. */ public static function archivaCompra($id) { $db = Tool::_conectaBD(); $archivado = false; if (!$db) { Tool::log("[ERROR] Error conectando a la base de datos archivando compra" . PHP_EOL . mysql_errno . ":" . mysql_error($db), LOG); } else { $c = new Compra(); $c->getCompra($id); $sql = "INSERT INTO HistoricoCompras (Id,IdVendedor,IdComprador,importe,fecha,cantidad,IdEvento)\n\t\t\tVALUES ('" . $c->id_transaccion . "','" . $c->email_vendedor . "','" . $c->email_comprador . "','" . $c->precio . "','" . $c->fecha . "'," . $c->cantidad . ",'" . $c->id_evento . "')"; if ($c->id_transaccion != "") { if (!Compra::estaArchivada($c->id_transaccion)) { if (Tool::ejecutaConsulta($sql, $db)) { //echo "Compra " . $c->id_transaccion . " archivado<br/>"; $archivado = true; } else { //echo "Error en la insercion del compra " . $c->id_transaccion . " -> " . mysqli_error($db) . "<br/> // SQL->" . $sql . "<br/><hr/>"; } } else { $archivado = true; //echo "Compra " . $id . " ya esta archivado<br/>"; } } else { //echo "Compra " . $id . " no encontrado<br/>"; } if ($archivado) { Compra::deleteCompra($id); } } Tool::_desconectaBD($db); return $archivado; }
Tool::log("[OK] Comprador ya registrado ", LOG_FILE); } $auxReg2 = $compra->compraVerificada(); if ($auxReg2) { Tool::log("[OK] Compra con ID " . $compra->id_transaccion . " verificada.", LOG_FILE); $auxReg3 = $compra->compraRegistrada(); if (!$auxReg3) { $res = $compra->registraCompra(); if ($res) { Tool::log("[OK] Compra con ID " . $compra->id_transaccion . " registrada correctamente", LOG_FILE); Tool::notificaMAIL(true, $compra); } } else { Tool::log("[ERROR] Compra con ID " . $compra->id_transaccion . " duplicada", LOG_FILE); } } else { Tool::log("[ERROR] Compra con ID " . $compra->id_transaccion . " erronea o no completada", LOG_FILE); } /* if(DEBUG == true) { error_log(date('[Y-m-d H:i e] '). "Verified IPN: $req ". PHP_EOL, 3, LOG_FILE); error_log($first_name . " " . $last_name . " con e-mail " . $payer_email . " compra " . $item_name . " por " . $payment_amount . " " . $payment_currency . PHP_EOL, 3, LOG_FILE); } } else if (strcmp ($res, "INVALID") == 0) { // log for manual investigation // Add business logic here which deals with invalid IPN messages if(DEBUG == true) { error_log(date('[Y-m-d H:i e] '). "Invalid IPN: $req" . PHP_EOL, 3, LOG_FILE); } } */
/** * Función para mover un comprador de la tabla Compradores a HistoricoCompradores. El registro desaparecerá de la tabla Compradores. * @param unknown $id Email del comprador. */ public static function archivaComprador($id) { $db = Tool::_conectaBD(); $archivado = false; if (!$db) { Tool::log("[ERROR] Error conectando a la base de datos archivando comprador" . PHP_EOL . mysqli_errno($db) . ":" . mysqli_error($db), LOG); } else { $c = new Comprador(); $c->getComprador($id); $sql = "INSERT INTO HistoricoCompradores (nombre,apellidos,email) VALUES ('" . $c->nombre . "','" . $c->apellidos . "','" . $c->email . "')"; if ($c->email != "") { if (!Comprador::estaArchivado($c->email)) { if (Tool::ejecutaConsulta($sql, $db)) { //echo "Comprador " . $c->email . " archivado<br/>"; $archivado = true; } else { //echo "Error en la insercion del comprador " . $c->email . " -> " . mysql_error($db) . "<br/> // SQL->" . $sql . "<br/><hr/>"; } } else { $archivado = true; //echo "Comprador " . $id . " ya esta archivado<br/>"; } } else { //echo "Comprador " . $id . " no encontrado<br/>"; } if ($archivado) { Comprador::deleteComprador($id); } } Tool::_desconectaBD($db); return $archivado; }