<?php
namespace App\Http\Controllers;
use App\Http\Requests\TransactionRequest;
use App\Http\Resources\TransactionResource;
use App\Models\Products;
use App\Models\Transaction;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class TransactionController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$transaction =Transaction::with('products')->get();
return new TransactionResource(true,'Data Transaction',$transaction);
}
/**
* Store a newly created resource in storage.
*/
public function store(TransactionRequest $request)
{
$product = Products::findOrFail($request->product_id);
$total_price = $product->price * $request->quantity;
$transaction = Transaction::create([
'email' => $request->email,
'product_id' =>$request->product_id,
'quantity' => $request->quantity,
'plan' => $request->plan,
'total_price' => $total_price,
'status' => 'pending',
]);
return new TransactionResource(true,'Data Transaction berhasil di tambah',$transaction);
}
/**
* Display the specified resource.
*/
public function show(Transaction $transaction)
{
return new TransactionResource(true,'Detail Data Transaction',$transaction);
}
/**
* Update the sJecified resource in storage.
*/
public function update(Request $request, Transaction $transaction)
{
$data = $request->all();
if($data['status'] == 'approved'){
$data['lisensi_key'] = Str::uuid();
}else{
$data['lisensi_key'] = null;
}
$transaction->update($data);
return new TransactionResource(true,'Data Transaction Berhasil Di Update',$transaction);
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Transaction $transaction)
{
$transaction->delete();
return new TransactionResource(true,'Data Transaction Berhasil Di Hapus',$transaction);
}
public function approved($id){
$transaction =Transaction::findOrFail($id);
$lisensi_key =Str::uuid();
$transaction->approved ='approved';
$transaction->lisensi_key = $lisensi_key;
$transaction->save();
return new TransactionResource(true,'Data Transaction Di setujui',$transaction);
}
}
Membuat data Transaction dengna laravel 11 api
