public updateMainMail ( Illuminate\Http\Request $request ) : Xpressengine\Presenter\RendererInterface | ||
$request | Illuminate\Http\Request | |
Résultat | Xpressengine\Presenter\RendererInterface |
public function updateMainMail(Request $request)
{
$address = $request->get('address');
if ($this->user->email === $address) {
$e = new InvalidArgumentException();
$e->setMessage('기존 대표 이메일과 동일합니다.');
throw $e;
}
$selected = null;
foreach ($this->user->emails as $mail) {
if ($mail->address === $address) {
$selected = $mail;
break;
}
}
// 해당회원이 가진 이메일이 아닐 경우 예외처리한다.
if ($selected === null) {
$e = new InvalidArgumentException();
$e->setMessage('존재하지 않는 이메일입니다.');
throw $e;
}
$this->user->email = $address;
XeDB::beginTransaction();
try {
$this->users->update($this->user);
} catch (\Exception $e) {
XeDB::rollback();
}
XeDB::commit();
\Session::flash('alert', ['type' => 'success', 'message' => '수정되었습니다.']);
return XePresenter::makeApi(['message' => '수정되었습니다']);
}