<?php

require_once __DIR__.'/../vendor/autoload.php';

$app = new Silex\Application();
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
        'driver'   => 'pdo_mysql',
        'host'     => 'localhost',
        'port'     => 3306,
        'dbname'   => 'symfony',
        'user'     => 'symfony',
        'password' => '8ung3rad',
        'charset'  => 'UTF8',
    ),
));

/**
 * Redirect für die Startseite
 */
$app->get('/', function () use ($app) {
    return $app->redirect('http://www.spielen.de/',301);
});

/**
 * Redirects für die Spieldetailseite
 */
$app->get('/{category}/{game}', function ($game) use ($app) {


    $sql = 'select slug from mt_html5_game left join game on game.id = mt_html5_game.id where partner_type = 1 AND url LIKE ?';

    /** @var \Doctrine\DBAL\Driver\Mysqli\MysqliConnection $db */
    $db =  $app['db'];
    $playUrl = sprintf('https://play.famobi.com/%s/',$game);
    $playUrl .= "%";
    $db->quote($playUrl,\PDO::PARAM_STR);

    $result = $db->fetchAssoc($sql,array($playUrl));
    if($result) {
        return $app->redirect(sprintf('http://www.spielen.de/html5/%s/', $result['slug']),301);
    } else {
        return new \Symfony\Component\HttpFoundation\Response('',404);
    }
});

/**
 * Redirects für Kategorie- und statische Seiten.
 */
$app->get('/{category}', function ($category) use ($app) {
    $categoryMapping = array('imprint' => '/impressum/',
                           'popular' => '/top-onlinespiele/',
                           'winter-games' => '/spiele/Winter/',
                           'skill' => '/spiele/Geschicklichkeit/',
                           'sports' => '/sportspiele/',
                           'match-3' => '/spiele/Blöcke/',
                           'bubble-shooter' => '/spiele/Bubble-Shooter/',
                           'action' => '/actionspiele/',
                           'racing' => '/rennspiele/',
                           'girls' => '/maedchenspiele/',
                           'puzzle' => '/spiele/Puzzle/',
                           'quiz' => '/spiele/Quiz/',
                           'jump-and-run' => '/spiele/Jump%26Run/',
                           'cooking' => '/spiele/Kochen/',
                           'make-up' => '/spiele/Makeup/',
                           'dress-up' => '/spiele/Dressup/',
                           'cards' => '/kartenspiele-brettspiele/',
    );

    if(isset($categoryMapping[$category])) {
        return $app->redirect('http://www.spielen.de'.$categoryMapping[$category],301);
    } else {
        return new \Symfony\Component\HttpFoundation\Response('',404);
    }

});


$app->run();