Wire seller push notifications with FCM, inbox API, and payment milestones.
Deploy Ladill Mini / deploy (push) Successful in 52s
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>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
<?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]]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user