public postConfirmMail ( Illuminate\Http\Request $request ) : Xpressengine\Presenter\RendererInterface | ||
$request | Illuminate\Http\Request | |
return | Xpressengine\Presenter\RendererInterface |
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]);
}