Files
lelong/app/Http/Controllers/Mobile/UserController.php
T
2023-06-08 13:36:32 +08:00

183 lines
6.0 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){
$getUserNokp = User::where('nokp', $request->nokp)
// ->join('file', function ($join) {
// $join->on('users.id', '=', 'file.user_id');
// })
->get();
if ($getUserNokp->isNotEmpty()) {
return response()->json(['success' => true , 'message' => $getUserNokp], 201);
}
else {
return response()->json(['success' => false, 'message' => 'Empty data'], 201);
}
}
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 * 5);
$expired_date_formated = date("Y-m-d H:i:s", $future_date);
$tac_code = rand(100000, 999999);
Http::get('http://gateway.onewaysms.com.my:10001/api.aspx', [
'apiusername' => 'APIUK330HDAFO',
'apipassword' => 'APIUK330HDAFOUK330',
'senderid' => 'INFO',
'mobileno' => $request->phone_number,
'message' => '[ArrahnBid]: '. $tac_code .' is your TAC code. The code is valid for 5 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!'
]);
}
}