diff --git a/api/app/Http/Controllers/ProductsController.php b/api/app/Http/Controllers/ProductsController.php new file mode 100644 index 0000000..625083f --- /dev/null +++ b/api/app/Http/Controllers/ProductsController.php @@ -0,0 +1,23 @@ +productsRepository = $productsRepository; + } + + public function add(AddProductRequest $request) + { + $product = $this->productsRepository->create($request->all()); + + return response()->json(['success' => true, 'data' => ['product' => $product]], 200); + } +} diff --git a/api/app/Http/Requests/AddProductRequest.php b/api/app/Http/Requests/AddProductRequest.php new file mode 100644 index 0000000..a58a7d4 --- /dev/null +++ b/api/app/Http/Requests/AddProductRequest.php @@ -0,0 +1,37 @@ + 'required', + ]; + } + + public function messages() + { + return [ + 'name.required' => 'Product name is required', + ]; + } +} diff --git a/api/app/Http/Requests/LoginRequest.php b/api/app/Http/Requests/LoginRequest.php index 3963bf8..d68df2c 100644 --- a/api/app/Http/Requests/LoginRequest.php +++ b/api/app/Http/Requests/LoginRequest.php @@ -33,6 +33,7 @@ class LoginRequest extends FormRequest { return [ 'email.required' => 'Email is required', + 'email.email' => 'Email is in wrong format', 'password.required' => 'Password is required', ]; } diff --git a/api/app/Http/Requests/RegisterRequest.php b/api/app/Http/Requests/RegisterRequest.php index 1f957bd..2076840 100644 --- a/api/app/Http/Requests/RegisterRequest.php +++ b/api/app/Http/Requests/RegisterRequest.php @@ -33,6 +33,7 @@ class RegisterRequest extends FormRequest { return [ 'email.required' => 'Email is required', + 'email.email' => 'Email is in wrong format', 'password.required' => 'Password is required', ]; } diff --git a/api/app/Models/Product.php b/api/app/Models/Product.php new file mode 100644 index 0000000..65f7bf2 --- /dev/null +++ b/api/app/Models/Product.php @@ -0,0 +1,15 @@ +app->bind(UsersRepositoryInterface::class, UsersRepository::class); + $this->app->bind(ProductsRepositoryInterface::class, ProductsRepository::class); } } diff --git a/api/app/Repositories/ProductsRepository.php b/api/app/Repositories/ProductsRepository.php new file mode 100644 index 0000000..a29a715 --- /dev/null +++ b/api/app/Repositories/ProductsRepository.php @@ -0,0 +1,15 @@ +bigIncrements('id'); + $table->string('name')->unique(); + $table->integer('kcal')->nullable(); + $table->float('carbohydrates')->nullable(); + $table->float('protein')->nullable(); + $table->float('fat')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('products'); + } +} diff --git a/api/routes/api.php b/api/routes/api.php index 0839ef9..711434c 100644 --- a/api/routes/api.php +++ b/api/routes/api.php @@ -7,3 +7,7 @@ Route::group(['prefix' => 'user', 'middleware' => ['assign.guard:users']], funct Route::post('/login', 'UsersController@login'); Route::get('/me', 'UsersController@me'); }); + +Route::group(['prefix' => 'product', 'middleware' => ['assign.guard:users']], function () { + Route::post('/', 'ProductsController@add'); +});