<?php

namespace brain\utility;

class DocTools
{
    public function __construct()
    {
    }

    public static function writePages($task, $path, $fileLocation, $fileContents)
    {
        try {
            if ($task == "create") {
                if (!is_dir("../content/pages/" . $path)) {
                    //Directory does not exist, so lets create it.
                    mkdir("../content/pages/" . $path, 0755, true);
                }
                file_put_contents($fileLocation, $fileContents);
            } else {
                ($new = fopen($fileLocation, "w")) or die("Unable to open file!");
                fwrite($new, $fileContents);
                fclose($new);
            }

            return true;
        } catch (Error $error) {
            return false;
        }
    }

    public static function writeSettings($fileLocation, $fileContents)
    {
        if (!is_file($fileLocation)) {
            file_put_contents($fileLocation, json_encode($fileContents));
        } else {
            ($new = fopen($fileLocation, "w")) or die("Unable to open file!");
            fwrite($new, json_encode($fileContents));
            fclose($new);
        }
    }

    public static function writeHTML($location, $html, $path = null)
    {
        if ($path != null) {
            if (!is_dir($path)) {
                //Directory does not exist, so lets create it.
                mkdir($path, 0755, true);
            }
        }
        if (!is_file($location)) {
            file_put_contents($location, $html);
        } else {
            ($new = fopen($location, "w")) or die("Unable to open file!");
            fwrite($new, $html);
            fclose($new);
        }
    }

    public static function deleteFolder($path)
    {
        if (!empty($path) && is_dir($path)) {
            $dir = new RecursiveDirectoryIterator(
                $path,
                RecursiveDirectoryIterator::SKIP_DOTS
            ); //upper dirs are not included,otherwise DISASTER HAPPENS :)
            $files = new RecursiveIteratorIterator(
                $dir,
                RecursiveIteratorIterator::CHILD_FIRST
            );
            foreach ($files as $f) {
                if (is_file($f)) {
                    unlink($f);
                } else {
                    $empty_dirs[] = $f;
                }
            }
            if (!empty($empty_dirs)) {
                foreach ($empty_dirs as $eachDir) {
                    rmdir($eachDir);
                }
            }
            rmdir($path);
        }
    }

    public static function objectToMD($object)
    {
        $markdown =
        "---\n" .
        "id: " .
        $object["id"] .
        "\n" .
        "uuid: " .
        $object["uuid"] .
        "\n" .
        "title: " .
        "'" .
        $object["title"] .
        "'" .
        "\n" .
        "feature: " .
        $object["feature"] .
        "\n" .
        "files: " .
        $object["files"] .
        "\n" .
        "path: " .
        $object["path"] .
        "\n" .
        "layout: " .
        $object["layout"] .
        "\n" .
        "tags: " .
        $object["tags"] .
        "\n" .
        "author: " .
        $object["author"] .
        "\n" .
        "created: " .
        $object["created"] .
        "\n" .
        "updated: " .
        $object["updated"] .
        "\n" .
        "deleted: " .
        $object["deleted"] .
        "\n" .
        "slug: " .
        $object["slug"] .
        "\n" .
        "menu: " .
        $object["menu"] .
        "\n" .
        "published: " .
        $object["published"] .
        "\n" .
        "featured: " .
        $object["featured"] .
        "\n---\n" .
        $object["content"];

        return $markdown;
    }
}