Files
anonaddy/app/Http/Controllers/Api/UsernameController.php
Will Browning 8d6ddb4434 Rebrand update
2023-10-04 11:32:39 +01:00

67 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreUsernameRequest;
use App\Http\Requests\UpdateUsernameRequest;
use App\Http\Resources\UsernameResource;
class UsernameController extends Controller
{
public function index()
{
return UsernameResource::collection(user()->usernames()->with(['aliases', 'defaultRecipient'])->latest()->get());
}
public function show($id)
{
$username = user()->usernames()->findOrFail($id);
return new UsernameResource($username->load(['aliases', 'defaultRecipient']));
}
public function store(StoreUsernameRequest $request)
{
if (user()->hasReachedUsernameLimit()) {
return response('', 403);
}
$username = user()->usernames()->create(['username' => $request->username]);
user()->increment('username_count');
return new UsernameResource($username->refresh()->load(['aliases', 'defaultRecipient']));
}
public function update(UpdateUsernameRequest $request, $id)
{
$username = user()->usernames()->findOrFail($id);
if ($request->has('description')) {
$username->description = $request->description;
}
if ($request->has('from_name')) {
$username->from_name = $request->from_name;
}
$username->save();
return new UsernameResource($username->refresh()->load(['aliases', 'defaultRecipient']));
}
public function destroy($id)
{
if ($id === user()->default_username_id) {
return response('You cannot delete your default username', 403);
}
$username = user()->usernames()->findOrFail($id);
$username->delete();
return response('', 204);
}
}