. */ namespace SP\Mgmt\Files; use SP\Core\Exceptions\SPException; use SP\DataModel\FileData; use SP\Storage\DbWrapper; use SP\Storage\QueryData; /** * Class FileUtil * * @package SP\Mgmt\Files */ class FileUtil { /** * @var array */ public static $imageExtensions = ['JPG', 'PNG', 'GIF']; /** * Obtener el listado de archivos de una cuenta. * * @param int $accountId Con el Id de la cuenta * @return FileData[]|array Con los archivos de la cuenta. */ public static function getAccountFiles($accountId) { $query = 'SELECT id, name, size, thumb, type FROM accFiles WHERE accountId = ?'; $Data = new QueryData(); $Data->setMapClassName(FileData::class); $Data->setQuery($query); $Data->addParam($accountId); return DbWrapper::getResultsArray($Data); } /** * Obtener el número de archivo de una cuenta. * * @param int $accountId con el Id de la cuenta * @return int con el número de archivos * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException */ public static function countAccountFiles($accountId) { $query = 'SELECT id FROM accFiles WHERE accountId = ?'; $Data = new QueryData(); $Data->setQuery($query); $Data->addParam($accountId); DbWrapper::getQuery($Data); return $Data->getQueryNumRows(); } /** * Elimina los archivos de una cuenta en la BBDD. * * @param int $accountId con el Id de la cuenta * @throws SPException */ public static function deleteAccountFiles($accountId) { $query = 'DELETE FROM accFiles WHERE accountId = ?'; $Data = new QueryData(); $Data->setQuery($query); $Data->addParam($accountId); $Data->setOnErrorMessage(__('Error al eliminar archivos asociados a la cuenta', false)); DbWrapper::getQuery($Data); } /** * @param FileData $FileData * @return bool */ public static function isImage(FileData $FileData) { return in_array(mb_strtoupper($FileData->getExtension()), self::$imageExtensions, true); } }