Şimdi arkadaşlar kodlarım aşağıda ki gibi ama ben mantık kuramadım tam olarak. Api den bana kullanıcı bilgileri geliyor ben bunları veri tabanına kaydedip token dönüyorum giriş yapması için fakat ben bu kullanıcıya gelen bilgilerin yanı sıra bir de sms doğrulaması eklemek istiyorum numara doğrulaması için.
Direk createBusiness çalıştığın dan kullanıcı direk ekleniyor. verification'a istek attırayım diyorum bu sefer sms gider doğrulama için tekrar gelmesi gerekir tekrar sms gider saçma oluyor. Yani olay örgüsünü oluşturamadım kafam da umarım anlatabilmişimdir. Api ye istek atıldığın da hem kullanıcıyı oluşturmalıyım hem de sms ile gönderilen kodu doğrulayıp bilgileri veri tabanına işlemeliyim. Aşağıda ki kodu şuanlık öylesine yazdım kafam da bir şeyler oturtmak adına. Verification kısmını.
public function verification($userInformation){
if ($userInformation) {
$code = rand(10000, 99999);
$smsBody = [
'body' => 'eDanisman Raporu İndirebilmeniz için Gerekli Kod : ' . $code,
'to' => preg_replace('/[^0-9]/', '', $userInformation['phone_number']),
];
$send = new Netgsm;
$send->sendSms($smsBody['to'], $smsBody['body']);
return response()->json([
'type' => 'code',
'code' => $code
],200);
}
}
private function registerWebinar($user){
$registerData = $user->toArray();
$registerData['first_name'] = $user->input('first_name');
$registerData['last_name'] = $user->input('last_name');
$registerData['email'] = $user->input('email');
$registerData['phone_number'] = $user->input('phone_number');
$registerData['reports_name'] = $user->input('reports_name');
$registerData['downloaded_date'] = now();
$full_name= $registerData['first_name']." ".$registerData['last_name'];
WebinarReports::create($registerData);
$mailData = [
'full_name' => $full_name,
'email'=>$registerData['email'],
'phone_number'=>$registerData['phone_number'],
'reports_name'=>$registerData['reports_name']
];
Mail::queue(new WebinarDowloadedInformation($mailData));
}
public function createBusiness(Request $request)
{
$validator = Validator::make($request->all(), [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email',
'phone_number' => 'required',
'reports_name' => 'required',
]);
if ($validator->fails()) {
return response()->json([
'message' => $validator->errors(),
'status' => false,
], 400);
}
$this->registerWebinar($request);
$this->verification($request);
$userLogin = User::whereEmail($request->email)->first();
$registerData = $request->toArray();
if (is_null($userLogin)) {
$registerData['password'] = \Hash::make($request->input('password'));
$registerData['first_name'] = $request->input('first_name');
$registerData['last_name'] = $request->input('last_name');
$registerData['email'] = $request->input('email');
$registerData['phone_number'] = $request->input('phone_number');
$registerData['confirmation_code'] = md5(uniqid(mt_rand(), true));
$registerData['expired_at'] = Carbon::now()->addDays(21);
$registerData['confirmed'] = 1;
$registerData['partner_token_id'] = 4;
$user = User::create($registerData);
$user->assignRole('business');
//token oluşturma ve gönderme
$user_id = $user->id;
$user = User::where('id', $user_id)->where('partner_token_id', 4)->first();
if ($user) {
auth()->shouldUse('api');
if ($request->remember_me) {
$token = auth()->setTTL(43200)->login($user);
} else {
$token = auth()->login($user);
}
if ($token) {
$user->update([
'last_login' => Carbon::now(),
'auth_key' => $token,
]);
$user->token = $token;
return response()->json([
'message' => 'Token Created Login can be done with this token.',
'data' => [
'token' => $user->token
],
'status' => true,
], 200);
}
}
} else {
try {
$user_id = $userLogin->id;
$user = User::where('id', $user_id)->where('partner_token_id', 4)->firstOrFail();
if ($user) {
auth()->shouldUse('api');
if ($request->remember_me) {
$token = auth()->setTTL(43200)->login($user);
} else {
$token = auth()->login($user);
}
if ($token) {
$user->update([
'last_login' => Carbon::now(),
'auth_key' => $token,
]);
$user->token = $token;
return response()->json([
'message' => 'The user already exists. Login can be done with token.',
'data' => [
'token' => $user->token
],
'status' => true,
], 200);
}
}
}
catch (\Exception $exception){
return response()->json([
'message' => 'Contact the System Administrator..',
'data' => [
'token' => null
],
'status' => false,
], 404);
}
}
}