<?php

require_once 'dibi/dibi.php';

Class DataManager {

    private static function __getConnection() {
        dibi::connect(array(
            'driver' => 'mysql',
            'host' => 'localhost',
            'username' => 'skorvanek13',
            'password' => 'asx123456',
            'database' => 'test',
            'charset' => 'utf8',
        ));
    }

    public static function login($email, $pass) {
        DataManager::__getConnection();
        $res = dibi::query('SELECT user_id, user_email, user_verify_code FROM [user] WHERE user_email = %s', $email, ' AND user_pass = %s', $pass);
        return $res->fetchAll();
    }

    public static function register($pass, $email, $verifyCode) {
        DataManager::__getConnection();
        $arr = array(
            'user_email' => $email,
            'user_pass' => $pass,
            'user_verify_code' => $verifyCode
        );
        dibi::query('INSERT INTO [user]', $arr);
    }

    public static function verify($email, $verifyCode) {
        DataManager::__getConnection();
        $res = dibi::query('SELECT user_verify_code FROM [user] WHERE user_email = %s', $email, ' AND user_verify_code = %s', $verifyCode);
        return $res->fetchAll();
    }

    public static function deleteVerifyCode($email) {
        DataManager::__getConnection();
        $arr = array(
            'user_verify_code' => '',
        );
        $res = dibi::query('UPDATE `user` SET ', $arr, 'WHERE `user_email`=%s', $email);
    }

    public static function search($title, $author, $year, $sort) {
        DataManager::__getConnection();
        if ($title == "")
            $aTitle = '';
        else
            $aTitle = $title;
        if ($author == "")
            $aAuthor = '';
        else
            $aAuthor = $author;
        if ($year == "")
            $aYear = '';
        else
            $aYear = $year;
        
        $res = dibi::query('SELECT * FROM book WHERE book_title LIKE %~like~', $aTitle, ' AND book_author LIKE %~like~', $aAuthor, ' AND book_year LIKE %~like~', $aYear, ' ORDER BY ' , $sort ,'');
        return $res->fetchAll();
    }
    
    public static function searchByCategory($category, $sort) {
        DataManager::__getConnection();
        
        $res = dibi::query('SELECT * FROM book WHERE book_category LIKE %like~' , $category , ' ORDER BY ' , $sort , '');
        return $res->fetchAll();
    }
    
    
    
    public static function searchAll($sort) {
        DataManager::__getConnection();
        
        $res = dibi::query('SELECT * FROM book ORDER BY ' , $sort , '');
        return $res->fetchAll();
    }
    
    
    public static function incrementRating($column, $id){
        DataManager::__getConnection();
        $res = dibi::query('UPDATE book SET ', $column ,' = ' , $column , ' + 1 WHERE book_id = ' , $id , '');
    }
    

}

?>