<?php

require 'Slim/Slim.php';

$app = new Slim();

// KORINICI
$app->get('/uzmi-sreca/', 'uzmiSreca');
$app->get('/uzmi-sreca-2016/', 'uzmiSreca2016');
$app->get('/uzmi-sreca-p/', 'uzmiSrecaP');
$app->get('/uzmi-sreca-p1/', 'uzmiSrecaP1');
$app->get('/uzmi-sreca-zaposlenost/', 'uzmiSrecaZaposlenost');
$app->get('/uzmi-sreca-ne-zaposlenost/', 'uzmiSrecaNeZaposlenost');
$app->get('/uzmi-sreca-danima/', 'uzmiSrecaD');
$app->get('/uzmi-sreca-danima1/', 'uzmiSrecaD1');
$app->post('/sreca-dodaj/', 'dodajSreca');


$app->run();

// KORISNICI ///////////////////////////////////////////////////////////////////////////////////
function uzmiSreca() {
	$sql = "SELECT COUNT(*) as broj, AVG(opcija) as opcija, AVG(opcija1) as opcija1, AVG(opcija2) as opcija2, AVG(opcija3) as opcija3 FROM sreca WHERE vrijeme < '2015-12-08'";
	try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_OBJ);
		$db = null;
		echo json_encode($rezultat);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSreca2016() {
	$sql = "SELECT COUNT(*) as broj, AVG(opcija) as opcija, AVG(opcija1) as opcija1, AVG(opcija2) as opcija2, AVG(opcija3) as opcija3 FROM sreca WHERE vrijeme > '2015-12-08'";
	try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_OBJ);
		$db = null;
		echo json_encode($rezultat);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSrecaP() {
	$sql = "SELECT TRUNCATE(AVG(opcija),2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca  WHERE vrijeme < '2015-12-08' GROUP BY pol";
try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSrecaP1() {
	$sql = "SELECT TRUNCATE(AVG(opcija),2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija4),2) as opcija4, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca  WHERE vrijeme > '2015-12-08' GROUP BY pol";
try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSrecaZaposlenost() {
	$sql = "SELECT TRUNCATE(AVG(opcija),2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija4),2) as opcija4, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca WHERE vrijeme > '2015-12-08' AND zaposlenje = '1' GROUP BY pol";
try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSrecaNeZaposlenost() {
	$sql = "SELECT TRUNCATE(AVG(opcija),2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija4),2) as opcija4, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca  WHERE vrijeme > '2015-12-08' AND zaposlenje = '2' GROUP BY pol";
try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}


function uzmiSrecaD() {
	$sql = "SELECT TRUNCATE(AVG(opcija), 2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca WHERE vrijeme < '2015-12-08' group by DAYNAME(vrijeme) ORDER BY DAYNAME(vrijeme)";
	try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

function uzmiSrecaD1() {
	$sql = "SELECT TRUNCATE(AVG(opcija), 2) as opcija, TRUNCATE(AVG(opcija1),2) as opcija1, TRUNCATE(AVG(opcija2),2) as opcija2, TRUNCATE(AVG(opcija3),2) as opcija3 FROM sreca WHERE vrijeme > '2015-12-08' group by DAYNAME(vrijeme) ORDER BY DAYNAME(vrijeme)";
try {
		$db = getConnection();
		$stmt = $db->query($sql);  
		$rezultat = $stmt->fetchAll(PDO::FETCH_NUM);
		$db = null;
		echo json_encode($rezultat, JSON_NUMERIC_CHECK);
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}

// dodaj sjednicu
function dodajSreca() {
	$request = Slim::getInstance()->request();
	$user = json_decode($request->getBody());
	$sql = "INSERT INTO sreca (pol, zaposlenje, opcija, opcija1, opcija2, opcija3, opcija4) VALUES (:pol, :zaposlenje, :opcija, :opcija1, :opcija2, :opcija3, :opcija4)";
	try {
		$db = getConnection();
		$stmt = $db->prepare($sql); 		
		$stmt->bindParam("pol", $user->pol);
		$stmt->bindParam("zaposlenje", $user->zaposlenje);
		$stmt->bindParam("opcija", $user->sreca);
		$stmt->bindParam("opcija1", $user->sreca1);
		$stmt->bindParam("opcija2", $user->sreca2);
		$stmt->bindParam("opcija3", $user->sreca3);
		$stmt->bindParam("opcija4", $user->sreca4);
		$stmt->execute();				
		$user->id = $db->lastInsertId();
		$db = null;				
		// kada se sacuva da pravi json sa poslednjim ID 
		echo json_encode($user = array($user));
	} catch(PDOException $e) {
		echo '{"error":{"text":'. $e->getMessage() .'}}'; 
	}
}



function getConnection() {
	$dbhost="97.74.31.132";
	$dbuser="skupstinax3";
	$dbpass="SkuP!8na";
	$dbname="skupstinax3";
	$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);	
	$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	return $dbh;
}

?>