ClientFilesManage.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace MGModule\DNSManager2\helpers\custom;
  3. use MGModule\DNSManager2\models\custom\clientfiles\ClientFiles;
  4. use MGModule\DNSManager2\models\custom\clientfiles\Repository as ClientFilesRepository;
  5. /**
  6. * Class ClientFiles
  7. *
  8. * @author Artur Pilch <artur.pi@modulesgarden.com>
  9. */
  10. class ClientFilesManage
  11. {
  12. CONST BACKUP = 'backup';
  13. CONST FROM_FILE_TO_WHMCS = 'fromFileToWHMCS';
  14. public static function save($filename, $clientId, $type, $createdBy)
  15. {
  16. if(!$filename && !$clientId)
  17. {
  18. return;
  19. }
  20. $clientFile = new ClientFiles();
  21. $clientFile->file = $filename;
  22. $clientFile->clientid = $clientId;
  23. $clientFile->type = $type;
  24. $clientFile->createdby = $createdBy;
  25. $clientFile->date = date('Y-m-d H:i:s');
  26. $clientFile->save();
  27. }
  28. public static function saveIfNotExists($file, $clientId, $type, $createdBy)
  29. {
  30. $fileExist = ClientFilesRepository::factory()->byFile($file)->byType($type)->get();
  31. if(!empty($fileExist))
  32. {
  33. return false;
  34. }
  35. self::save($file, $clientId, $type, $createdBy);
  36. return true;
  37. }
  38. public static function getFilesForClient($clientId, $files, $type)
  39. {
  40. $filesList = ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->get();
  41. $out = [];
  42. foreach ($filesList as $file)
  43. {
  44. if(in_array($file->file, $files))
  45. {
  46. $file = ClientFilesManage::getFileNameWithoutClientId($file->file);
  47. array_push($out, $file);
  48. }
  49. }
  50. return $out;
  51. }
  52. private function getBackupsCreatedBy($clientId, $type, $files, $who){
  53. $filesList = ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->byCreatedBy($who)->get();
  54. $out = [];
  55. foreach ($filesList as $file)
  56. {
  57. if(in_array($file->file, $files))
  58. {
  59. $file = ClientFilesManage::getFileNameWithoutClientId($file->file);
  60. array_push($out, $file);
  61. }
  62. }
  63. return $out;
  64. }
  65. public static function getManualBackups($clientId, $files, $type)
  66. {
  67. return ClientFilesManage::getBackupsCreatedBy($clientId, $type, $files, 'client');
  68. }
  69. public static function getCronBackups($clientId, $files, $type)
  70. {
  71. return ClientFilesManage::getBackupsCreatedBy($clientId, $type, $files, 'cron');
  72. }
  73. public static function getFileNameWithoutClientId($fileName)
  74. {
  75. $explodedFileName = explode("_", $fileName);
  76. unset($explodedFileName[count($explodedFileName) -1]);
  77. return implode("_", $explodedFileName);
  78. }
  79. public static function getFileForClient($clientId, $files, $type)
  80. {
  81. return ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->one();
  82. }
  83. public static function getClientFiles($clientId, $type)
  84. {
  85. return ClientFilesRepository::factory()->byClientId($clientId)->byType($type)->get();
  86. }
  87. public static function delete($clientId, $file, $type = false)
  88. {
  89. ClientFilesRepository::factory()->byClientId($clientId)->byFile($file)->delete();
  90. // ClientFilesRepository::factory()->byClientId($clientId)->byFile($file)->byType($type)->delete();
  91. }
  92. }