UserGroupObserver.php 687 B

1234567891011121314151617181920212223242526272829
  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', array_diff($userGroup->nodes, $userGroup->getOriginal('nodes')?: []))
  19. ->get();
  20. if($nodes){
  21. reloadNode::dispatchNow($nodes);
  22. }
  23. }
  24. }
  25. }