diff --git a/app/Http/Controllers/Api/ContactUsController.php b/app/Http/Controllers/Api/ContactUsController.php new file mode 100644 index 0000000..443b858 --- /dev/null +++ b/app/Http/Controllers/Api/ContactUsController.php @@ -0,0 +1,44 @@ +validate([ + /** + * Message Title + * + * @example Salam + */ + 'title' => ['required', 'string', 'max:255'], + + /** + * Message content + * + * @example Bet app + */ + 'message' => ['required', 'string', 'max:255'], + ]); + + ContactUs::forceCreate( + ...$data, + ...[ + 'user_id' => auth()->id(), + ], + ); + + return response()->json([ + 'message' => __('Successfully created'), + ], 201); + } +} diff --git a/app/Models/CMS/ContactUs.php b/app/Models/CMS/ContactUs.php new file mode 100644 index 0000000..7392b5c --- /dev/null +++ b/app/Models/CMS/ContactUs.php @@ -0,0 +1,19 @@ +id(); + $table->string('title'); + $table->text('message'); + + $table->foreignId('user_id')->nullable()->constrained()->nullOnDelete(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('contact_us'); + } +}; diff --git a/routes/api.php b/routes/api.php index 3042a07..3365e6e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Api\CardOrder\CardOrderController; use App\Http\Controllers\Api\CardPin\CardPinController; use App\Http\Controllers\Api\CardRequisite\CardRequisiteController; use App\Http\Controllers\Api\CardTransaction\CardTransactionsController; +use App\Http\Controllers\Api\ContactUsController; use App\Http\Controllers\Api\FetchLoanHistoryController; use App\Http\Controllers\Api\LoanOrder\Remaining\LoanOrderRemainingOrderController; use App\Http\Controllers\Api\LoanPaidOffLetterOrderController; @@ -63,6 +64,8 @@ Route::get('provinces', [ProvinceController::class, 'index']); Route::get('base-app-enums', [BaseAppEnumController::class, 'index']); Route::middleware(['auth:sanctum', 'not_banned'])->group(function () { + Route::post('contact-us', [ContactUsController::class, 'store']); + // Profile... [tested fully] Route::get('profile', [ProfileController::class, 'index']); Route::post('profile', [ProfileController::class, 'store']);