Viewing file: DeviceController.php (4.71 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller; use App\Models\CustomerPlan; use App\Models\Device; use App\Models\Message; use App\Models\MessageLog; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Log;
class DeviceController extends Controller { public function store(Request $request) {
$validator = Validator::make($request->all(), [ 'name' => 'required', 'model' => 'required', 'android_version' => 'required', 'app_version' => 'required', 'device_unique_id' => 'required|string', 'sim_info' => 'required|array', // x:y:z => x=SimSlotIndex, y=SubscriberId, z=SimDisplayName ]);
if ($validator->fails()) { return response()->json(['message' => $validator->errors()->messages()], 400); } $user = auth()->user(); if($user->type=='staff'){ $user=$user->staff; }
$existingDevice = Device::where('device_unique_id', $request->device_unique_id)->where('customer_id', $user->id)->first(); if ($existingDevice) { $existingDevice->sim_info = json_encode($request->sim_info); $existingDevice->save(); return response()->json(['message' => 'Device already added'], 200); } $customer = auth()->user(); $currentPlan = $customer->currentPlan(); if (isset($currentPlan->renew_date) && $currentPlan->renew_date < Carbon::now()){ return response()->json(['message' => 'Your Plan has expired'], 400); }
$devices = Device::where('customer_id',$user->id)->where('device_type', 'device')->count(); $plan = $user->currentPlan(); if (($devices) >= $plan->device_limit) { return response()->json(['message' => 'Your have extended your Device limit'], 400); }
$device = new Device(); $device->name = $request->name; $device->model = $request->model; $device->android_version = $request->android_version; $device->app_version = $request->app_version; $device->customer_id = $user->id; $device->status = 'active'; $device->device_unique_id = $request->device_unique_id; $device->sim_info = json_encode($request->sim_info); $device->save();
return response()->json(['message' => 'Device successfully added'], 201); }
public function getDevices(){ $user = auth()->user(); if($user->type=='staff'){ $user=$user->staff; } $devices = $user->devices()->get(); return response()->json(['status'=>'success', 'data'=>$devices]); }
public function changeDeviceStatus(Request $request){
$validator = Validator::make($request->all(), [ 'device_id' => 'required', 'status' => 'required|in:active,inactive' ]);
if ($validator->fails()) { return response()->json(['message' => $validator->errors()->messages()], 400); }
Device::where('device_unique_id',$request->device_id)->update(['status'=>$request->status]);
return response()->json(['status'=>'success', 'message'=>'Device status changed successfully']); }
public function inbound(Request $request){ $validator = Validator::make($request->all(), [ 'from' => 'required', 'to' => 'required', 'message' => 'required' ]);
if ($validator->fails()) { return response()->json(['message' => $validator->errors()->messages()], 400); }
$device=Device::where('device_unique_id',$request->to)->first(); if(!$device){ return response()->json(['message' => "Device not found"], 400); }
// $request['from']=getPhoneNumberWithDialCode($request->from);
$message=new Message(); $message->customer_id=$device->customer_id; $message->body=$request->message; $message->numbers=json_encode(['from'=>$request->from,'to'=>[$request->to]]); $message->type='inbox'; $message->read='yes'; $message->schedule_completed='yes'; $message->save();
$messageLog=new MessageLog(); $messageLog->customer_id=$message->customer_id; $messageLog->message_id=$message->id; $messageLog->body=$message->body; $messageLog->from=$request->from; $messageLog->device_unique_id=$device->device_unique_id; $messageLog->to=$device->id; $messageLog->type='inbox'; $messageLog->status='succeed'; $messageLog->save();
return response()->json(['message' => "Inbound received successfully"]);
} }
|