/** * @throws \Exception */ public function handle() { SendEmail::send($this->email); }
/** * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function send(Request $request) { $handleRequest = $this->repository->validateRequest($request); if (is_array($handleRequest)) { throw new StoreResourceFailedException('Invalid request', $handleRequest); } else { try { $options = $request->all(); $email = $this->repository->customFill($options); if ($email->send_type) { $method = strtoupper($email->send_type) == Email::SEND_TYPE_SYNC ? 'send' : 'queue'; } else { $method = env('MAIL_SEND_TYPE'); } $email->send_type = $method; if (isset($options['save']) && $options['save'] === true) { $email->save(); } elseif (env('MAIL_SAVE') === true || strtoupper($method) == Email::SEND_TYPE_QUEUE) { $email->save(); } $serviceEmail = new SendEmail(); $serviceEmail->handleEmailType($email, $method); return $this->response->created(); } catch (\Exception $e) { return $this->response->error($e->getMessage(), 422); } } }