Deploy Ladill Mini / deploy (push) Successful in 52s
Sellers get instant payment alerts on Android; withdrawals respect payout prefs. Co-authored-by: Cursor <cursoragent@cursor.com>
52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\Mini;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\UserPushToken;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class PushTokenController extends Controller
|
|
{
|
|
public function store(Request $request): JsonResponse
|
|
{
|
|
$data = $request->validate([
|
|
'token' => ['required', 'string', 'max:512'],
|
|
'platform' => ['nullable', 'string', 'max:32'],
|
|
'device_name' => ['nullable', 'string', 'max:120'],
|
|
]);
|
|
|
|
$user = $request->user();
|
|
$now = now();
|
|
|
|
UserPushToken::updateOrCreate(
|
|
['token' => $data['token']],
|
|
[
|
|
'user_id' => $user->id,
|
|
'platform' => $data['platform'] ?? 'android',
|
|
'device_name' => $data['device_name'] ?? $user->currentAccessToken()?->name,
|
|
'last_seen_at' => $now,
|
|
],
|
|
);
|
|
|
|
$user->update(['last_app_active_at' => $now]);
|
|
|
|
return response()->json(['data' => ['registered' => true]]);
|
|
}
|
|
|
|
public function destroy(Request $request): JsonResponse
|
|
{
|
|
$data = $request->validate([
|
|
'token' => ['required', 'string', 'max:512'],
|
|
]);
|
|
|
|
$request->user()
|
|
->pushTokens()
|
|
->where('token', $data['token'])
|
|
->delete();
|
|
|
|
return response()->json(['data' => ['removed' => true]]);
|
|
}
|
|
}
|