Skip to content

Commit

Permalink
WorkEmailApi
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmetserefoglu committed Jun 8, 2020
1 parent addafbb commit 5cbb434
Show file tree
Hide file tree
Showing 40 changed files with 1,411 additions and 382 deletions.
107 changes: 103 additions & 4 deletions app/Http/Controllers/ApiDocumentController.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,29 @@ class ApiDocumentController extends Controller {
* ),
* @SWG\Response(
* response=200,
* description="Code Send",
* ),
* @SWG\Response(
* response=401,
* description="Unauthorized and Email,Password Control"
* )
* )
*/

/** @SWG\Get(
* path="/api/auth/login/verify",
* tags={"Login Verify"},
* summary="Login Verify Operation",
* description="Login Verify Operation",
* @SWG\Parameter(
* name="code",
* description="Code",
* required=true,
* type="string",
* in="query"
* ),
* @SWG\Response(
* response=200,
* description="login is successful",
* @SWG\Schema(
* type="object",
Expand All @@ -89,7 +112,7 @@ class ApiDocumentController extends Controller {
* property="token_type",
* type="string",
* description="Bearer"
* ),
* )
* )
* ),
* @SWG\Response(
Expand All @@ -101,9 +124,9 @@ class ApiDocumentController extends Controller {

/** @SWG\Get(
* path="/api/auth/email/verify",
* tags={"Verify"},
* summary="Verify Operation",
* description="Verify Operation",
* tags={"Email Verify"},
* summary="Email Verify Operation",
* description="Email Verify Operation",
* @SWG\Parameter(
* name="id",
* description="User id",
Expand Down Expand Up @@ -244,4 +267,80 @@ class ApiDocumentController extends Controller {
* )
*/

/** @SWG\Post(
* path="/api/password/createtoken",
* tags={"Token for Reset Password "},
* summary="Reset Password Operation",
* description="Reset Password Operation",
* @SWG\Parameter(
* name="email",
* description="Email",
* required=true,
* type="string",
* in="query"
* ),
* @SWG\Response(
* response=200,
* description="Reset Password is successful",
* ),
* @SWG\Response(
* response=404,
* description="Find'not Email"
* )
* )
*/

/** @SWG\Get(
* path="/api/find/find",
* tags={"User Token Find"},
* summary="User Token Find",
* description="User Token Find",
* @SWG\Parameter(
* name="token",
* description="User token",
* required=true,
* type="string",
* in="header"
* ),
* @SWG\Response(
* response=200,
* description="Success",
* ),
* @SWG\Response(
* response=404,
* description="Invalid Token"
* )
* )
*/

/** @SWG\Post(
* path="/api/password/resetpassword",
* tags={"Password Change Operation "},
* summary="Password Change Operation",
* description="Password Change Operation",
* @SWG\Parameter(
* name="email",
* description="email",
* required=true,
* type="string",
* in="query"
* ),
* @SWG\Parameter(
* name="token",
* description="token",
* required=true,
* type="string",
* in="query"
* ),
* @SWG\Response(
* response=200,
* description=" Password Change is successful",
* ),
* @SWG\Response(
* response=404,
* description="Find'not User"
* )
* )
*/

}
133 changes: 100 additions & 33 deletions app/Http/Controllers/Auth/AuthController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,29 @@
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\SmsVerification;
use App\User;
use GuzzleHttp\Client;
//use GuzzleHttp\Client;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\VerifiesEmails;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Mail;
use Twilio\Rest\Client;

