Duffer Derek
<?php
namespace App\Repository\Copy;
use App\Repository\General\Async;
use App\Repository\General\PodioConfig;
use App\Repository\General\DB;
use App\Repository\General\Log;
use App\Repository\Transfer\TransferRepo;
use App\Repository\Utils\CustomPodioAPI;
use App\Repository\Utils\PodioAuthRepo;
use App\Repository\Utils\TestRepo;
use Monolog\Handler\Curl\Util;
use PDO;
use Podio;
use PodioApp;
use PodioAppField;
use PodioFile;
use PodioSpaceMember;
use PodioUser;
use PodioUserStatus;
/**
* Created by PhpStorm.
* User: jis
* Date: 29/3/17
* Time: 12:17 PM
*/
class CopyRepo
{
private $customPodioAPI;
/**
* WorkSpaceRepo constructor.
*/
public function __construct()
{
$this->customPodioAPI = new CustomPodioAPI();
}
public function copyAsyncProcess($type, $param)
{
Log::log("copyAsyncProcess " . $type, $param);
echo "<pre>";
switch ($type) {
case 'test-auth':
$repo = new PodioAuthRepo();
if ($repo->authenticateSF(2)) {
echo "Here";
} else {
echo "FAILED";
}
exit;
break;
case "start-transfer":
$this->startTransferProcess($param);
break;
case "process-first-space":
if (isset($param['identifier'])) {
$repo = new WorkSpaceCopyRepo();
$repo->processFirstSpace($param['identifier']);
} else {
Log::log("asyncProcess identifier is missing " . $type, $param, "warning");
}
break;
case "process-first-app-in-the-space":
if (isset($param['identifier']) && isset($param['space'])) {
$repo = new AppCopyRepo();
$repo->processFirstAppInTheSpace($param['identifier'], $param['space']);
} else {
Log::log("asyncProcess identifier is missing " . $type, $param, "warning");
}
break;
case "save-items-comments-files-tasks":
// if (isset($param['identifier']) && isset($param['app'])) {
if (isset($param['identifier'])) {
$repo = new ItemCopyRepo();
// $repo->saveItemsCommentsFilesTasks($param['identifier'], $param['app']);
$repo->saveItemsCommentsFilesTasks($param['identifier']);
} else {
Log::log("asyncProcess identifier is missing " . $type, $param, "warning");
}
break;
case "save-missing-items-comments-files-tasks":
if (isset($param['identifier'])) {
$repo = new ItemCopyRepo();
// $repo->saveItemsCommentsFilesTasks($param['identifier'], $param['appId']);
$repo->saveItemsCommentsFilesTasks($param['identifier']);
} else {
Log::log("asyncProcess identifier is missing " . $type, $param, "warning");
}
break;
case "save-first-space-app-tasks":
if (isset($param['identifier'])) {
$repo = new TasksCopyRepo();
$repo->saveSpaceAppTasks($param['identifier']);
}
break;
case "save-stream-status":
if (isset($param['identifier'])) {
$repo = new StreamCopyRepo();
$repo->saveSpaceStreamStatusMessages($param['identifier']);
}
break;
case "save-tasks-files-comments":
if (isset($param['identifier'])) {
$repo = new TasksCopyRepo();
$repo->saveTasksCommentsAndFiles($param['identifier']);
}
break;
case "copy-space-files":
if (isset($param['identifier'])) {
$repo = new WorkSpaceCopyRepo();
$repo->copySpaceFiles($param['identifier']);
}
break;
//FINISHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
case "save-app-item-id":
if (isset($param['identifier'])) {
$repo = new AppCopyRepo();
$repo->saveAppItemId($param['identifier']);
}
break;
case "delta-copy-items":
if (isset($param['identifier'])) {
$repo = new AppCopyRepo();
$repo->deltaCopy($param['identifier']);
}
break;
case "delta-save-tasks-files-comments":
if (isset($param['identifier'])) {
$repo = new ItemCopyRepo();
$repo->saveItemsCommentsFilesTasksDelta($param['identifier']);
}
break;
case "save-comments":
$repo = new ItemCopyRepo();
$repo->saveItemComments();
break;
case "replace-comments":
$repo = new ItemCopyRepo();
$repo->ReplaceItemCommentsToOne();
break;
case "save-archived-apps":
if (isset($param['identifier'])) {
$repo = new WorkSpaceCopyRepo();
$repo->saveArchivedApps($param['identifier']);
}
break;
case "process-first-app":
if (isset($param['identifier'])) {
$repo = new AppCopyRepo();
$repo->processFirstApp($param['identifier']);
}
break;
case "copy-contact-app":
if (isset($param['identifier'])) {
$repo = new WorkSpaceCopyRepo();
$repo->saveContactApp($param['identifier']);
}
break;
case "save-contacts":
if (isset($param['identifier'])) {
$repo = new PodioAuthRepo();
if ($repo->authenticate(43)) {
$repo = new WorkSpaceCopyRepo();
$sql = "select * from `work_spaces`";
$STH = DB::prepare($sql);
$STH->execute();
$result = $STH->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $space) {
$repo->saveSpaceContacts($space['src_space_id']);
}
} else {
Log::log("asyncProcess identifier is missing " . $type, $param, "warning");
}
}
break;
case "db-edit":
$this->editDB();
break;
case "db-save":
$repo = new FileCopyRepo();
$repo->saveToDB(1);
break;
}
}
private function editDB()
{
$repo = new PodioAuthRepo();
if ($repo->authenticate(9)) {
$sql = "select src_task_id from tasks";
$STH = DB::prepare($sql);
$STH->execute();
$result = $STH->fetchAll(PDO::FETCH_ASSOC);
$test = array();
if ($result && count($result) > 0) {
foreach ($result as $task) {
$taskId = $task['src_task_id'];
$task = Podio::get("/task/$taskId")->json_body();
if (isset($task['status']) && $task['status'] == "completed") {
// print_r($task);
$parameters = array(
"completed_by_user" => $task['completed_by']['user_id'],
"completed_by_name" => $task['completed_by']['name'],
"completed_on" => $task['completed_on'],
"src_task_id" => $taskId,
);
// print_r($parameters);
array_push($test, $task['task_id']);
$sql3 = "UPDATE tasks SET completed_by_user=:completed_by_user,completed_by_name=:completed_by_name,completed_on=:completed_on WHERE src_task_id=:src_task_id";
$STH3 = DB::prepare($sql3);
$STH3->execute($parameters);
}
}
echo 'Total completed tasks : ' . count($test) . '<br>';
echo '<pre>';
print_r($test);
// exit;
}
} else {
echo "fail";
}
}
private
function startTransferProcess($param)
{
Log::log("TransferProcess started ", $param, "info");
try {
if (isset($param['user'])) {
$repo = new TransferRepo();
if (!$repo->isProcessRunning($param['user'])) {
$userID = $param['user']; //$userID = 4560696;
//WS Id's array
$WSArray = array(7740345, 6617918, 1786246, 6306307);
$id = $this->saveProcess($userID, json_encode($WSArray), 1);
$repo = new WorkSpaceCopyRepo();
$repo->saveAllSpaces($WSArray, $id);
exit;
//copyAsync in TransferController
Async::callAsync("copy-async/process-first-space?identifier=" . $id);
}
}
} catch (\Exception $e) {
Log::logError($e . "", null, "startTransferProcess");
}
}
private
function saveProcess($user, $spaces, $key)
{
$sql = "INSERT INTO `transfer_process` (`user`,`start_time`,`spaces`,`key`) VALUES(:user,:start_time,:spaces,:key )";
$STH = DB::prepare($sql);
$STH->execute(array(
'user' => $user,
"start_time" => time(),
"spaces" => $spaces,
'key' => $key
));
return 1;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists