| 
<?php
 namespace App\Http\Controllers\Wallet;
 
 use App\Http\Controllers\Controller;
 use App\Models\Wallet;
 use App\Transformers\WalletTransformer;
 use Illuminate\Http\Request;
 
 /**
 * Read documentation in routes/api.php in block (Wallet)
 */
 class WalletController extends Controller
 {
 public function __construct()
 {
 $this->middleware(['admin'])->except(['show']);
 }
 /**
 * get a listing of the wallets.
 *
 * @return \Illuminate\Http\JsonResponse
 */
 public function index()
 {
 return $this->sendResponse(
 fractal()
 ->collection(Wallet::all())
 ->transformWith(new WalletTransformer())
 ->parseIncludes('user')
 ->toArray()['data']
 );
 }
 
 // we dont need to create wallet,
 // we will create wallet to user automatically when we create user
 //    /**
 //     * Store a newly created resource in storage.
 //     *
 //     * @param  \Illuminate\Http\Request  $request
 //     * @return \Illuminate\Http\Response
 //     */
 //    public function store(Request $request)
 //    {
 //
 //    }
 
 /**
 * Display the specified resource.
 *
 * @param  Wallet  $wallet
 * @return \Illuminate\Http\JsonResponse
 */
 public function show()
 {
 return response()->json(
 fractal()
 ->item(auth()->user()->wallet()->first())
 ->transformWith(new WalletTransformer())
 //->parseIncludes('user')
 ->toArray()['data']
 );
 }
 
 /**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
 public function update(Request $request, $id)
 {
 //
 }
 
 /**
 * Remove the specified resource from storage.
 *
 * @param  int  $id
 * @return \Illuminate\Http\JsonResponse
 */
 public function destroy(Wallet $wallet)
 {
 $wallet->delete();
 
 return $this->sendResponse(['deleted']);
 }
 }
 
 |