update marketing
All checks were successful
All checks were successful
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\MarketingAddon\App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Modules\MarketingAddon\App\Exports\SmsGatewayExport;
|
||||
use Modules\MarketingAddon\App\Models\GatewayType;
|
||||
use Modules\MarketingAddon\App\Models\Smsgateway;
|
||||
|
||||
class AcnooSmsGatewayController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$gateways = Smsgateway::with('type:id,name')
|
||||
->where('business_id', auth()->user()->business_id)
|
||||
->when($request->filled('channel'), function ($q) use ($request) {
|
||||
$q->where('channel', $request->channel);
|
||||
})
|
||||
->when($request->filled('search'), function ($q) use ($request) {
|
||||
$q->where(function ($query) use ($request) {
|
||||
$query->where('name', 'like', '%' . $request->search . '%')
|
||||
->orWhereHas('type', function ($type) use ($request) {
|
||||
$type->where('name', 'like', '%' . $request->search . '%');
|
||||
});
|
||||
});
|
||||
})
|
||||
->latest()
|
||||
->paginate($request->per_page ?? 20)
|
||||
->appends($request->query());
|
||||
|
||||
if ($request->ajax()) {
|
||||
return response()->json([
|
||||
'data' => view('marketingaddon::sms-gateways.datas', compact('gateways'))->render()
|
||||
]);
|
||||
}
|
||||
|
||||
return view('marketingaddon::sms-gateways.index', compact('gateways'));
|
||||
}
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
$types = GatewayType::where('channel', $request->channel)
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
return view('marketingaddon::sms-gateways.create', compact('types'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'status' => 'required|integer',
|
||||
'params' => 'required|array',
|
||||
'params.*' => 'required|string',
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('smsgateways')->where(function ($q) {
|
||||
return $q->where('business_id', auth()->user()->business_id);
|
||||
}),
|
||||
],
|
||||
'type_id' => 'required|exists:gateway_types,id',
|
||||
]);
|
||||
|
||||
$type = GatewayType::findOrFail($request->type_id);
|
||||
|
||||
Smsgateway::create($request->all() + [
|
||||
'driver' => $type->driver,
|
||||
'namespace' => $type->namespace,
|
||||
'business_id' => auth()->user()->business_id
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => __(':channel gateway created successfully.', ['channel' => ucfirst($request->channel)]),
|
||||
'redirect' => route('business.sms-gateways.index', ['channel' => $request->channel])
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(string $id)
|
||||
{
|
||||
$gateway = Smsgateway::findOrFail($id);
|
||||
$gateway->update(['status' => !$gateway->status]);
|
||||
return response()->json(['message' => 'Sms gateway']);
|
||||
}
|
||||
|
||||
public function edit(Request $request, string $id)
|
||||
{
|
||||
$types = GatewayType::where('channel', $request->channel)->latest()->get();
|
||||
$gateway = Smsgateway::where('business_id', auth()->user()->business_id)->findOrFail($id);
|
||||
|
||||
return view('marketingaddon::sms-gateways.edit', compact('gateway', 'types'));
|
||||
}
|
||||
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
$request->validate([
|
||||
'status' => 'required|integer',
|
||||
'params' => 'required|array',
|
||||
'params.*' => 'required|string',
|
||||
'type_id' => 'required|exists:gateway_types,id',
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('smsgateways', 'name')->ignore($id)->where(function ($q) {
|
||||
return $q->where('business_id', auth()->user()->business_id);
|
||||
}),
|
||||
],
|
||||
]);
|
||||
|
||||
$type = GatewayType::findOrFail($request->type_id);
|
||||
$gateway = Smsgateway::findOrFail($id);
|
||||
|
||||
$gateway->update($request->all() + [
|
||||
'driver' => $type->driver,
|
||||
'namespace' => $type->namespace
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'message' => __(':channel gateway updated successfully.', ['channel' => ucfirst($request->channel)]),
|
||||
'redirect' => route('business.sms-gateways.index', ['channel' => $request->channel])
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(Request $request, string $id)
|
||||
{
|
||||
Smsgateway::where('id', $id)->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => __(':channel gateway deleted successfully.', ['channel' => ucfirst($request->channel)]),
|
||||
'redirect' => route('business.sms-gateways.index', ['channel' => $request->channel])
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteAll(Request $request)
|
||||
{
|
||||
Smsgateway::whereIn('id', $request->ids)->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => __('Selected :channel gateway deleted successfully.', ['channel' => $request->channel]),
|
||||
'redirect' => route('business.sms-gateways.index', ['channel' => $request->channel])
|
||||
]);
|
||||
}
|
||||
|
||||
public function exportExcel()
|
||||
{
|
||||
return Excel::download(new SmsGatewayExport, 'sms-gateway.xlsx');
|
||||
}
|
||||
|
||||
public function exportCsv()
|
||||
{
|
||||
return Excel::download(new SmsGatewayExport, 'sms-gateway.csv');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user