✨ Ajoute les 2 controllers et l'authentification
This commit is contained in:
32
app/Http/Controllers/LinksController.php
Normal file
32
app/Http/Controllers/LinksController.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Laravel\Lumen\Routing\Controller as BaseController;
|
||||
|
||||
class LinksController extends BaseController
|
||||
{
|
||||
public function add(Request $request)
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = $request->user()->first();
|
||||
$email = $user->email;
|
||||
|
||||
$link = $request->input('link');
|
||||
$link = filter_var($link, FILTER_VALIDATE_URL);
|
||||
if ($link === false) {
|
||||
return response()->json(['error' => 'Invalid link.'], 422);
|
||||
}
|
||||
|
||||
$email_sent = mail($email, 'New link', $link);
|
||||
|
||||
if ($email_sent) {
|
||||
return response()->json(['info' => 'Email sent.']);
|
||||
}
|
||||
|
||||
return response()->json(['error' => 'An error occured while sending email'], 500);
|
||||
}
|
||||
}
|
33
app/Http/Controllers/UsersController.php
Normal file
33
app/Http/Controllers/UsersController.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Laravel\Lumen\Routing\Controller as BaseController;
|
||||
|
||||
class UsersController extends BaseController
|
||||
{
|
||||
public function create(Request $request)
|
||||
{
|
||||
try {
|
||||
$data = $this->validate($request, [
|
||||
'email' => 'required|email|unique:users'
|
||||
]);
|
||||
|
||||
$token = bin2hex(random_bytes(72));
|
||||
|
||||
$user = new User(['email' => $data['email']]);
|
||||
$user->token = $token;
|
||||
$user->save();
|
||||
|
||||
return response()->json(['token' => $token, 'email' => $data['email']]);
|
||||
|
||||
} catch (ValidationException $e) {
|
||||
return response()->json(['error' => $e->errors()], 422);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['error' => $e->getMessage()], 422);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user