/**
  * @throws \Exception
  * @return CommandResponse
  */
 public function execute()
 {
     $typeId = $this->_resourceType . '_id';
     $existing = Follower::where($typeId, '=', $this->_resourceId)->whereUserId(Auth::user()->id)->first();
     $isFollowed = false;
     if ($existing) {
         $existing->delete();
     } else {
         $follow = new Follower();
         $follow->{$typeId} = $this->_resourceId;
         $follow->user_id = Auth::user()->id;
         $follow->created_at = time();
         $follow->save();
         $isFollowed = true;
     }
     $resourceUser = ResourceUser::get(Auth::user()->id, $this->_resourceType, $this->_resourceId);
     $resourceUser->is_followed = $isFollowed;
     $resourceUser->save();
     return CommandResponse::succeed(['is_followed' => $isFollowed]);
 }