class AuthController extends Controller {

use VerifiesEmails;

private $field = 'email';

protected $code, $smsVerifcation;

function __construct() {
$this->smsVerifcation = new \App\SmsVerification();
}

/**
* Kullanıcı Kayıt
*
Expand Down Expand Up @@ -43,7 +54,7 @@ public function register(Request $request) {
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
'activation_token' => str_random(60),
'token' => str_random(60),
'phonenumber' => $request->phonenumber,
]);

Expand Down Expand Up @@ -93,36 +104,13 @@ public function login(Request $request) {
if ($user->hasVerifiedEmail()) {

$code = rand(1000, 9999);
$accountSid = config('app.twilio')['TWILIO_ACCOUNT_SID'];
$authToken = config('app.twilio')['TWILIO_AUTH_TOKEN'];
try
{
$client = new Client(['auth' => [$accountSid, $authToken]]);
$result = $client->post('https://api.twilio.com/2010-04-01/Accounts/AC037e3b3a9f8743ee90adb2283e7c8402/Messages.json',
[
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'form_params' => [
'Body' => 'CODE: ' . $code, //set message body
'To' => '05535345272',
'From' => '+13344599247', //we get this number from twilio
]]);
//$result[0]
$mesaj = "Mesaj Başarıyla Gönderildi";

$message['success'] = 'Mesaj Başarıyla Gönderildi';

return response()->json(['message' => $message, 'code' => 200]);
} catch (Exception $e) {
$message['error'] = "Error: " . $e->getMessage();

return response()->json(['message' => $message, 'code' => 401]);
}
/*$message['token'] = $user->createToken('MyApp')->accessToken;
$message['token_type'] = 'Bearer';
$message['experies_at'] = Carbon::parse(Carbon::now()->addWeeks(1))->toDateTimeString();
*/

$request['code'] = $code;
$request['contact_number'] = $user->phonenumber;

$this->smsVerifcation->store($request);

return $this->twilloApi($request); // send and return its response

} else {

Expand Down Expand Up @@ -154,6 +142,11 @@ public function me() {
public function logout(Request $request) {

$request->user()->token()->revoke();

$smsverification = $this->smsVerifcation::where('contact_number', $request->user()->phonenumber)->first();
$smsverification->status = false;
$smsverification->save();

$message['success'] = 'Sistemden Çıkış Yapıldı';

return response()->json(['message' => $message, 'code' => 200]);
Expand All @@ -180,9 +173,10 @@ public function getAllUser() {
*/
protected function verify(Request $request) {

$user = User::findOrFail($request['id']);
$user = User::where('token', $request['token'])->first();

if ($user->hasVerifiedEmail()) {

$message['error'] = 'Daha Önceden Email Doğrulandı';

return response()->json(['message' => $message, 'code' => 422]);
Expand All @@ -192,13 +186,52 @@ protected function verify(Request $request) {

$user->active = true;

$user->token = '';

$user->save();

$setDelay = Carbon::parse($user->email_verified_at)->addSeconds(10);

Mail::queue(new \App\Mail\UserWelcome($user->name, $user->email));

$message['success'] = 'Kullanıcı Email Doğrulandı';

return response()->json(['message' => $message, 'code' => 200]);
}

/**
* Kullanıcı Login Phone Code
*
*
* @return \Illuminate\Http\JsonResponse
*/
protected function loginVerify(Request $request) {

$smsverification = $this->smsVerifcation::where('code', $request['code'])->first();

if (!$smsverification->status) {

$user = User::where('phonenumber', $smsverification->contact_number)->first();

$message['success'] = "Kullanıcı giriş Yaptı";
$message['token'] = $user->createToken('MyApp')->accessToken;
$message['token_type'] = 'Bearer';
$message['experies_at'] = Carbon::parse(Carbon::now()->addWeeks(1))->toDateTimeString();

$smsverification->status = true;

$smsverification->save();

return response()->json(['message' => $message, 'code' => 200]);

}

$message['error'] = "Kullanıcı Kod Geçersiz";

return response()->json(['message' => $message, 'code' => 400]);

}

/**
* Yeniden Mail Gönderme
*
Expand Down Expand Up @@ -255,4 +288,38 @@ protected function credentials(Request $request) {
}
return $request->only($this->username(), 'password');
}

/**
*
*
*/
protected function twilloApi($value) {

$accountSid = config('app.twilio')['TWILIO_ACCOUNT_SID'];
$authToken = config('app.twilio')['TWILIO_AUTH_TOKEN'];
try
{
$client = new Client($accountSid, $authToken);
$result = $client->messages->create(

'+905535345272',
array(
'from' => '+17868286138',
'body' => 'Code:' . $value->code,
)

);

$mesaj = "Mesaj Başarıyla Gönderildi";

$message['success'] = 'Mesaj Başarıyla Gönderildi';

return response()->json(['message' => $message, 'code' => 200]);
} catch (Exception $e) {
$message['error'] = "Error: " . $e->getMessage();

return response()->json(['message' => $message, 'code' => 401]);
}

}
}
Loading

0 comments on commit 5cbb434

Please sign in to comment.