<?php

namespace App\Http\Controllers;

use Fivable\Buildable\Controllers\BuildableFileController as BaseBuildableFileController;

class BuildableFileController extends BaseBuildableFileController
{

//    /**
//     * Get all BuildableFiles
//     * @return JsonResponse
//     */
//    public function index() : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'viewIndex', BuildableFile::class);
//
//        $files = BuildableFile::all();
//
//        return response()->json([
//            'files' => $files,
//        ]);
//    }

//    /**
//     * @param BuildableFile $buildableFile
//     * @return JsonResponse
//     */
//    public function show(BuildableFile $buildableFile) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'view', $buildableFile);
//
//        return response()->json([
//            'file' => $buildableFile,
//        ]);
//    }

//    /**
//     * Create a new BuildableFile
//     * @param  Request $request
//     * @return JsonResponse
//     */
//    public function store(Request $request) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'create', BuildableFile::class);
//
//        $newFile = BuildableFile::createFile($request);
//
//        if ($newFile) {
//            return response()->json([
//                'new_file' => $newFile->fresh()
//            ]);
//        } else {
//            return response()->json([
//                'error' => 'file creation failed',
//            ]);
//        }
//    }

//    /**
//     * Update a specific BuildableFile
//     * @param  Request $request
//     * @param  BuildableFile   $buildableFile
//     * @return JsonResponse
//     */
//    public function update(BuildableFile $buildableFile, Request $request) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'update', $buildableFile);
//
//        $updatedFile = $buildableFile->updateFile($request);
//
//        return response()->json([
//            'updated_file' => $updatedFile->fresh(),
//        ]);
//    }

//    /**
//     * @param BuildableFile $buildableFile
//     * @return JsonResponse
//     * @throws \Exception
//     */
//    function destroy(BuildableFile $buildableFile) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'delete', $buildableFile);
//
//        $buildableFile->delete();
//
//        // TODO: Reconsider whether we want to delete files in storage (we are soft deleted in DB sooo)
//        $buildableFile->deleteInStorage();
//
//        return response()->json([
//            'deleted_file' => $buildableFile
//        ]);
//    }
}
