mailgunService = app(MailgunService::class); // Resolving through the service container } public function addDomain($domain) { try{ // $domain = $request->input('domain'); $mailgunDomain = $this->mailgunService->getDomain($domain); if(!$mailgunDomain){ // dd($this->mailgunService->removeDomain($domain)); // dd($this->verifyDomain($request)); $response = $this->mailgunService->addDomain($domain); return route('showDomain',$domain)->redirect(); }else{ return redirect()->route('showDomain',$domain); } }catch(Exception $e){ return $e->getMessage(); } } public function showDomain($domain){ $mailgunDomain = $this->mailgunService->getDomain($domain); if($mailgunDomain){ return view('domains.verify-domain',[ 'domain' => $mailgunDomain]); }else{ return ("Domain not found"); } } public function verifyDomain(Request $request) { $domain = $request->input('domain'); $response = $this->mailgunService->verifyDomain($domain); $state = $response->getDomain()->getState(); if($state == 'unverified'){ return redirect()->route('showDomain',$domain); }elseif($state == 'active'){ $this->createRoute($request); $email = "kundesone.$domain@kundesone.no"; $this->createEmail($domain,$email); $company = get_company('domain',$domain); if($company){ $company->internal_email = $email; $company->save(); } return $email; return redirect('/dashboard'); } } public function createRoute(Request $request) { $domain = $request->input('domain'); $forwardUrl = "https://kundesone.no/api/save-email"; $response = $this->mailgunService->createRoute($domain, $forwardUrl); return $response; } public function createEmail($domain,$email){ $password = Str::random(12); $quota = 0; $response = $this->cpanelApiService->createEmailAccount($domain, $email, $password, $quota); if (isset($response['error'])) { return false; } return $email; } }