<?php
use Psr\Http\Message\UploadedFileInterface;
//include "brain/data/Auth.inc.php";

class FileUploader
{
  public static function uploadFile(
    string $directory,
    UploadedFileInterface $file
  ) {
    try {
      if (!is_dir($directory)) {
        //Directory does not exist, so lets create it.
        mkdir($directory, 0755, true);
      }
      //$upload = move_uploaded_file($file->getClientFileName(), $directory);
      //$extension = pathinfo($file->getClientFilename(), PATHINFO_EXTENSION);

      // see http://php.net/manual/en/function.random-bytes.php
      //$basename = bin2hex(random_bytes(8));
      //$filename = sprintf("%s.%0.8s", $basename, $extension);

      $file->moveTo($directory . "/" . $file->getClientFileName());
    } catch (Error $e) {
      echo "failed to upload image: " . $e->getMessage();
      throw new Error("Failed to upload image file");
    }
  }
}