. */ namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Account; use App\Http\Controllers\Account\AuthenticateController as WebAuthenticateController; class AccountController extends Controller { /** * Public information on a specific account */ public function info(Request $request, string $sip) { $account = Account::sip($sip)->firstOrFail(); return \response()->json([ 'activated' => $account->activated ]); } public function activateEmail(Request $request, string $sip) { $request->validate([ 'code' => 'required|size:'.WebAuthenticateController::$emailCodeSize ]); $account = Account::sip($sip) ->where('confirmation_key', $request->get('code')) ->firstOrFail(); $account->activated = true; $account->confirmation_key = null; $account->save(); return $account; } public function activatePhone(Request $request, string $sip) { $request->validate([ 'code' => 'required|digits:4' ]); $account = Account::sip($sip) ->where('confirmation_key', $request->get('code')) ->firstOrFail(); $account->activated = true; $account->confirmation_key = null; $account->save(); return $account; } public function show(Request $request) { return Account::where('id', $request->user()->id) ->without(['api_key', 'email_changed.new_email']) ->first(); } public function delete(Request $request) { return Account::where('id', $request->user()->id) ->delete(); } }