<?php

namespace brain\api\v1;

use brain\utility\FileUploader;

class FilesAPI
{
    public function __construct()
    {
    }

    public static function uploadFiles($request, $type = null)
    {
        $upload    = $request->getUploadedFiles();  //grab uploaded files
        $file      = $upload['upload_files'][0];    //front end sends one by one for progress tracking, so grab first
        $type      = $file->getClientMediaType();
        $filesPath = '';
        $path      = date('Y') . '/' . date('m');
        $response  = [];
        switch ($type) {
            case 'image/jpeg':
            case 'image/png':
            case 'image/gif':
            case 'image/svg':
                $filesPath = '/assets/images/blog/' . $path . '/';

                break;
            case 'video/mp4':
                $filesPath = '/assets/video/blog/' . $path . '/';
                break;
            case 'audio/mpeg':
                $filesPath = '/assets/sound/blog/' . $path . '/';
                break;
            case 'application/pdf':
            case 'text/plain':
            case 'text/rtf':
                $filesPath = '/assets/docs/blog/' . $path . '/';
                break;
        }

        FileUploader::uploadFile('../public' . $filesPath, $file);

        $response = [
            'message'  => "File Uploaded. Great!",
            "filePath" => $filesPath . urlencode($file->getClientFileName()),
            "fileName" => urlencode($file->getClientFileName()),
            'type'     => $type,
        ];

        return $response;
    }
}