nordsoftware/lumen-file-manager

View on GitHub
src/Eloquent/FileStorage.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Nord\Lumen\FileManager\Eloquent;

use Nord\Lumen\FileManager\Contracts\FileStorage as FileStorageContract;
use Nord\Lumen\FileManager\Contracts\File as FileContract;

class FileStorage implements FileStorageContract
{

    /**
     * @inheritdoc
     */
    public function saveFile(FileContract $file)
    {
        /* @var File $file */
        return $file->save();
    }


    /**
     * @inheritdoc
     */
    public function getFile($id)
    {
        return File::findByFileId($id);
    }


    /**
     * @inheritdoc
     */
    public function deleteFile($id)
    {
        $file = $this->getFile($id);

        if ($file === null) {
            return false;
        }

        $file->delete();

        return true;
    }


    /**
     * @inheritdoc
     */
    public function idExists($id)
    {
        return $this->getFile($id) !== null;
    }
}