mobilebackend/database.old/Requester.php

913 lines
37 KiB
PHP
Raw Normal View History

2020-02-06 10:09:26 +00:00
<?php
/**
* Created by PhpStorm.
* User: freuddebian
* Date: 04/08/18
* Time: 22:36
*/
include 'DataBaseConnector.php';
class Requester
{
//TODO ajouter la comparaison partiel de la ville query with la ville
// Step 3: instantiate a new Twilio Rest Client
var $messenger;
var $db;
var $user_id;
var $messageText;
var $enLangs=["en","en-US","en_US","ca","in","gb","GB","us"];
/**
* Requester constructor.
*/
public function __construct($user_id,$lang="en")
{
$this->db = new DataBaseConnector();
$this->user_id = $user_id;
$this->messenger=new Messenger();
$la=$lang;
if(in_array($lang,$this->enLangs))$la='en';
if(file_exists("./../static/$la/message.json"))
$this->messageText=file_get_contents("./../static/$la/message.json");
else
$this->messageText=file_get_contents("./../static/en/message.json");
$this->messageText=json_decode($this->messageText,true);
}
public function loginPhonePassword($phone, $password)
{
// check for user
$user = $this->loginUser($phone, $password);
if (!$user) {
$user = $this->loginAgent($phone, $password);
if (!$user) {
$response["error"] = 1;
$response["error_msg"] =$this->messageText["PHONE_OR_NUMBER_INCORRECT"] ;
return $response;
}
}
return $user;
}
public function getAgentInfoByCode($code){
$codes=$this->getChildCode($code);
if(isset($codes["child"])){
$codes['network']=$this->db->getAgentNetworkByCode($code);
}
return json_encode($codes);
}
public function getSuperviseurNetwork($codesuperviseur)
{
$point = $this->db->getSuperviseurNetwork($codesuperviseur, $this->user_id);
if (isset($point['success'])) {
$response['success'] = 1;
$response['datas'] = $point['val'];
$response['catchild']=$point['catchild'];
$response['catparent']=$point['catparrain'];
return $response;
} else {
$response = ['error' => 1,
'error_msg' => $this->messageText['UNABLE_TO_GET_GEOLOCATED_POINT'], 'sql_error' => $point["error"]];
return $response;
}
}
public function getAllCountryPoint($country)
{
$point = $this->db->getAllPointInCountry($country);
if ($point) {
$response['success'] = 1;
$response['datas'] = $point;
return $response;
} else {
$response = ['error' => 1, 'error_msg' => "impossible de recupere les points de cette ville"];
return $response;
}
}
public function recoverPasswordAgent($number)
{
if ($this->db->isPhoneExistedSimple($number)) {
$randomcode = $this->db->random_string();
$hash = $this->db->hashSSHA($randomcode);
$encrypted_password = $hash["encrypted"]; // encrypted password
$salt = $hash["salt"];
$user = $this->db->forgotPasswordSimple($number, $encrypted_password, $salt);
if ($user) {
$mail = $this->db->getEmailSimple($number);
if ($mail) {
$subject = "Password Recovery";
$message = sprintf($this->messageText['TEXT_RECOVERY_PASSWORD'],$randomcode);
$from = "noreply@ilink-app.com";
$headers = "From:" . $from;
$this->messenger->setSubject($subject);
$this->messenger->setHeader($headers);
$this->messenger->setMessage($message);
$this->messenger->setContact($number);
$this->messenger->setMail($mail['email']);
$this->messenger->sendMail();
$this->messenger->sendSms();
// Stop Sending SMS
$response["success"] = 1;
$response["message"] = "Le mot de passe a été modifié et un message vous a été envoyé à " . $mail["email"];
return $response;
} else {
$response["error"] = -6;
$response["message"] = "impossible d'envoyer le mail";
$response["last_error"] = mysqli_error($this->db->con);
return $response;
}
} else {
$response["error"] = -7;
$response["message"] = "impossible de changer le mots de passe";
$response["last_error"] = mysqli_error($this->db->con);
return $response;
}
}else
return ['error' => -5, 'message' => "Ce numéro n'existe pas",'phone'=>$number];
}
public function recoverUserPassword($number)
{
if ($this->db->isPhoneExistedSimple($number)) {
$randomcode = $this->db->random_string();
$hash = $this->db->hashSSHA($randomcode);
$encrypted_password = $hash["encrypted"]; // encrypted password
$salt = $hash["salt"];
$user = $this->db->forgotPasswordSimple($number, $encrypted_password, $salt);
if ($user) {
$mail = $this->db->getEmailSimple($number);
if ($mail) {
$subject = "Password Recovery";
$message = sprintf($this->messageText['TEXT_RECOVERY_PASSWORD'],$randomcode);
$from = "noreply@ilink-app.com";
$headers = "From:" . $from;
$this->messenger->setSubject($subject);
$this->messenger->setHeader($headers);
$this->messenger->setMessage($message);
$this->messenger->setContact($number);
$this->messenger->setMail( $mail["email"]);
$this->messenger->sendMail();
//$this->messenger->sendSms();
// Stop Sending SMS
$response["success"] = 1;
$response["message"] = "Le mot de passe a été modifié et un message vous a été envoyé à " . $mail["email"];
return $response;
} else {
$response["error"] = -6;
$response["message"] = "impossible d'envoyer le mail";
$response["last_error"] = mysqli_error($this->db->con);
return $response;
}
} else {
$response["error"] = -7;
$response["message"] = "impossible de changer le mots de passe";
$response["last_error"] = mysqli_error($this->db->con);
return $response;
}
}else
return ['error' => -5, 'message' => 'Ce numéro n\'existe pas',"phone"=>"$number"];
}
private function sendMail($email, $subject, $message, $headers)
{
mail($email, $subject, $message, $headers);
}
private function sendMessage($message, $number)
{
$sms = $this->client->account->messages->create(
$number,
array(
// Step 6: Change the 'From' number below to be a valid Twilio number
// that you've purchased
'from' => sender_number,
// the sms body
'body' => $message
)
);
}
public function getPointAroundKm($reseau,$position, $distance,$page)
{
$list=$this->db->getPointInDistance($reseau,$position,$distance,$page);
return json_encode($list);
}
public function getNetworkPoint($network)
{
$points = $this->db->getPointsNetwork($network, $this->user_id);
if (!isset($points['error'])) {
$pts=['success'=>1,'datas'=>$points];
return json_encode($pts);
} else
return json_encode(['error' => -4, 'error_msg' => 'error query','mysql'=> mysqli_error($this->db->con),"data"=>$points,"network"=>$network,"user"=>$this->user_id]);
}
function distance($lat1, $lon1, $lat2, $lon2)
{
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +
cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = "K";
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
public function registerGeolocated($request)
{
if ($this->db->isPhoneExistedInCategory($request->phone, $request->category,$request->phone_transaction)) {
// user is already existed - error response
$response["error"] = 1;
$response["error_msg"] = $this->messageText['ALREADY_PHONE_NUMBER'];
echo json_encode($response);
} else {
if ($checkValidity = $this->db->checknumberValidity($request->phone)) {
$membercodetest = $this->db->isMemberCodeExisted($request->member);
if ($membercodetest) {
$user = $this->db->storeUser($request->address, $request->lastname, $request->email, $request->phone,
$request->password, $request->network, $request->member, $request->latitude, $request->longitude, $request->town,$request->phone_transaction);
if ($user != null && !isset($user['error'])) {
//if ($user) {
// user stored successfully
$user["success"] = 1;
$validation = $user["validation_code"];
$username = $user["lastname"];
$subject = "Bienvenue sur Ilink";
$phone = $user['phone'];
$ct=($user['category']=='geolocated'?'Agent Géolocalisé':($user['category']=='super'?'Administrateur':'Super Administrateur'));
$message1 =sprintf($this->messageText['MESSAGE_1'],$username,$ct,$phone,$request->password,$validation);
$message2 = sprintf($this->messageText['MESSAGE_2'],$username,$ct,$phone,$request->password);
$from = "noreply@ilink-app.com";
$headers = "From:" . $from;
$name = "ilink";
$this->messenger->setMail($user['email']);
$this->messenger->setContact($user['phone']);
$this->messenger->setMessage($user['category']=='super'?$message2:$message1);
$this->messenger->setSubject($subject);
$this->messenger->setHeader($headers);
if (!$this->messenger->sendMail()) {
return json_encode(error_get_last());
};
$sms = $this->messenger->sendSms();
}
return json_encode($user);
/* echo "Réseau : ".strtoupper($user["network"])."<br />";
echo "<br />";
echo "Nom(s) :".$user["lastname"]."<br />";
echo "Email par défaut du réseau : ".$user["email"]."<br />";
echo "Telephone :".$user["phone"]."<br />";
echo "Code membre pour le réseau : ".$user["code_membre"]."<br />";
echo "<br />";*/
} else {
return json_encode(['error' => 'unable to get membrre', 'error_msg' => $this->messageText['NO_CODE_MEMBER']]);
}
}else{
return json_encode(['error' => 'unable to get membrre',"msg"=>$this->messageText, 'error_msg' => $this->messageText['INVALID_PHONE']]);
}
}
}
public function getNetwork()
{
return json_encode($this->db->getNetwork());
}
public function loginUser($phone, $password)
{
$user = $this->db->getUserByPhoneAndPasswordSimple($phone, $password);
if (!isset($user['error'])) {
// user found
// echo json with success = 1
$user["success"] = 1;
if(isset($user['active']))
$user['etat']=$user['active'];
} else {
switch ($user['error']){
case -2:$user['error_msg']=$this->messageText['WRONG_PHONE_NUMBER'];
break;
case -3:
$user['error_msg']=$this->messageText['WRONG_PASSWORD'];break;
}
}
return $user;
}
public function loginAgent($phone, $password)
{
$user = $this->db->getUserByPhoneAndPasswordGeolocated($phone, $password);
if (!isset($user['error'])) {
// user found
// echo json with success = 1
$user["success"] = 1;
return $user;
} else
return $user;
}
public function getSupervisorAdhesionList($codeparrain)
{
$resparrain=mysqli_query($this->db->con,"SELECT na.id as id FROM networks_agents na INNER JOIN codeGenerer cg ON na.codeGenerer_id=cg.id WHERE cg.code_membre='$codeparrain'");
if($resparrain){
$parrain=mysqli_fetch_array($resparrain,MYSQLI_ASSOC)['id'];
$r=mysqli_query($this->db->con,"select ag.firstname as firstname,ag.lastname as lastname, ag.email as email,na.phone as phone ,ne.name as network,cg.code_membre as code_membre,cg.code_parrain as code_parrain,ds.etat as etat
from agents ag INNER JOIN networks_agents na ON ag.id=na.agent_id INNER JOIN codeGenerer cg ON na.codeGenerer_id=cg.id INNER JOIN networks ne ON na.network_id=ne.id INNER JOIN demandeAdhesion ds ON 1=1 WHERE ds.networks_agent_id='$parrain' AND cg.code_membre!='$codeparrain' AND na.etat='0' AND ds.etat='0' AND cg.code_parrain='$codeparrain'");
$rows=[];
if($r) {
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$rows[] = $row;
}
if (count($rows) > 0) {
return $rows;
} else {
echo mysqli_error($this->db->con);
return $rows;
}
}else{
return ['error'=>mysqli_error($this->db->con)];
}
}else{
return mysqli_error($this->db->con);
}
}
public function getChildCode($codeparrain)
{
$r=$this->db->getCategoryAgent($codeparrain);
if($r['etat']==1){
switch ($r['category']){
case 'hyper':
$r['child']='super';
break;
case 'super':
$r["child"]="geolocated";
break;
}
}
return $r;
}
public function updateWrongPoint()
{
$result=[];
try{
$result = mysqli_query($this->db->con, "UPDATE users_simple SET firstname = REPLACE(firstname, 'é', 'é') WHERE firstname LIKE '%é%'");
}catch (Exception $e) {
var_dump(mysqli_error($this->db->con));
}
$da="freud junior";
return $result;
}
public function storeCreditAsk($phone,$montant,$code)
{
$result=$this->db->storeDemandeCredit($phone,$montant,$code);
if ($result) {
$usr=$result['agent'];
$subject = $this->messageText['NEW_DEMAND_TITLE'];
$email = $usr['email'];
$message = $this->messageText['SEND_CREDIT_DEMAND_TEXT_SUCCESS'];
$from = "noreply@ilink.com";
$headers = "From:" . $from;
$name = "ilink";
$this->messenger->setHeader($headers);
$this->messenger->setContact($phone);
$this->messenger->setMessage($message);
$this->messenger->setMail($email);
$this->messenger->setSubject($subject);
$this->messenger->sendMail();
try {
$this->messenger->sendSms();
}catch (Exception $e){
}
} else {
// user failed to store
$response["error"] = 1;
$response["result"]=$result;
$response["error_msg"] = $this->messageText['UNABLE_TO_SEND_DEMAND'];
$response["sql"]=mysqli_error($this->db->con);
$response["last"]=error_get_last();
$response["montant"]=$montant;
$response["phone"]=$phone;
echo json_encode($response);
}
return json_encode($result);
}
public function getCountryNetWork($indicatif)
{
$res=mysqli_query($this->db->con,
"SELECT nt.id AS id, nt.name AS name,nt.country_id AS countryId FROM networks nt INNER JOIN countries ct
ON nt.country_id=ct.id WHERE ct.code_dial='$indicatif' AND nt.name!=''AND nt.status=1");
if($res){
$rows=[];
while($row=mysqli_fetch_array($res,MYSQLI_ASSOC)){
$rows[]=$row;
}
return $rows;
}else
return ['error'=>'unable to query list networks','error_sql'=>mysqli_error($this->db->con)];
}
public function getTownInfoByName($name)
{
$res=mysqli_query($this->db->con,"SELECT nt.name as name,nt.id as id ,ct.code_dial as indicatif FROM towns nt INNER JOIN countries ct ON nt.country_id=ct.id WHERE UPPER(nt.name)=UPPER('$name')");
if($res){
while($row=mysqli_fetch_array($res,MYSQLI_ASSOC)){
$rows[]=$row;
}
if($rows==null){
return ['error'=>'unable to query town information','ville'=>$name,'error_sql'=>mysqli_error($this->db->con)];
}
return $rows;
}else
return ['error'=>'unable to query town information','ville'=>$name,'error_sql'=>mysqli_error($this->db->con)];
}
public function getListTownsCountry($indicatif)
{
$res=mysqli_query($this->db->con,"SELECT nt.name as name,nt.id as id ,ct.code_dial as indicatif FROM towns nt INNER JOIN countries ct ON nt.country_id=ct.id WHERE ct.code_dial='$indicatif'");
if($res){
$rows=[];
while($row=mysqli_fetch_array($res,MYSQLI_ASSOC)){
$rows[]=$row;
}
return $rows;
}else
return ['error'=>'unable to query list towns','indicatif'=>$indicatif,'error_sql'=>mysqli_error($this->db->con)];
}
public function validateAgent($phone, $code_validation,$mbre_reseau=null,$mr_sous_reseau=null)
{
if(isset($phone) && isset($code_validation)){
$res=mysqli_query($this->db->con,"SELECT na.id as agentId,ag.id as agId,cg.category as category,cg.code_membre as code_membre,cg.code_parrain AS code_parrain FROM agents ag INNER JOIN networks_agents na on ag.id=na.agent_id inner JOIN codeGenerer cg ON na.codeGenerer_id=cg.id WHERE na.phone='$phone' OR na.transactionNumber='$phone' AND na.validation_code='$code_validation'");
if($res){
if(mysqli_num_rows($res)>0){
$net=mysqli_fetch_array($res,MYSQLI_ASSOC);
$agentId=$net['agentId'];
$agId=$net['agId'];
$codeparrain = $net['code_parrain'];
$codeMembre=$net['code_membre'];
$re = mysqli_query($this->db->con, "SELECT ag.id as parrainId, ag.number_super as nbre_reseau,ag.number_geoBysuper as nbre_sous_reseau FROM agents ag INNER JOIN networks_agents na ON ag.id=na.agent_id inner JOIN codeGenerer cg ON na.codeGenerer_id=cg.id WHERE cg.code_membre='$codeparrain'");
if($re) {
$parrain = mysqli_fetch_array($re, MYSQLI_ASSOC);
$nbre_sup = $parrain['nbre_sous_reseau'];
$nbre = $parrain['nbre_reseau'];
$parrainId=$parrain['parrainId'];
switch ($net['category']) {
case 'hyper':
if (isset($mbre_reseau) && isset($mr_sous_reseau)) {
$r = mysqli_query($this->db->con, "UPDATE `networks_agents` SET etat = '1' WHERE `id` = $agentId ");
$var3["message_erreur_1"] = mysqli_error($this->db->con);
$rs = mysqli_query($this->db->con, "UPDATE agents SET number_super='$mbre_reseau',number_geoBysuper='$mr_sous_reseau' WHERE id='$agId'");
if ($r && $rs) {
$var3["success"] = 1;
$var3["message"] = "User has been validated successfully !";
return $var3;
} else {
$var3["error"] = 1;
$var3["message"] = mysqli_error($this->db->con);
return $var3;
}
} else {
$var3["error"] = -2;
$var3["message"] = "no nbre reseau et sous reseau";
return $var3;
}
break;
case 'geolocated':
$r = mysqli_query($this->db->con, "UPDATE networks_agents SET etat = '1' WHERE id = '$agentId' ");
if ($r) {
$nbre -= $nbre > 0 ? 1 : 0;
mysqli_query($this->db->con, "UPDATE agents SET number_geoBysuper = '$nbre' WHERE `id` = '$parrainId' ");
$var3["success"] = 1;
$var3["message"] = "User has been validated successfully !";
return $var3;
} else {
$var3["error"] = 1;
$var3["message"] = mysqli_error($this->db->con);
return $var3;
}
break;
case 'super':
$rs = mysqli_query($this->db->con, "UPDATE agents SET number_geoBysuper='$nbre_sup',number_super='$nbre_sup' WHERE id='$agId'");
if ($rs) {
if (mysqli_num_rows($re) > 0) {
$r = mysqli_query($this->db->con, "UPDATE `networks_agents` SET etat = '1' WHERE id ='$agentId'");
if ($r) {
$nbre -= $nbre > 0 ? 1 : 0;
if(mysqli_query($this->db->con, "UPDATE `agents` SET number_super = '$nbre' WHERE id='$parrainId'")){
$var3["success"] = 1;
$var3['nbre_sup']=$nbre;
$var3["message"] = "User has been validated successfully !";
return $var3;
}else {
$var3["error"] = 1;
$var3["message"] = mysqli_error($this->db->con);
return $var3;
}
} else {
$var3["error"] = 1;
$var3["message"] = mysqli_error($this->db->con);
return $var3;
}
} else {
$var3["error"] = -4;
$var3["message"] = "impossible de trouve le parrain";
return $var3;
}
} else {
$var3["error"] = -3;
$var3["message"] = mysqli_error($this->db->con);
return $var3;
}
break;
}
}else{
return ['error'=>'impossible de recuperer le parrain','error_msg'=>mysqli_error($this->db->con)];
}
}else{
return ['error'=>'invalide code','error_msg'=>"code de validation incorrect"];
}
}else{
return ['error'=>'unable to query info network agent','error_msg'=>mysqli_error($this->db->con)];
}
}
}
public function activeSupervisorAdhesion($code,$phone)
{
$idsUser=mysqli_query($this->db->con,"SELECT ag.email as email,ag.firstname as firstname,ag.lastname as lastname,na.validation_code as validation_code,na.phone as phone,
na.id as agent_id,ds.id as demande_id FROM agents ag INNER JOIN networks_agents na ON ag.id=na.agent_id INNER JOIN demandeAdhesion ds ON 1=1 INNER JOIN codeGenerer cg ON na.codeGenerer_id=cg.id WHERE ds.phone='$phone' AND cg.code_membre='$code'");
if($idsUser){
$idsusr=mysqli_fetch_array($idsUser,MYSQLI_ASSOC);
$idAgent=$idsusr['agent_id'];
$demandeId=$idsusr['demande_id'];
$udateDemande=mysqli_query($this->db->con,"UPDATE demandeAdhesion SET etat='1' WHERE id='$demandeId'");
if($udateDemande){
$user=$idsusr;
$validation = $user["validation_code"];
$username = $user["lastname"];
$subject = "Bienvenue sur Ilink";
$phone = $user['phone'];
$ct='Administrateur';
$message1 =sprintf($this->messageText['MESSAGE_3'],$ct,$phone,$validation);
$from = "noreply@ilink-app.com";
$headers = "From:" . $from;
$name = "ilink";
$this->messenger->setMail($user['email']);
$this->messenger->setContact($user['phone']);
$this->messenger->setMessage($message1);
$this->messenger->setSubject($subject);
$this->messenger->setHeader($headers);
if (!$this->messenger->sendMail()) {
return json_encode(error_get_last());
};
$sms = $this->messenger->sendSms();
}else{
echo mysqli_error($this->db->con);
}
echo json_encode($idsusr);
}else{
echo mysqli_error($this->db->con);
}
}
public function registerUser($request)
{
if ($this->db->isPhoneExistedSimple($request->phone)) {
// user is already existed - error response
$response["error"] = 1;
$response["error_msg"] = "numero existe deja";
echo json_encode($response);
} else {
if ($checkValidity = $this->db->checknumberValidity($request->phone)) {
$user = $this->db->storeUserSimple($request->address, $request->lastname, $request->email,
$request->phone,
$request->password, $request->network);
if ($user != null && !isset($user['error'])) {
$user["success"] = 1;
$username = $user["lastname"];
$subject = "Bienvenue sur Ilink";
$phone = $user['phone'];
$validation_code=$user['validation_code'];
$ct="Utilisateur";
$message1 =sprintf($this->messageText['MESSAGE_1'],$username,$ct,$phone,$request->password,$validation_code);
$message2 = sprintf($this->messageText['MESSAGE_2'],$username,$ct,$phone,$request->password,"");
$from = "noreply@ilink-app.com";
$headers = "From:" . $from;
$name = "ilink";
$this->messenger->setMail($user['email']);
$this->messenger->setContact($user['phone']);
$this->messenger->setMessage($message1);
$this->messenger->setSubject($subject);
$this->messenger->setHeader($headers);
if (!$this->messenger->sendMail()) {
return json_encode(error_get_last());
};
$sms = $this->messenger->sendSms();
} else {
$user = ['error' => 'impossible de créer l\'utilisateur', 'error_sql' => mysqli_error($this->db->con)];
}
return json_encode($user);
} else {
return json_encode(['error' => 'unable to get membrre', 'error_msg' =>$this->messageText['INVALID_PHONE']]);
}
}
}
public function generateEmptyAgentNetworkForAgent($phone, $code_parrain)
{
if ($this->db->isPhoneExistedInCategory($phone)) {
// user is al5eady existed - error response
$response["error"] = 1;
$response["error_msg"] =$this->messageText['ALREADY_PHONE_NUMBER'];
return json_encode($response);
}else{
$user=$this->db->generateNetworkAgent($phone,$code_parrain);
if(isset($user['success'])) {
$validation = $user["validation_code"];
$subject = "Bienvenue sur Ilink";
$phone1 = $user['phone'];
$ct='Agent Géolocalisé';
$message1 =sprintf($this->messageText['MESSAGE_3'],$ct,$phone,$validation);
$this->messenger->setContact($phone1);
$this->messenger->setMessage($message1);
$this->messenger->setSubject($subject);
if ($sms = $this->messenger->sendSms()) {
$user['message'] = $sms;
} else {
return json_encode(['error' => 'imossible d\'envoyer le message']);
};
}
return json_encode($user);
}
}
public function assignNetworkToAgent($agentId, $code_parrain,$phone)
{
$agent = $this->db->getAgentById($agentId);
if ($agent) {
$indicatif=$agent["indicatif"];
if ($this->db->isPhoneExistedInCategory(null,null,$indicatif.$phone)) {
$response["error"] = 1;
$response["error_msg"] =$this->messageText['ALREADY_PHONE_NUMBER'];
return json_encode($response);
} else {
$user = $this->db->generateNetworkAgent($phone, $code_parrain);
if (isset($user['success'])) {
$result = $this->db->assignNetworkAgent($agentId, $user['id']);
if (isset($result['success'])) {
$geoLocated['success'] = 1;
$geoLocated['agent_id'] = $agentId;
$validation = $user["validation_code"];
$subject = "Bienvenue sur Ilink";
$phone1 = $user['phone'];
$message1 = sprintf($this->messageText['MESSAGE_ATTRIBUTE'],$phone1,$validation);
$this->messenger->setContact($phone1);
$this->messenger->setMessage($message1);
$this->messenger->setSubject($subject);
$this->messenger->setMail($agent['email']);
if ($sms = $this->messenger->sendSms()) {
$user['message'] = $sms;
} else {
return json_encode(['error' => 'imossible d\'envoyer le message']);
};
return json_encode($geoLocated);
} else {
return json_encode($result);
}
} else {
return json_encode($user);
}
}
} else {
return json_encode(['error' => mysqli_error($this->db->con)]);
}
}
public function listNetworksGeo()
{
if($this->user_id){
$result= $this->db->getListNetworkOfGeoPoint($this->user_id);
if(!isset($result['error'])){
$networks=['success'=>1,'networks'=>$result];
return $networks;
}else
return $result;
}else{
return ['error'=>'unable to find user_id'];
}
}
public function listFreeNetworksForSuper()
{
if($this->user_id){
$result= $this->db->getListFreeNetworkOfGeoPoint($this->user_id);
if(!isset($result['error'])){
$networks=['success'=>1,'networks'=>$result];
return $networks;
}else
return $result;
}else{
return ['error'=>'unable to find user_id'];
}
}
public function getAgentReceiveDemande()
{
if($this->user_id){
$result= $this->db->getListDemandeReceiveAgent($this->user_id);
if(!isset($result['error'])){
$networks=['success'=>1,'demands'=>$result];
return json_encode($networks);
}else
return json_encode($result);
}else{
return json_encode(['error'=>'unable to find user_id']);
}
}
public function getAgentSendDemande()
{
if($this->user_id){
$result= $this->db->getListDemandeSendAgent($this->user_id);
if(!isset($result['error'])){
$networks=['success'=>1,'demands'=>$result];
return json_encode($networks);
}else
return json_encode($result);
}else{
return json_encode(['error'=>'unable to find user_id']);
} }
public function treatDemand($phone)
{
if($this->user_id){
$result= $this->db->treatDemand($this->user_id);
if(isset($result['success'])){
$this->messenger->setContact($phone);
$this->messenger->setMessage($this->messageText['MESSAGE_TREAT']);
$this->messenger->sendSms();
}
return json_encode($result);
}else{
return json_encode(['error'=>'unable to find user_id']);
}
}
public function getActiveCountries()
{
$mq=mysqli_query($this->db->con,"SELECT DISTINCT ct.id,ct.code_dial,ct.name,ct.code_country FROM countries ct INNER JOIN networks ne ON ne.country_id=ct.id");
if($mq){
while($row=mysqli_fetch_array($mq,MYSQLI_ASSOC)){
$rows[]=$row;
}
return json_encode($rows);
}else{
return ['error'=>mysqli_error($this->db->con)];
}
}
public function getAgentById()
{
return$this->db->getAgentById($this->user_id);
}
public function updatePosition($agentId, $longitude, $latitude)
{
$result=[];
$q = mysqli_query($this->db->con, "UPDATE agents SET longitude='$longitude',latitude='$latitude' WHERE id='$agentId'");
if($q){
return json_encode(['success'=>1]);
}else return json_encode(['error'=>0,'sql'=>mysqli_error($this->db->con)]);
}
public function validateUser($phone)
{
if(isset($phone)){
$res=mysqli_query($this->db->con,"SELECT * from users_simple WHERE phone='$phone'");
if($res){
if(mysqli_num_rows($res)>0){
$user=mysqli_fetch_array($res,MYSQLI_ASSOC);
$userId=$user['id'];
$r = mysqli_query($this->db->con, "UPDATE users SET active = '1' WHERE id = '$userId' ");
if($r) {
$var3["success"] = 1;
$var3["message"] = "User has been validated successfully !";
$res=mysqli_query($this->db->con,"SELECT * from users_simple WHERE phone='$phone'");
$user=mysqli_fetch_array($res,MYSQLI_ASSOC);
$var3['user']=$user;
return $var3;
}else{
return ['error'=>'impossible de recuperer le parrain','error_msg'=>mysqli_error($this->db->con)];
}
}else{
return ['error'=>'invalide code','error_msg'=>"code de validation incorrect"];
}
}else{
return ['error'=>'unable to query info network agent','error_msg'=>mysqli_error($this->db->con)];
}
}
}
}