<?php
if (PHP_SAPI == 'cli-server') {
    // To help the built-in PHP dev server, check if the request was actually for
    // something which should probably be served as a static file
    $url  = parse_url($_SERVER['REQUEST_URI']);
    $file = __DIR__ . $url['path'];
    if (is_file($file)) {
        return false;
    }
}

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

session_start();

function getServerType()
{
    $serverType = 'local';
    $hostfullname = $_SERVER["HTTP_HOST"];
    $hostarray = explode(':', $hostfullname);
    $hostname = $hostarray[0]; //PORT를 제외하고 호스트명만 체크
    
    switch($hostname) {
        case "localhost":
            $serverType = 'local';
            break;
        // case "20.196.210.51":    //azure
        case "111.119.240.10":    //huawei
            $serverType = 'dev';
            break;
        // case "20.200.212.7": //azure
        case "119.13.77.133":    //huawei
            $serverType = 'stage';
            break;
        // case "20.239.156.156":  //azure
        case "189.1.244.155":    //huawei
        case "172.16.2.31":    //huawei
        case "innoms.onbuff.com":
            $serverType = 'live';
            break;
        default:
            break;
    }
    return $serverType;
}

$serverType = getServerType();

// Instantiate the app
$defaultSettings = require __DIR__ . '/../src/settings.php';                 // default Settings
$serverSettings = require __DIR__ . '/../src/settings_'.$serverType.'.php';  // additional Settings
$settings = [];
$settingKeys = ['constants', 'settings'];
foreach($settingKeys as $key) {
    $settings[$key] = array_merge($defaultSettings[$key] ?? [], $serverSettings[$key] ?? []);
}

$app = new \Slim\App($settings);

// Set up dependencies
if(file_exists(__DIR__ . '/../src/dependencies.php')){
    $dependencies = require __DIR__ . '/../src/dependencies.php';
    $dependencies($app);
}else{
    die('file not found dependencies');
}

// Register middleware
$middleware = require __DIR__ . '/../src/middleware.php';
$middleware($app);

// Register routes
$routes = require __DIR__ . '/../src/routes.php';
$routes($app);

// Run app
$app->run();
