Navigation Menu

Skip to content

Commit

Permalink
added previous API functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
jadjoubran committed Sep 17, 2016
1 parent 6baadba commit 97232be
Show file tree
Hide file tree
Showing 29 changed files with 522 additions and 248 deletions.
20 changes: 20 additions & 0 deletions app/Http/Controllers/AngularController.php
@@ -0,0 +1,20 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class AngularController extends Controller
{
public function serveApp()
{
return view('index');
}

public function unsupported()
{
return view('unsupported_browser');
}
}
54 changes: 54 additions & 0 deletions app/Http/Controllers/Auth/AuthController.php
@@ -0,0 +1,54 @@
<?php

namespace App\Http\Controllers\Auth;

use Auth;
use JWTAuth;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class AuthController extends Controller
{
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:8',
]);

$credentials = $request->only('email', 'password');

try {
// verify the credentials and create a token for the user
if (! $token = JWTAuth::attempt($credentials)) {
return response()->error('Invalid credentials', 401);
}
} catch (\JWTException $e) {
return response()->error('Could not create token', 500);
}

$user = Auth::user();

return response()->success(compact('user', 'token'));
}

public function register(Request $request)
{
$this->validate($request, [
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:8',
]);

$user = new User;
$user->name = trim($request->name);
$user->email = trim(strtolower($request->email));
$user->password = bcrypt($request->password);
$user->save();

$token = JWTAuth::fromUser($user);

return response()->success(compact('user', 'token'));
}
}
32 changes: 0 additions & 32 deletions app/Http/Controllers/Auth/ForgotPasswordController.php

This file was deleted.

39 changes: 0 additions & 39 deletions app/Http/Controllers/Auth/LoginController.php

This file was deleted.

74 changes: 74 additions & 0 deletions app/Http/Controllers/Auth/PasswordResetController.php
@@ -0,0 +1,74 @@
<?php

namespace App\Http\Controllers\Auth;

use Mail;
use App\User;
use App\PasswordReset;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class PasswordResetController extends Controller
{
public function sendResetLinkEmail(Request $request)
{
$this->validate($request, [
'email' => 'required|email|exists:users,email',
]);

//invalidate old tokens
PasswordReset::whereEmail($request->email)->delete();

$email = $request->email;
$reset = PasswordReset::create([
'email' => $email,
'token' => str_random(10),
]);

$token = $reset->token;

Mail::send('auth.reset_link', compact('email', 'token'), function ($mail) use ($email) {
$mail->to($email)
->from('noreply@example.com')
->subject('Password reset link');
});

return response()->success(true);
}

public function verify(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'token' => 'required',
]);

$check = PasswordReset::whereEmail($request->email)
->whereToken($request->token)
->first();

if (! $check) {
return response()->error('Email does not exist', 422);
}

return response()->success(true);
}

public function reset(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'token' => "required|exists:password_resets,token,email,{$request->email}",
'password' => 'required|min:8|confirmed',
]);

$user = User::whereEmail($request->email)->firstOrFail();
$user->password = bcrypt($request->password);
$user->save();

//delete pending resets
PasswordReset::whereEmail($request->email)->delete();

return response()->success(true);
}
}
71 changes: 0 additions & 71 deletions app/Http/Controllers/Auth/RegisterController.php

This file was deleted.

32 changes: 0 additions & 32 deletions app/Http/Controllers/Auth/ResetPasswordController.php

This file was deleted.

2 changes: 1 addition & 1 deletion app/Http/Kernel.php
Expand Up @@ -33,7 +33,7 @@ class Kernel extends HttpKernel
],

'api' => [
'throttle:60,1',
// 'throttle:60,1',
'bindings',
],
];
Expand Down
15 changes: 15 additions & 0 deletions app/PasswordReset.php
@@ -0,0 +1,15 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PasswordReset extends Model
{
protected $fillable = ['email', 'token'];

public function setUpdatedAtAttribute($value)
{
// to disable updated_at
}
}
44 changes: 44 additions & 0 deletions app/Providers/ResponseMacroServiceProvider.php
@@ -0,0 +1,44 @@
<?php

namespace App\Providers;

use Response;
use Illuminate\Support\ServiceProvider;

class ResponseMacroServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
Response::macro('success', function ($data) {
return Response::json([
'errors' => false,
'data' => $data,
]);
});

Response::macro('error', function ($message, $status = 400) {
return Response::json([
'message' => $status.' error',
'errors' => [
'message' => [$message],
],
'status_code' => $status,
], $status);
});
}

/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}

0 comments on commit 97232be

Please sign in to comment.