<?php
/**
  * Obudowanie wszystkich funkcji API
  */
namespace EWD\Prezentacja;
	
require_once('init.php');
header('Content-Type: application/json');
$akcje = array('zwrWskazniki', 'zwrDanePWE', 'zwrCSVPWE', 'zwrWykresPWE', 'zwrDaneAdrSzkoly', 'zwrDaneEWD', 'zwrWykresEWD', 'zwrSzkoly', 'zwrWojewodztwa', 'zwrPowiaty', 'zwrGminy', 'zwrDaneDoKalkulatora');
$akcje = array(
	new Parametr\ParametrDok('akcja', 'string', 'Akcja API', true, null, $akcje),
);

$o = null;
try{
	switch(@$_GET['akcja']){
		case 'zwrWskazniki':
			$o = new Wskazniki($PDO);
			break;
		case 'zwrDanePWE': // PWE i porownanie EWD
			$o = new DanePWE($PDO);
			break;
		case 'zwrCSVPWE':
			$o = new DanePWECSV($PDO);
			break;
		case 'zwrWykresPWE':
			$o = new DanePWEWykres($PDO);
			break;
		case 'zwrDaneAdrSzkoly':
			$o = new DaneAdrSzkoly($PDO);
			break;
		case 'zwrDaneEWD':
			$o = new DaneEWD($PDO);
			break;
		case 'zwrWykresEWD':
			$o = new DaneEWDWykres($PDO);
			break;
		case 'zwrSzkoly':
			$o = new Szkoly($PDO);
			break;
		case 'zwrWojewodztwa':
			$o = new Wojewodztwa($PDO);
			break;
		case 'zwrPowiaty':
			$o = new Powiaty($PDO);
			break;
		case 'zwrGminy':
			$o = new Gminy($PDO);
			break;
		case 'zwrPytania':
			$o = new Pytania($PDO);
			break;
		case 'zwrTestHTML':
			$o = new TestHTML($PDO);
			break;
		case 'edytujSzkole':
			$o = new EdytujSzkole();
			break;
		case 'zwrDaneDoKalkulatora':
			$o = new DaneEWDKalkulator();
			break;
		default:
			if(!isset($_GET['pomoc'])){
				throw new \InvalidArgumentException('Niepoprawna wartość parametru akcja');
			}else{
				exit(json_encode($akcje));
			}
	}
	if(!isset($_GET['pomoc'])){
		echo($o->pobierz($_GET));
	}else{
		echo(json_encode($o->zwrPomoc()));
	}
} catch(\Exception $e){
	echo(json_encode(array(
		'blad'  => array(
			'komunikat'	=> $e->getMessage(),
			'kod'		=> $e->getCode(),
			'stos'		=> $e->getTrace(),
		),
		'pomoc' => $o !== null ? $o->zwrPomoc() : $akcje,
	)));
}
