diff --git a/paragonik-backend/app/Http/Controllers/ReceiptController.php b/paragonik-backend/app/Http/Controllers/ReceiptController.php new file mode 100644 index 0000000..cf077f9 --- /dev/null +++ b/paragonik-backend/app/Http/Controllers/ReceiptController.php @@ -0,0 +1,79 @@ +json(Receipt::with('receipt_items')->get(), 200); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $receipt = Receipt::create([ + 'payment_date' => $request->payment_date, + 'payment_amount' => $request->payment_amount, + 'user_id' => $request->user_id, + 'store_id' => $request->store_id, + ]); + + return response()->json($receipt, 201); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + $receipt = Receipt::with('receipt_items')->get()->find($id); + if(is_null($receipt)){ return response()->json(["message " => "Record not found."], 404);} + return response()->json($receipt, 200); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $receipt = Receipt::find($id); + if(is_null($receipt)){ return response()->json(["message " => "Record not found."], 404);} + $receipt->update($request->all()); + return response()->json($receipt, 200); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $receipt = Receipt::find($id); + if(is_null($receipt)){ return response()->json(["message " => "Record not found."], 404);} + $receipt->delete(); + return response()->json(null, 204); + } +} diff --git a/paragonik-backend/app/Http/Controllers/ReceiptItemController.php b/paragonik-backend/app/Http/Controllers/ReceiptItemController.php new file mode 100644 index 0000000..08ae5ba --- /dev/null +++ b/paragonik-backend/app/Http/Controllers/ReceiptItemController.php @@ -0,0 +1,80 @@ +json(ReceiptItem::get(), 200); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $receiptItem = ReceiptItem::create([ + 'name' => $request->name, + 'price' => $request->price, + 'quantity' => $request->quantity, + 'receipt_id' => $request->receipt_id, + 'category_id' => $request->category_id, + ]); + + return response()->json($receiptItem, 201); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + $receiptItem = ReceiptItem::find($id); + if(is_null($receiptItem)){ return response()->json(["message " => "Record not found."], 404);} + return response()->json($receiptItem, 200); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $receiptItem = ReceiptItem::find($id); + if(is_null($receiptItem)){ return response()->json(["message " => "Record not found."], 404);} + $receiptItem->update($request->all()); + return response()->json($receiptItem, 200); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $receiptItem = ReceiptItem::find($id); + if(is_null($receiptItem)){ return response()->json(["message " => "Record not found."], 404);} + $receiptItem->delete(); + return response()->json(null, 204); + } +} diff --git a/paragonik-backend/app/Models/Receipt.php b/paragonik-backend/app/Models/Receipt.php index d68ebcb..a465184 100644 --- a/paragonik-backend/app/Models/Receipt.php +++ b/paragonik-backend/app/Models/Receipt.php @@ -6,6 +6,8 @@ use Illuminate\Database\Eloquent\Model; class Receipt extends Model { + protected $fillable = ['id', 'payment_date', 'payment_amount', 'user_id', 'store_id', 'created_at', 'updated_at']; + public function user() { return $this->belongsTo('App\User'); diff --git a/paragonik-backend/app/Models/ReceiptItem.php b/paragonik-backend/app/Models/ReceiptItem.php index 941d772..d4780c6 100644 --- a/paragonik-backend/app/Models/ReceiptItem.php +++ b/paragonik-backend/app/Models/ReceiptItem.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Model; class ReceiptItem extends Model { protected $table = 'receipt_items'; + protected $fillable = ['id', 'name', 'price', 'quantity' , 'receipt_id', 'category_id', 'created_at', 'updated_at']; public function receipts() { diff --git a/paragonik-backend/routes/api.php b/paragonik-backend/routes/api.php index c641ca5..7fd1a23 100644 --- a/paragonik-backend/routes/api.php +++ b/paragonik-backend/routes/api.php @@ -13,6 +13,11 @@ use Illuminate\Http\Request; | */ +#Route::apiResource('/receipt', 'ReceiptController'); + Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); + +Route::apiResource('receiptItem', 'ReceiptItemController'); +Route::apiResource('receipt', 'ReceiptController'); \ No newline at end of file