func parseTournamentURL()

in FBSDKGamingServicesKit/FBSDKGamingServicesKit/Internal/ShareTournamentDialog.swift [149:178]


  func parseTournamentURL(url: URL) -> Bool {
    let components = URLComponents(url: url, resolvingAgainstBaseURL: true)
    guard let queryItems = components?.queryItems else {
      delegate?.didCancel(dialog: self)
      return false
    }
    let tournamentIDQueryItem = queryItems.filter { item in
      item.name.elementsEqual("tournament_id")
    }
    let errorMessageQueryItem = queryItems.filter { item in
      item.name.elementsEqual("error_message")
    }
    if errorMessageQueryItem.count == 1, let errorMessage = errorMessageQueryItem.first?.value {
      delegate?.didFail(withError: ShareTournamentDialogError.errorMessage(errorMessage), dialog: self)
    }
    guard
      tournamentIDQueryItem.count == 1,
      let tournamentID = tournamentIDQueryItem.first?.value
    else {
      return false
    }
    if let currentConfig = currentConfig {
      let createdTournament = Tournament(identifier: tournamentID, config: currentConfig)
      delegate?.didComplete(dialog: self, tournament: createdTournament)
    }
    if let tournamentToUpdate = tournamentToUpdate, tournamentToUpdate.identifier == tournamentID {
      delegate?.didComplete(dialog: self, tournament: tournamentToUpdate)
    }
    return false
  }