first commit

This commit is contained in:
dimon
2025-12-03 17:47:54 +00:00
commit 368ad0a220
100 changed files with 13791 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Models\Component;
use Illuminate\Http\Response;
class ComponentsController extends Controller
{
public function index(){
return response()->json(Component::all()->toJson());
}
public function show($id)
{
$component = Component::find($id);
if (!$component) {
return response()->json(['message' => 'Component not found'], 404);
}
return response()->json($component);
}
public function create(Request $request)
{
$name = $request->get(key:'name');
$type = $request->get(key:'type');
$brand = $request->get(key:'brand');
$model = $request->get(key:'model');
$price = $request->get(key:'price');
$component = new Component();
$component->name = $name;
$component->type = $type;
$component->brand = $brand;
$component->model = $model;
$component->price = $price;
$component->save();
return response()->json($component->toJson());
}
public function update(Request $request, int $id): JsonResponse{
return response()->json([
'name' => $request->get('name'),
'type' => $request->get('type'),
'brand' => $request->get('brand'),
'model' => $request->get('model'),
'price' => $request->get('price'),
], Response::HTTP_ACCEPTED);
}
public function destroy(int $id): JsonResponse
{
// мы бы здесь написали вызов запроса delete из БД
return response()->json([
'success' => true,
], Response::HTTP_ACCEPTED);
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace App\Http\Controllers;
abstract class Controller
{
//
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers;
use App\Mail\RegisterUserMail;
use Illuminate\Mail\Mailable;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use App\Models\User;
use Illuminate\Http\Request;
class UsersController extends Controller
{
public function create(Request $request){
$user = new User();
$name = $request->get('name');
$email = $request->get('email');
$password = Hash::make($request->get('password'));
$user->name = $name;
$user->email = $email;
$user->password = $password;
$user->save();
$adminEmail = 'dimon.cozlow2017@yandex.ru';
dispatch(function () use ($user, $adminEmail) {
Mail::to($adminEmail)->send(new RegisterUserMail($user->name));
});
return ['token' => $user->createToken('frontend')->plainTextToken];
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class RegisterUserMail extends Mailable
{
use Queueable, SerializesModels;
public $name;
/**
* Create a new message instance.
*/
public function __construct(string $name)
{
$this->name = $name;
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Register User Mail',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'emails.register',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [];
}
}

10
app/Models/Component.php Normal file
View File

@@ -0,0 +1,10 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Component extends Model
{
}

51
app/Models/User.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasApiTokens, HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var list<string>
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var list<string>
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
//
}
}