Fibinger Ádám
2019-11-10 cb9ca2b735b9fedc479799e88ddb731251b35b08
EOG/Models/TeamList.php
@@ -6,65 +6,72 @@
class TeamList
{
    /**
     * @var string[] Csapatok listája (előtöltve)
     */
    protected $teams = [];
   /**
    * @var string[] Csapatok listája (előtöltve)
    */
   protected $teams = [];
    private $requiredRawFields = ['name', 'seed', 'status'];
   private $requiredRawFields = ['name', 'seed', 'status'];
    public function fromJson(string $jsonString)
    {
        $rawData = json_decode($jsonString, true);
   public function fromJson(string $jsonString) : int
   {
      $rawData = json_decode($jsonString, true);
        if ($rawData === null) return false;
      if ($rawData === null)
      {
         throw new \InvalidArgumentException("Could not decode JSON");
      }
        if (!is_array($rawData)) {
            return false;
        }
      if (!is_array($rawData))
      {
         throw new \InvalidArgumentException("Data is not array");
      }
        $this->teams = [];
      $this->teams = [];
        foreach ($rawData as $key => $team) {
            $rawKeys = array_keys($team);
            if (count(array_intersect($rawKeys, $this->requiredRawFields)) != 3) {
                continue;
            }
      foreach ($rawData as $key => $team)
      {
         $rawKeys = array_keys($team);
         if (count(array_intersect($rawKeys, $this->requiredRawFields)) != 3)
         {
            continue;
         }
            if ($team['status'] == 'checkedIn') {
                $this->teams[] = $team;
            }
        }
         if ($team['status'] == 'checkedIn')
         {
            $this->teams[] = $team;
         }
      }
        return (bool)count($this->teams);
    }
      return (bool)count($this->teams);
   }
    public function getTeamNames()
    {
        return array_column($this->teams, 'name');
    }
   public function getTeamNames()
   {
      return array_column($this->teams, 'name');
   }
    /**
     * @return string[]
     */
    public function getTeams(): array
    {
        return $this->teams;
    }
   /**
    * @return string[]
    */
   public function getTeams(): array
   {
      return $this->teams;
   }
    /**
     * @param string[] $teams
     * @return TeamList
     */
    public function setTeams(array $teams): TeamList
    {
        $this->teams = $teams;
   /**
    * @param string[] $teams
    * @return TeamList
    */
   public function setTeams(array $teams): TeamList
   {
      $this->teams = $teams;
        return $this;
    }
      return $this;
   }
    public function getJson()
    {
        return json_encode($this->teams);
    }
   public function getJson()
   {
      return json_encode($this->teams);
   }
}