diff --git a/app/Http/Controllers/MutationController.php b/app/Http/Controllers/MutationController.php new file mode 100644 index 0000000..ff1f071 --- /dev/null +++ b/app/Http/Controllers/MutationController.php @@ -0,0 +1,78 @@ +mutations()->create([ + ...$request->validated(), + 'user_id' => $request->user()->id, + ]); + + $ledger->increment('score', $request->validated('amount')); + }); + + return redirect()->route('dynamics.ledgers.show', [$dynamic, $ledger]); + } + + /** + * Display the specified resource. + */ + public function show(Dynamic $dynamic, Ledger $ledger, Mutation $mutation) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Dynamic $dynamic, Ledger $ledger, Mutation $mutation) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, Dynamic $dynamic, Ledger $ledger, Mutation $mutation) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(Dynamic $dynamic, Ledger $ledger, Mutation $mutation) + { + // + } +} diff --git a/app/Http/Requests/StoreMutationRequest.php b/app/Http/Requests/StoreMutationRequest.php new file mode 100644 index 0000000..0c781cc --- /dev/null +++ b/app/Http/Requests/StoreMutationRequest.php @@ -0,0 +1,37 @@ +route('ledger'); + + return $ledger && $this->user()->can('view', $ledger); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + 'amount' => ['required', 'integer'], + 'description' => ['required', 'string'], + 'type' => ['nullable', 'string'], + 'status' => ['nullable', 'string'], + ]; + } +} diff --git a/resources/js/pages/Ledgers/Show.vue b/resources/js/pages/Ledgers/Show.vue index 69eaa65..360cb65 100644 --- a/resources/js/pages/Ledgers/Show.vue +++ b/resources/js/pages/Ledgers/Show.vue @@ -1,6 +1,6 @@