*/ class ClientFilesManage { CONST BACKUP = 'backup'; CONST FROM_FILE_TO_WHMCS = 'fromFileToWHMCS'; public static function save($filename, $clientId, $type, $createdBy) { if(!$filename && !$clientId) { return; } $clientFile = new ClientFiles(); $clientFile->file = $filename; $clientFile->clientid = $clientId; $clientFile->type = $type; $clientFile->createdby = $createdBy; $clientFile->date = date('Y-m-d H:i:s'); $clientFile->save(); } public static function saveIfNotExists($file, $clientId, $type, $createdBy) { $fileExist = ClientFilesRepository::factory()->byFile($file)->byType($type)->get(); if(!empty($fileExist)) { return false; } self::save($file, $clientId, $type, $createdBy); return true; } public static function getFilesForClient($clientId, $files, $type) { $filesList = ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->get(); $out = []; foreach ($filesList as $file) { if(in_array($file->file, $files)) { $file = ClientFilesManage::getFileNameWithoutClientId($file->file); array_push($out, $file); } } return $out; } private function getBackupsCreatedBy($clientId, $type, $files, $who){ $filesList = ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->byCreatedBy($who)->get(); $out = []; foreach ($filesList as $file) { if(in_array($file->file, $files)) { $file = ClientFilesManage::getFileNameWithoutClientId($file->file); array_push($out, $file); } } return $out; } public static function getManualBackups($clientId, $files, $type) { return ClientFilesManage::getBackupsCreatedBy($clientId, $type, $files, 'client'); } public static function getCronBackups($clientId, $files, $type) { return ClientFilesManage::getBackupsCreatedBy($clientId, $type, $files, 'cron'); } public static function getFileNameWithoutClientId($fileName) { $explodedFileName = explode("_", $fileName); unset($explodedFileName[count($explodedFileName) -1]); return implode("_", $explodedFileName); } public static function getFileForClient($clientId, $files, $type) { return ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->one(); } public static function getClientFiles($clientId, $type) { return ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->get(); } public static function delete($clientId, $file, $type = false) { ClientFilesRepository::factory()->byClientId($clientId)->byFile($file)->delete(); // ClientFilesRepository::factory()->byClientId($clientId)->byFile($file)->byType($type)->delete(); } }