<?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;
    }
}