File: /home/xedaptot/ai.naniguide.com/app/Http/Controllers/Refactor/FunnelDomainController.php
<?php
namespace App\Http\Controllers\Refactor;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\Funnel;
use App\Model\FunnelDomain;
use Validator;
class FunnelDomainController extends Controller
{
public function store(Request $request, $funnelUid)
{
$funnel = Funnel::ofCustomer($request->user()->customer)
->notTemplate()
->where('uid', $funnelUid)->first();
if (!$funnel) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
$validator = Validator::make($request->all(), [
'domain' => 'required|max:255|unique:funnel_domains,domain',
]);
if ($validator->fails()) {
return response()->json([
'status' => 'error',
'errors' => $validator->errors()->toArray(),
], 422);
}
$domain = new FunnelDomain();
$domain->funnel_id = $funnel->id;
$domain->customer_id = $request->user()->customer->id;
$domain->domain = $request->domain;
$domain->generateVerificationToken();
$domain->save();
return response()->json([
'status' => 'success',
'message' => trans('refactor/funnels.flash.domain_added'),
]);
}
public function verify(Request $request, $uid)
{
$domain = FunnelDomain::where('customer_id', $request->user()->customer->id)
->where('uid', $uid)->first();
if (!$domain) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
$result = $domain->verify();
return response()->json([
'status' => 'success',
'verified' => $domain->isVerified(),
'message' => $domain->isVerified()
? trans('refactor/funnels.flash.domain_verified')
: trans('refactor/funnels.flash.domain_not_verified'),
]);
}
public function delete(Request $request, $uid)
{
$domain = FunnelDomain::where('customer_id', $request->user()->customer->id)
->where('uid', $uid)->first();
if (!$domain) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
$domain->delete();
return response()->json([
'status' => 'success',
'message' => trans('refactor/funnels.flash.domain_deleted'),
]);
}
}