ResetTrait.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Console\Commands\Utils;
  3. use Illuminate\Support\Facades\DB;
  4. use Illuminate\Support\Facades\Storage;
  5. trait ResetTrait
  6. {
  7. /**
  8. * Reset icons
  9. */
  10. protected function resetIcons() : void
  11. {
  12. $this->deleteIcons();
  13. $this->generateIcons();
  14. }
  15. /**
  16. * Delete all icons
  17. */
  18. protected function deleteIcons() : void
  19. {
  20. $filesForDelete = \Illuminate\Support\Facades\File::glob('public/icons/*.png');
  21. Storage::delete($filesForDelete);
  22. $this->line('Existing icons deleted');
  23. }
  24. /**
  25. * Generate icons for seeded accounts
  26. */
  27. protected function generateIcons() : void
  28. {
  29. IconGenerator::generateIcon('amazon', IconGenerator::AMAZON);
  30. IconGenerator::generateIcon('apple', IconGenerator::APPLE);
  31. IconGenerator::generateIcon('dropbox', IconGenerator::DROPBOX);
  32. IconGenerator::generateIcon('facebook', IconGenerator::FACEBOOK);
  33. IconGenerator::generateIcon('github', IconGenerator::GITHUB);
  34. IconGenerator::generateIcon('google', IconGenerator::GOOGLE);
  35. IconGenerator::generateIcon('instagram', IconGenerator::INSTAGRAM);
  36. IconGenerator::generateIcon('linkedin', IconGenerator::LINKEDIN);
  37. IconGenerator::generateIcon('twitter', IconGenerator::TWITTER);
  38. $this->line('Icons regenerated');
  39. }
  40. /**
  41. * Reset DB
  42. */
  43. protected function resetDB(string $seeder) : void
  44. {
  45. $this->flushDB();
  46. $this->seedDB($seeder);
  47. }
  48. /**
  49. * Delete all DB tables
  50. */
  51. protected function flushDB() : void
  52. {
  53. // Reset the db
  54. DB::table(config('auth.passwords.users.table'))->delete();
  55. DB::table('oauth_access_tokens')->delete();
  56. DB::table('oauth_personal_access_clients')->delete();
  57. DB::table('oauth_refresh_tokens')->delete();
  58. DB::table('webauthn_credentials')->delete();
  59. DB::table(config('auth.passwords.webauthn.table'))->delete();
  60. DB::table('twofaccounts')->delete();
  61. DB::table('groups')->delete();
  62. DB::table('users')->delete();
  63. DB::table('options')->delete();
  64. DB::table('auth_logs')->delete();
  65. $this->line('Database cleaned');
  66. }
  67. /**
  68. * Seed the DB
  69. */
  70. protected function seedDB(string $seeder) : void
  71. {
  72. $this->callSilent('db:seed', [
  73. '--class' => $seeder,
  74. '--no-interaction' => 1
  75. ]);
  76. $this->line('Database seeded');
  77. }
  78. }