Viewing file: NumberController.php (5.3 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller; use App\Models\BillingRequest; use App\Models\CustomerNumber; use App\Models\NumberRequest; use App\Models\Plan; use App\Models\Customer; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Carbon;
class NumberController extends Controller {
public function updateForwardTo(Request $request){
$numbers = auth('customer')->user()->numbers()->where('id',$request->id)->first(); if(!$numbers) return redirect()->back()->withErrors(['msg'=>'Number not found']);
$numbers->forward_to_dial_code=$request->forward_to_dial_code; $numbers->forward_to=$request->forward_to; $numbers->save(); return redirect()->back()->with('success','Forward number updated successfully'); }
// CRUD public function index(){ return view('customer.numbers.index'); }
public function getAll(){ $customers=auth('customer')->user()->numbers()->select(['id','type','number','forward_to','forward_to_dial_code','webhook_method','dynamic_gateway_id','status','created_at'])->orderByDesc('created_at'); return datatables()->of($customers) ->addColumn('created_at',function($q){ return $q->created_at->format('d-m-Y'); }) ->addColumn('type',function($q){ return str_replace('_','',ucwords($q->type)); }) ->addColumn('number',function($q){ return $q->number; }) ->addColumn('forward_to_dial_code',function($q){ return $q->forward_to_dial_code; }) ->addColumn('forward_to',function($q){ return $q->forward_to; }) ->addColumn('webhook_method',function($q){ return $q->webhook_method; }) ->addColumn('from',function($q){ return $q->gateway->name; }) ->addColumn('status',function($q){ if($q->status=='active') { $status = '<b class="text-success font-weight-bold">' . ucfirst($q->status) . '</b>'; }else{ $status = '<b class="text-danger font-weight-bold">' . ucfirst($q->status) . '</b>'; } return $status; }) ->addColumn('action',function($q){ return "<a class='btn btn-sm btn-info' href='".route('customer.numbers.edit',[$q->id])."'>Edit</a> ". '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this number?" data-action='.route('customer.numbers.destroy',[$q]).' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button>' ; }) ->rawColumns(['action','status']) ->toJson(); }
public function create(){ $data['gateways']=auth('customer')->user()->gateways()->where('status', 'active')->get();
return view('customer.numbers.create', $data); }
public function store(Request $request){ $request->validate([ 'number'=>'required|unique:customer_numbers', 'dynamic_gateway_id'=>'required', 'status'=>'required|in:active,inactive', 'type'=>'required|in:number,sender_id,whatsapp,voice', ]);
if (is_int($request->number)) { $request['number'] = "+" . str_replace('+', '', $request->number); } else { $request['number'] = $request->number; } $gateway=auth('customer')->user()->gateways()->where('id', $request->dynamic_gateway_id)->firstOrFail();
auth('customer')->user()->numbers()->create(['type'=>$request->type,'number' => $request->number, 'forward_to_dial_code' => $request->forward_to_dial_code, 'forward_to' > $request->forward_to, 'webhook_url' => $request->webhook_url, 'webhook_method' => $request->webhook_method,'dynamic_gateway_id'=>$gateway->id]);
return redirect()->route('customer.numbers.index')->with('success','Number successfully created'); }
public function edit(CustomerNumber $number){ $data['number']=$number; $allgateWays=[]; foreach(getAllSmsGateway() as $gateway){ $credentials = json_decode(get_settings($gateway)); if ($credentials) { $allgateWays[] = $gateway; } }
$data['allgateWays']=$allgateWays; return view('customer.numbers.edit',$data); }
public function update(CustomerNumber $number,Request $request){ $request->validate([ 'status'=>'required|in:active,inactive', 'type'=>'required|in:number,sender_id,whatsapp,voice', ]);
$valid_data=$request->only('type','forward_to_dial_code','forward_to','status','webhook_method','webhook_url'); //update the model $number->update($valid_data);
return redirect()->route('customer.numbers.index')->with('success','Number successfully updated'); } public function destroy(CustomerNumber $number){ $number->delete(); return back()->with('success','Number successfully deleted'); } }
|