<?php

namespace App\Http\Controllers;

use Fivable\Buildable\Controllers\BuildableVaultComponentController as BaseBuildableVaultComponentController;

class BuildableVaultComponentController extends BaseBuildableVaultComponentController
{

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

//    /**
//     * Get a specific BuildableVaultComponent
//     * @param  BuildableVaultComponent  $buildableVaultComponent
//     * @return JsonResponse
//     */
//    public function show(BuildableVaultComponent $buildableVaultComponent) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'view', $buildableVaultComponent);
//
//        return response()->json([
//            'vault_component' => $buildableVaultComponent,
//        ]);
//    }

//    /**
//     * Create a new BuildableVaultComponent
//     * @param  Request  $request
//     * @return JsonResponse
//     */
//    public function store(Request $request) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'create', BuildableVaultComponent::class);
//
//        $new_vault_component = BuildableVaultComponent::create($request->all());
//
//        return response()->json([
//            'new_vault_component' => $new_vault_component,
//        ]);
//    }

//    /**
//     * Update a specific BuildableVaultComponent
//     * @param  Request  $request
//     * @param  BuildableVaultComponent  $buildableVaultComponent
//     * @return JsonResponse
//     */
//    public function update(Request $request, BuildableVaultComponent $buildableVaultComponent) : JsonResponse
//    {
//        $this->authorizeForUser($this->user(), 'update', $buildableVaultComponent);
//
//        $updatedVaultComponent = $buildableVaultComponent->update($request->all());
//
//        return response()->json([
//            'updated_vault_component' => $updatedVaultComponent->fresh(),
//        ]);
//    }

//    /**
//     * Delete a specific BuildableVaultComponent
//     * @param  BuildableVaultComponent  $buildableVaultComponent
//     * @return JsonResponse
//     * @throws \Exception
//     */
//    public function destroy(BuildableVaultComponent $buildableVaultComponent) : JsonResponse
//    {
//
//        $this->authorizeForUser($this->user(), 'delete', $buildableVaultComponent);
//        $buildableVaultComponent->delete();
//
//        return response()->json([
//            'deleted_vault_component' => $buildableVaultComponent,
//        ]);
//    }
}
