228 lines
7.4 KiB
PHP
228 lines
7.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Mobile;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\TacCode;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\User;
|
|
use DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
class UserController extends Controller
|
|
{
|
|
public function getProfileUser(Request $request)
|
|
{
|
|
$user = Auth::user();
|
|
|
|
if ($user) {
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => [$user]
|
|
], 200);
|
|
} else {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'Unauthorized'
|
|
], 401);
|
|
}
|
|
}
|
|
public function updateProfileUser(Request $request){
|
|
|
|
$validator = Validator::make($request->all(), [
|
|
'nokp' => 'required'
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return response($validator->errors(), 201);
|
|
}
|
|
|
|
$currentdate = Carbon::now()->toDateTimeString();
|
|
|
|
$user_update = User::where('nokp','=',$request->nokp)
|
|
->update([
|
|
'bank_acc_pembeli' => $request->bank_acc_pembeli,
|
|
'bank_acc_no_pembeli' => $request->bank_acc_no_pembeli,
|
|
'alamat' => $request->alamat,
|
|
'notelbimbit' => $request->notelbimbit,
|
|
'notelpejabat' => $request->notelpejabat,
|
|
'email' => $request->email,
|
|
'updated_at' => $currentdate
|
|
]);
|
|
|
|
return response()->json($user_update);
|
|
}
|
|
|
|
public function changePassword(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'current_password' => 'required',
|
|
'new_password' => 'required|string|min:8',
|
|
'confirm_new_password' => 'required|string|min:8',
|
|
], [
|
|
'current_password.required' => ['status' => '1', 'message' => 'Sila isi kata laluan asal.'],
|
|
'new_password.required' => ['status' => '2', 'message' => 'Sila isi kata laluan baharu.'],
|
|
'new_password.min' => [
|
|
'string' => [
|
|
'status' => 3,
|
|
'message' => 'Kata laluan baharu mestilah melebihi 8 karakter.',
|
|
]
|
|
],
|
|
'confirm_new_password.required' => ['status' => '4', 'message' => 'Sila isi pengesahan kata laluan baharu.'],
|
|
'confirm_new_password.min' => [
|
|
'string' => [
|
|
'status' => 5,
|
|
'message' => 'Pengesahan kata laluan baharu mestilah melebihi 8 karakter.',
|
|
]
|
|
],
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
$all_errors = [
|
|
'success' => false,
|
|
'message' => $validator->errors()
|
|
];
|
|
return response($all_errors, 201);
|
|
}
|
|
|
|
if (!(Hash::check($request->get('current_password'), Auth::user()->password))) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => [
|
|
'current_password' => [
|
|
0 => [
|
|
'status' => 9,
|
|
'message' => 'Kata laluan asal salah.'
|
|
]
|
|
]
|
|
]
|
|
]);
|
|
}
|
|
|
|
if (strcmp($request->get('current_password'), $request->get('new_password')) == 0) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => [
|
|
'current_password' => [
|
|
0 => [
|
|
'status' => 8,
|
|
'message' => 'Kata laluan baharu tidak boleh sama dengan kata laluan asal.'
|
|
]
|
|
]
|
|
]
|
|
]);
|
|
}
|
|
|
|
if (strcmp($request->get('new_password'), $request->get('confirm_new_password')) != 0) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => [
|
|
'current_password' => [
|
|
0 => [
|
|
'status' => 12,
|
|
'message' => 'Kata laluan baharu tidak sama dengan pengesahan kata laluan baharu.'
|
|
]
|
|
]
|
|
]
|
|
]);
|
|
}
|
|
|
|
$validated_password = $validator->validated();
|
|
|
|
$user = Auth::user();
|
|
$user->password = bcrypt($validated_password['new_password']);
|
|
$user->save();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'status' => 55,
|
|
'message' => 'Kata laluan berjaya diubah'
|
|
]);
|
|
}
|
|
|
|
public function requestTac(Request $request)
|
|
{
|
|
|
|
$current = Carbon::now();
|
|
|
|
$date = $current->toDateTimeString();
|
|
$current_date = strtotime($date);
|
|
$future_date = $current_date + (60 * 2);
|
|
$expired_date_formated = date("Y-m-d H:i:s", $future_date);
|
|
|
|
$tac_code = rand(100000, 999999);
|
|
|
|
$check_status_phone_number = TacCode::where('phone_number', $request->phone_number)
|
|
->where('status', 0)
|
|
->where('expired_at', '>', $date)
|
|
->first();
|
|
if ($check_status_phone_number) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'The phone number already request for tac code. Please wait 2 minute from request time for the session to end.',
|
|
'response' => $check_status_phone_number
|
|
]);
|
|
}
|
|
|
|
Http::get('http://gateway.onewaysms.com.my:10001/api.aspx', [
|
|
'apiusername' => config('app.one_way_sms_username'),
|
|
'apipassword' => config('app.one_way_sms_password'),
|
|
'senderid' => 'INFO',
|
|
'mobileno' => $request->phone_number,
|
|
'message' => '[ArrahnBid]: '. $tac_code .' is your TAC code. The code is valid for 2 minutes.',
|
|
'languagetype' => 1
|
|
]);
|
|
|
|
$tac_code_model = new TacCode();
|
|
$tac_code_model->tac_code = $tac_code;
|
|
$tac_code_model->phone_number = $request->phone_number;
|
|
$tac_code_model->case_code = 1;
|
|
$tac_code_model->case_description = 'Verify Phone Number';
|
|
$tac_code_model->expired_at = $expired_date_formated;
|
|
$tac_code_model->save();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Tac Sent!',
|
|
'response' => $tac_code_model
|
|
]);
|
|
}
|
|
|
|
public function verifyTac(Request $request)
|
|
{
|
|
$current = Carbon::now();
|
|
$current_date_time = $current->toDateTimeString();
|
|
|
|
$tac_code = TacCode::query()
|
|
->where('tac_code', $request->tac_code)
|
|
->where('phone_number', $request->phone_number)
|
|
->where('expired_at', '>=', $current_date_time)
|
|
->where('status', 0)
|
|
->first();
|
|
|
|
if ($tac_code) {
|
|
$user = Auth::user();
|
|
$user->notelbimbit = $request->phone_number;
|
|
$user->save();
|
|
|
|
$tac_code->status = 1;
|
|
$tac_code->save();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Update successful!',
|
|
'user' => $user
|
|
]);
|
|
} else {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'Error unexpected!',
|
|
]);
|
|
}
|
|
}
|
|
}
|