<?php

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" .
      "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;
  }
}
