<?php

namespace Lychee\Modules;

final class Config {

	/**
	 * Creates the configuration file.
	 * @return true|string Returns true when successful.
	 *                     Warning: Connection failed!
	 *                     Warning: Creation failed!
	 *                     Warning: Could not create file!
	 */
	public static function create($host, $user, $password, $name = 'lychee', $prefix = '') {

		// Open a new connection to the MySQL server
		$connection = Database::connect($host, $user, $password);

		// Check if the connection was successful
		if ($connection===false) return 'Warning: Connection failed!';

		// Check if user can create the database before saving the configuration
		if (Database::createDatabase($connection, $name)===false) return 'Warning: Creation failed!';

		// Escape data
		$host     = mysqli_real_escape_string($connection, $host);
		$user     = mysqli_real_escape_string($connection, $user);
		$password = mysqli_real_escape_string($connection, $password);
		$name     = mysqli_real_escape_string($connection, $name);
		$prefix   = mysqli_real_escape_string($connection, $prefix);

		// Save config.php
$config = "<?php

// Database configuration
\$dbHost = '$host'; // Host of the database
\$dbUser = '$user'; // Username of the database
\$dbPassword = '$password'; // Password of the database
\$dbName = '$name'; // Database name
\$dbTablePrefix = '$prefix'; // Table prefix

?>";

		// Save file
		if (file_put_contents(LYCHEE_CONFIG_FILE, $config)===false) return 'Warning: Could not create file!';

		return true;

	}

	/**
	 * @return boolean Returns true when the config exists.
	 */
	public static function exists() {

		return file_exists(LYCHEE_CONFIG_FILE);

	}

	/**
	 * @return array Returns the config.
	 */
	public static function get() {

		require(LYCHEE_CONFIG_FILE);

		return(array(
			'host'     => $dbHost,
			'user'     => $dbUser,
			'password' => $dbPassword,
			'name'     => $dbName,
			'prefix'   => $dbTablePrefix
		));

	}

}

?>