add login logic

This commit is contained in:
2025-11-20 00:15:17 +03:00
parent c266131666
commit 1ec7e58088
13 changed files with 396 additions and 16 deletions

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CommentsController extends Controller
{
public function store(Request $request, int $id): JsonResponse
{
return response()->json([
'id' => 1,
'text' => $request->get('text'),
'post_id' => $id
], Response::HTTP_CREATED);
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class PostsController extends Controller
{
public function index(): JsonResponse
{
return response()->json([
[
'id' => 1,
'title' => 'My first post',
],
[
'id' => 2,
'title' => 'New post',
]
]);
}
public function destroy(int $id): JsonResponse
{
// мы бы здесь написали вызов запроса delete из БД
return response()->json([
'success' => true,
], Response::HTTP_ACCEPTED);
}
public function store(Request $request): JsonResponse
{
return response()->json([
'title' => $request->get('title'),
'text' => $request->get('text'),
], Response::HTTP_CREATED);
}
public function update(Request $request, int $id): JsonResponse
{
return response()->json([
'title' => $request->get('title'),
'text' => $request->get('text'),
], Response::HTTP_ACCEPTED);
}
public function show(int $id): JsonResponse
{
if ($id === 5) {
return response()->json(
[
'status' => 'Not found'
],
Response::HTTP_NOT_FOUND
);
}
return response()->json([
'id' => $id,
'title' => 'My first post',
'text' => 'My first post text',
]);
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers;
use App\Models\Project;
use Illuminate\Http\Request;
class ProjectsController extends Controller
{
public function index()
{
return response()->json(Project::all()->toJson());
}
public function create(Request $request)
{
$title = $request->get('title');
$description = $request->get('description');
$creatorUserId = 1;
$project = new Project();
$project->title = $title;
$project->description = $description;
$project->creator_user_id = $creatorUserId;
$project->save();
return response()->json($project->toJson());
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
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();
return ['token' => $user->createToken('frontend')->plainTextToken];
}
}