forked from magonysandormate/PeePal
Majdnem kész
This commit is contained in:
103
Backend/laravel9/app/Http/Controllers/AuthController.php
Normal file
103
Backend/laravel9/app/Http/Controllers/AuthController.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth:api', ['except' => ['login', 'register']]);
|
||||
}
|
||||
|
||||
public function register(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'nev' => 'required|string',
|
||||
'email' => 'required|email|unique:felhasznalok',
|
||||
'felh_nev' => 'required|string|unique:felhasznalok',
|
||||
'jelszo' => 'required|string|min:6',
|
||||
'jelszo_confirmation' => 'required|same:jelszo',
|
||||
'is_admin' => 'boolean'
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$user = User::create([
|
||||
'nev' => $request->nev,
|
||||
'email' => $request->email,
|
||||
'felh_nev' => $request->felh_nev,
|
||||
'jelszo' => $request->jelszo, // This will be hashed via the mutator
|
||||
'is_admin' => $request->is_admin ?? false
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Sikeresen regisztrált felhasználó',
|
||||
'user' => $user
|
||||
], 201);
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'felh_nev' => 'required|string',
|
||||
'jelszo' => 'required|string'
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
// Since your login fields are custom, you need to specify the fields
|
||||
$credentials = [
|
||||
'felh_nev' => $request->felh_nev,
|
||||
'password' => $request->jelszo // Laravel expects 'password' internally
|
||||
];
|
||||
|
||||
if (!$token = auth('api')->attempt($credentials)) {
|
||||
return response()->json(['error' => 'Helytelen felhasználónév vagy jelszó'], 401);
|
||||
}
|
||||
|
||||
return $this->respondWithToken($token);
|
||||
}
|
||||
|
||||
public function me()
|
||||
{
|
||||
return response()->json(auth('api')->user());
|
||||
}
|
||||
|
||||
public function logout()
|
||||
{
|
||||
auth('api')->logout();
|
||||
|
||||
return response()->json(['message' => 'Sikeres kijelentkezés']);
|
||||
}
|
||||
|
||||
public function refresh()
|
||||
{
|
||||
try {
|
||||
$token = JWTAuth::parseToken()->refresh();
|
||||
return $this->respondWithToken($token);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['error' => 'Could not refresh token'], 401);
|
||||
}
|
||||
}
|
||||
|
||||
protected function respondWithToken($token)
|
||||
{
|
||||
return response()->json([
|
||||
'access_token' => $token,
|
||||
'token_type' => 'bearer',
|
||||
'expires_in' => config('jwt.ttl') * 60, // Getting TTL from config
|
||||
'user' => auth('api')->user()
|
||||
]);
|
||||
}
|
||||
}
|
||||
13
Backend/laravel9/app/Http/Controllers/Controller.php
Normal file
13
Backend/laravel9/app/Http/Controllers/Controller.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
||||
100
Backend/laravel9/app/Http/Controllers/HozzaadasController.php
Normal file
100
Backend/laravel9/app/Http/Controllers/HozzaadasController.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\WcAdatok;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class HozzaadasController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validatedData = $request -> validate([
|
||||
'nev' => 'required|string',
|
||||
'kerulet' => 'required|string',
|
||||
'kozeli_megall' => 'required|string',
|
||||
'akadalym' => 'nullable|boolean',
|
||||
'ar' => 'nullable|numeric',
|
||||
'nyitva' => 'nullable|string',
|
||||
'utvonal' => 'required|string',
|
||||
'koordinatak' => 'required|string'
|
||||
]);
|
||||
|
||||
try {
|
||||
$szelesseg = null;
|
||||
$hosszusag = null;
|
||||
|
||||
if (!empty($validatedData['koordinatak'])) {
|
||||
$koordinatak = explode(',', $validatedData['koordinatak']);
|
||||
|
||||
if (count($koordinatak) == 2) {
|
||||
$hosszusag = trim($koordinatak[0]);
|
||||
$szelesseg = trim($koordinatak[1]);
|
||||
|
||||
if (!is_numeric($szelesseg) || !is_numeric($hosszusag)) {
|
||||
return response() -> json([
|
||||
'message' => 'Érvénytelen a koordináták formátuma'
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$mosdo = WcAdatok::create([
|
||||
'nev' => $validatedData['nev'],
|
||||
'kerulet' => $validatedData['kerulet'],
|
||||
'kozeli_megall' => $validatedData['kozeli_megall'],
|
||||
'akadalym' => $validatedData['akadalym'],
|
||||
'ar' => $validatedData['ar'],
|
||||
'nyitva' => $validatedData['nyitva'],
|
||||
'utvonal' => $validatedData['utvonal'],
|
||||
'szel_koord' => $szelesseg,
|
||||
'hossz_koord' => $hosszusag
|
||||
]);
|
||||
|
||||
return response() -> json([
|
||||
'message' => 'Sikeres rögzítés',
|
||||
'data' => $mosdo
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response() -> json([
|
||||
'message' => 'Hiba történt a mentés során',
|
||||
'error' => $e -> getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
76
Backend/laravel9/app/Http/Controllers/UserController.php
Normal file
76
Backend/laravel9/app/Http/Controllers/UserController.php
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validatedData = $request->validate([
|
||||
'nev' => 'required|string',
|
||||
'email' => 'required|email|unique:felhasznalok',
|
||||
'felh_nev' => 'required|string|unique:felhasznalok',
|
||||
'jelszo' => 'required|string|min:6',
|
||||
'is_admin' => 'boolean'
|
||||
]);
|
||||
|
||||
try {
|
||||
$felhasznalo = User::create([
|
||||
'nev' => $validatedData['nev'],
|
||||
'email' => $validatedData['email'],
|
||||
'felh_nev' => $validatedData['felh_nev'],
|
||||
'jelszo' => $validatedData['jelszo'], // Will be hashed by mutator
|
||||
'is_admin' => $validatedData['is_admin'] ?? false
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Sikeres rögzítés',
|
||||
'data' => $felhasznalo
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => 'Hiba történt a mentés során',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
97
Backend/laravel9/app/Http/Controllers/WcController.php
Normal file
97
Backend/laravel9/app/Http/Controllers/WcController.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\WcAdatok;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class WcController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$mosdok = WcAdatok::with('kerulet')->get();
|
||||
return response()->json($mosdok);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validatedData = $request->validate([
|
||||
'nev' => 'required|string',
|
||||
'kerulet_id' => 'required|integer|exists:keruletek,id',
|
||||
'kozeli_megall' => 'required|string',
|
||||
'akadalym' => 'nullable|boolean',
|
||||
'ar' => 'nullable|numeric',
|
||||
'nyitva' => 'nullable|string',
|
||||
'utvonal' => 'required|string',
|
||||
'koordinatak' => 'required|string',
|
||||
'felhasznalo_id' => 'nullable|numeric'
|
||||
]);
|
||||
|
||||
try {
|
||||
$szelesseg = null;
|
||||
$hosszusag = null;
|
||||
|
||||
if (!empty($validatedData['koordinatak'])) {
|
||||
$koordinatak = explode(',', $validatedData['koordinatak']);
|
||||
|
||||
if (count($koordinatak) == 2) {
|
||||
$hosszusag = trim($koordinatak[0]);
|
||||
$szelesseg = trim($koordinatak[1]);
|
||||
|
||||
if (!is_numeric($szelesseg) || !is_numeric($hosszusag)) {
|
||||
return response()->json([
|
||||
'message' => 'Érvénytelen a koordináták formátuma'
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$mosdo = WcAdatok::create([
|
||||
'nev' => $validatedData['nev'],
|
||||
'kerulet_id' => $validatedData['kerulet_id'],
|
||||
'kozeli_megall' => $validatedData['kozeli_megall'],
|
||||
'akadalym' => $validatedData['akadalym'],
|
||||
'ar' => $validatedData['ar'],
|
||||
'nyitva' => $validatedData['nyitva'],
|
||||
'utvonal' => $validatedData['utvonal'],
|
||||
'szel_koord' => $szelesseg,
|
||||
'hossz_koord' => $hosszusag,
|
||||
'felhasznalo_id' => $validatedData['felhasznalo_id'] ?? null
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Sikeres rögzítés',
|
||||
'data' => $mosdo
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => 'Hiba történt a mentés során',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$wc = WcAdatok::find($id);
|
||||
|
||||
if (!$wc) {
|
||||
return response()->json(['message' => 'Nem található'], 404);
|
||||
}
|
||||
|
||||
return response()->json($wc);
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$mosdo = WcAdatok::find($id);
|
||||
|
||||
if($mosdo){
|
||||
$mosdo -> delete();
|
||||
return response() -> json(['message' => 'Sikeres törlés'], 200);
|
||||
} else {
|
||||
return response() -> json(['message' => 'Nem található'], 404);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user