171 lines
5.2 KiB
PHP
171 lines
5.2 KiB
PHP
<?php
|
|
|
|
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
|
|
error_reporting(E_ALL | E_STRICT);
|
|
ini_set('display_errors', 1);
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/engine/classes/Unisender/autoload.php");
|
|
use Unisender\ApiWrapper\UnisenderApi;
|
|
|
|
$data = json_decode(file_get_contents("php://input"));
|
|
|
|
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
|
|
|
$sql = "SET NAMES 'utf8'";
|
|
|
|
$pdo->query($sql);
|
|
|
|
$request = $data->request;
|
|
|
|
|
|
/**
|
|
* Сохранение api ключа
|
|
*
|
|
*/
|
|
if($request == 'save_key'){
|
|
$key = $data->api_key;
|
|
|
|
$agency_id = (int)$data->agency_id;
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$unisender->save_key($key);
|
|
$uni=new UnisenderApi($key);
|
|
$result = json_decode($uni->getLists());
|
|
//var_dump($result);
|
|
if(isset($result->result)) echo 'true';
|
|
else echo 'false';
|
|
|
|
}
|
|
|
|
/**
|
|
* Получение ключа
|
|
*/
|
|
if($request == 'get_key'){
|
|
$agency_id = (int)$data->agency_id;
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$key = $unisender->get_key();
|
|
|
|
echo $key;
|
|
|
|
}
|
|
|
|
/**
|
|
* fff
|
|
*/
|
|
if($request == 'open_campaigns'){
|
|
|
|
$agency_id = (int)$data->agency_id;
|
|
$all = $data->all;
|
|
$clients_ids = $data->clients_ids;
|
|
$type = $data->type;
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$result = $unisender->get_list_client($type, $all, $clients_ids);
|
|
echo json_encode($result, JSON_UNESCAPED_UNICODE);
|
|
exit();
|
|
}
|
|
|
|
if($request == 'create_api_list'){
|
|
$agency_id = $data->agency_id;
|
|
$title = $data->title_list;
|
|
$clients = $data->clients;
|
|
$fields_name = ['email', 'phone','email_status', 'email_list_ids'];
|
|
$fields = array();
|
|
$field = array();
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$key = $unisender->get_key();
|
|
$uni=new UnisenderApi($key);
|
|
$list = json_decode($uni->createList(Array("title"=>$title)));
|
|
foreach($clients as $i => $client){
|
|
$fields[$i][] = $client->email;
|
|
$fields[$i][] = $client->phone;
|
|
$fields[$i][] = 'active';
|
|
$fields[$i][] = $list->result->id;
|
|
|
|
// $field[$i]['email'] = $client->email;
|
|
|
|
// $fields['name'] = $clients->fio;
|
|
|
|
|
|
}
|
|
$result = json_decode($uni->importContacts(Array("field_names"=>$fields_name, "data"=>$fields)));
|
|
|
|
|
|
|
|
$uni=new UnisenderApi($key);
|
|
|
|
//$result = json_decode('{"result": {"id": 3}}');
|
|
echo json_encode($list, JSON_UNESCAPED_UNICODE);
|
|
exit();
|
|
}
|
|
|
|
if($request == 'get_api_templates'){
|
|
$result = array();
|
|
$agency_id = (int)$data->agency_id;
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$key = $unisender->get_key();
|
|
$uni=new UnisenderApi($key);
|
|
$res = $uni->getTemplates();
|
|
$templats = json_decode($res, true);
|
|
|
|
if(isset($templats['result'])){
|
|
foreach($templats['result'] as $template){
|
|
//var_dump($template);
|
|
$result['templats'][] = array('code'=>$template['id'], 'name'=>$template['title']);
|
|
$result['templats_api'][$template['id']] = $template;
|
|
}
|
|
}
|
|
echo json_encode($result, JSON_UNESCAPED_UNICODE);
|
|
exit();
|
|
|
|
}
|
|
|
|
if($request == 'save_campaign'){
|
|
$agency_id = (int)$data->agency_id;
|
|
$list_id = $data->list_id;
|
|
$subject = $data->subject;
|
|
$template_id = $data->template_id;
|
|
$sender_email = $data->sender_email;
|
|
$sender_name = $data->sender_name;
|
|
$clients = $data->clients;
|
|
$user_id = (int)$data->user_id;
|
|
|
|
$unisender = new UnisenderClass($pdo, $agency_id);
|
|
$key = $unisender->get_key();
|
|
$uni=new UnisenderApi($key);
|
|
$message = json_decode($uni->createEmailMessage(Array("sender_name"=>$sender_name,
|
|
'sender_email'=>$sender_email,
|
|
'list_id'=>$list_id,
|
|
'subject'=>$subject,
|
|
'template_id'=>$template_id
|
|
)));
|
|
// var_dump($message);
|
|
if(isset($message->error)){
|
|
$result['error'] = 1;
|
|
$result['mes'] = $message->error;
|
|
} else {
|
|
|
|
$message_id = $message->result->message_id;
|
|
$result = json_decode($uni->createCampaign(Array('message_id'=>$message_id)));
|
|
if(isset($result->result->campaign_id)){
|
|
$comment="Сделана рассылка «".$subject."»";
|
|
$sql_event = "INSERT INTO user_client_events (client_id, type, comment, from_id, user_id, calendar_view, campaign_id) VALUES ";
|
|
$sql_event_part = '';
|
|
foreach($clients as $client){
|
|
$who_work = $user_id;
|
|
if($client->who_work > 0){
|
|
$who_work = (int)$client->who_work;
|
|
}
|
|
if($sql_event_part != '') $sql_event_part .= ',';
|
|
$sql_event_part .= "({$client->id}, 'comment', '{$comment}', {$user_id}, {$who_work}, 1, {$result->result->campaign_id})";
|
|
}
|
|
if($sql_event_part != '') {
|
|
$sql_event .= $sql_event_part;
|
|
$pdo->query($sql_event);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo json_encode($result);
|
|
exit();
|
|
}
|