public function postConfirmMail(Request $request) { $pendingEmail = $this->handler->pendingEmails()->find($request->get('id')); if ($pendingEmail === null) { $e = new InvalidArgumentHttpException(); $e->setMessage('존재하지 않거나 이미 승인된 이메일입니다.'); throw $e; } $user = $pendingEmail->user; $address = $pendingEmail->address; XeDB::beginTransaction(); try { // create pending email $email = $this->handler->emails()->create($user, compact('address')); // remove pending email $this->handler->pendingEmails()->delete($pendingEmail); } catch (Exception $e) { XeDB::rollBack(); throw $e; } XeDB::commit(); return XePresenter::makeApi(['mail' => $email]); }