@Override
  public void userStartedBroadcasting(User user, Stream stream) {

    List<User> friends = this.friendshipService.findAllFriendsOfUser(user.getId());
    for (User userToNotify : friends) {
      if (userToNotify == null
          || userToNotify.getAccount() == null
          || !StringUtils.hasText(userToNotify.getAccount().getPushNotificationID())) {
        continue;
      }

      if (ObjectUtils.nullSafeEquals(user, userToNotify)) {
        // do not notify current user
        continue;
      }

      final ParseRequest request = new ParseRequest();
      IOSNotification iosNotification = new IOSNotification(NotificationType.BROADCAST_STARTED);
      iosNotification.setUserId(user.getId());
      iosNotification.setUserName(user.getUserName());
      iosNotification.setAlert(stream.getText());
      iosNotification.setBadge("Increment");
      iosNotification.setCategory("pass_watch");

      final ParseQuery query = new ParseQuery(userToNotify.getAccount().getPushNotificationID());
      request.setWhere(query);
      request.setData(iosNotification);

      try {
        HttpEntity<ParseRequest> requestEntity = new HttpEntity<ParseRequest>(request);
        ParseResponse response =
            this.parseRestTemplate.postForObject(
                PARSE_POST_PUSH_URL, requestEntity, ParseResponse.class);
        if (response.getError() != null) {
          System.out.println("PARSE PUSH NOTIFICATIOn ERROR: " + response.getError());
        }
      } catch (Exception e) {
        log.error("Error while sending notification to Parse for iOS clients", e);
      }
    }
  }