UserGroupObserver.php 704 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Observers;
  3. use App\Jobs\VNet\reloadNode;
  4. use App\Models\Node;
  5. use App\Models\UserGroup;
  6. use Arr;
  7. class UserGroupObserver {
  8. public function created(UserGroup $userGroup): void {
  9. $nodes = Node::whereType(4)->whereIn('id', $userGroup->nodes)->get();
  10. if($nodes){
  11. reloadNode::dispatchNow($nodes);
  12. }
  13. }
  14. public function updated(UserGroup $userGroup): void {
  15. $changes = $userGroup->getChanges();
  16. if(Arr::exists($changes, 'nodes')){
  17. $nodes = Node::whereType(4)
  18. ->whereIn('id',
  19. array_diff($userGroup->nodes, $userGroup->getOriginal('nodes')?: []))
  20. ->get();
  21. if($nodes){
  22. reloadNode::dispatchNow($nodes);
  23. }
  24. }
  25. }
  26. }