Merged in darojas/processmaker (pull request #124)
Se agrega la clase FILES MANAGER y sus metodos GET
This commit is contained in:
92
workflow/engine/src/BusinessModel/FilesManager.php
Normal file
92
workflow/engine/src/BusinessModel/FilesManager.php
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
namespace BusinessModel;
|
||||
|
||||
use \G;
|
||||
|
||||
class FilesManager
|
||||
{
|
||||
/**
|
||||
* Return the Process Files Manager
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProcessFilesManager($sProcessUID)
|
||||
{
|
||||
try {
|
||||
$aDirectories[] = array('name' => "templates",
|
||||
'type' => "folder",
|
||||
'path' => PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP,
|
||||
'editable' => false);
|
||||
$aDirectories[] = array('name' => "public",
|
||||
'type' => "folder",
|
||||
'path' => PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP,
|
||||
'editable' => false);
|
||||
return $aDirectories;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the Process Files Manager Path
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sMainDirectory
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProcessFilesManagerPath($sProcessUID, $sMainDirectory)
|
||||
{
|
||||
try {
|
||||
switch ($sMainDirectory) {
|
||||
case 'mailTemplates':
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP;
|
||||
$sEditable = false;
|
||||
break;
|
||||
case 'public':
|
||||
$sDirectory = PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP;
|
||||
$sEditable = true;
|
||||
break;
|
||||
default:
|
||||
die();
|
||||
break;
|
||||
}
|
||||
\G::verifyPath($sDirectory, true);
|
||||
$aTheFiles = array();
|
||||
$aDirectories = array();
|
||||
$aFiles = array();
|
||||
$oDirectory = dir($sDirectory);
|
||||
while ($sObject = $oDirectory->read()) {
|
||||
if (($sObject !== '.') && ($sObject !== '..')) {
|
||||
$sPath = $sDirectory . $sObject;
|
||||
if (is_dir($sPath)) {
|
||||
$aDirectories[] = array('PATH' => ($sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '') . $sObject, 'DIRECTORY' => $sObject );
|
||||
} else {
|
||||
$aAux = pathinfo($sPath);
|
||||
$aAux['extension'] = (isset($aAux['extension'])?$aAux['extension']:'');
|
||||
$aFiles[] = array('FILE' => $sObject, 'EXT' => $aAux['extension'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($aFiles as $aFile) {
|
||||
$aTheFiles[] = array('name' => $aFile['FILE'],
|
||||
'type' => "file",
|
||||
'path' => $sDirectory.$aFile['FILE'],
|
||||
'editable' => $sEditable);
|
||||
}
|
||||
return $aTheFiles;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Services\Api\ProcessMaker\Project;
|
||||
|
||||
use \ProcessMaker\Services\Api;
|
||||
use \Luracast\Restler\RestException;
|
||||
|
||||
/**
|
||||
* Project\ProjectUsers Api Controller
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
class FilesManager extends Api
|
||||
{
|
||||
/**
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $path {@choice templates,folder,}
|
||||
*
|
||||
* @url GET /:prjUid/process-file-manager
|
||||
*/
|
||||
public function doGetProcessFilesManager($prjUid, $path = '')
|
||||
{
|
||||
try {
|
||||
$filesManager = new \BusinessModel\FilesManager();
|
||||
if ($path != '') {
|
||||
if ($path == 'templates') {
|
||||
$path = 'mailTemplates';
|
||||
} else {
|
||||
$path = 'public';
|
||||
}
|
||||
$arrayData = $filesManager->getProcessFilesManagerPath($prjUid, $path);
|
||||
} else {
|
||||
$arrayData = $filesManager->getProcessFilesManager($prjUid);
|
||||
}
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user