Implemented Model,logic and response for inbox messages.

This commit is contained in:
Vari
2024-05-26 04:11:40 +02:00
parent eea8a235d8
commit 365ba978c0
12 changed files with 185 additions and 8 deletions

View File

@@ -3,8 +3,11 @@
namespace App\Http\Controllers\Api\Player;
use App\Http\Controllers\Controller;
use App\Models\Game\Inbox\InboxMessage;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
class InboxController extends Controller
{
@@ -13,9 +16,42 @@ public function count(Request $request) {
abort(403, 'You are not logged in');
$flag = $request->input('flag');
$user = Auth::user();
//TODO: Add Model Retrieving logic
$query = $user->inboxMessages();
return ['count' => 0];
if($flag !== null)
$query->where('flag', '=', $flag);
$count = $query->count();
return ['count' => $count];
}
public function list(Request $request) {
if (!Auth::check())
abort(403, 'You are not logged in');
$limit = $request->input('limit', 100);
$user = Auth::user();
/** @var InboxMessage[]|Collection|LengthAwarePaginator $messages */
$messages = $user->inboxMessages()->paginate($limit);
$result = [
'messages' => [],
];
foreach ($messages as $message) {
$result['messages'][] = $message->toMessageResponse();
$message->flag = 'READ';
$message->save();
}
if($messages->currentPage() < $messages->lastPage()) {
$result['nextPage'] = $messages->currentPage() + 1;
}
return $result;
}
}