fix(mobile): resolve user avatars, chat alignment, timestamp formatting, and payslips API
This commit is contained in:
@@ -25,8 +25,13 @@ class ConversationApiController extends Controller
|
||||
->where('user_id', $user->id)
|
||||
->pluck('conversation_id');
|
||||
|
||||
$typeFilter = $request->query('type');
|
||||
|
||||
$conversations = DB::table('mobile_conversations')
|
||||
->whereIn('id', $convIds)
|
||||
->when($typeFilter, function ($query, $type) {
|
||||
return $query->where('type', $type);
|
||||
})
|
||||
->get()
|
||||
->map(function ($c) use ($user) {
|
||||
$lastMsg = DB::table('mobile_messages')
|
||||
@@ -46,12 +51,19 @@ class ConversationApiController extends Controller
|
||||
|
||||
$participants = User::whereIn('id', $participantIds)
|
||||
->select('id', 'name', 'email', 'avatar', 'type')
|
||||
->get();
|
||||
->get()
|
||||
->map(function ($u) {
|
||||
$u->avatar = check_file($u->avatar) ? get_file($u->avatar) : $u->avatar;
|
||||
return $u;
|
||||
});
|
||||
|
||||
$otherUser = $participants->firstWhere('id', '!=', $user->id);
|
||||
|
||||
return [
|
||||
'id' => $c->id,
|
||||
'type' => $c->type,
|
||||
'name' => $c->name ?? 'Direct Chat',
|
||||
'name' => $c->type === 'direct' && $otherUser ? $otherUser->name : ($c->name ?? 'Chat'),
|
||||
'avatar' => $c->type === 'direct' && $otherUser ? $otherUser->avatar : null,
|
||||
'last_message' => $lastMsg ? $lastMsg->content : 'No messages yet',
|
||||
'last_message_at' => $lastMsg && $lastMsg->created_at ? date('h:i A', strtotime($lastMsg->created_at)) : date('h:i A'),
|
||||
'unread_count' => $unreadCount,
|
||||
@@ -243,13 +255,21 @@ class ConversationApiController extends Controller
|
||||
->get()
|
||||
->map(function ($m) {
|
||||
$sender = User::find($m->sender_id);
|
||||
if ($sender && !empty($sender->avatar)) {
|
||||
$sender->avatar = get_file($sender->avatar);
|
||||
}
|
||||
return [
|
||||
'id' => $m->id,
|
||||
'conversation_id' => (int)$m->conversation_id,
|
||||
'sender_id' => $m->sender_id,
|
||||
'sender_name' => $sender ? $sender->name : 'User',
|
||||
'sender' => $sender ? [
|
||||
'id' => $sender->id,
|
||||
'name' => $sender->name,
|
||||
'avatar' => $sender->avatar,
|
||||
] : null,
|
||||
'content' => $m->content,
|
||||
'created_at' => date('h:i A', strtotime($m->created_at)),
|
||||
'created_at' => date('M d, h:i A', strtotime($m->created_at)),
|
||||
];
|
||||
});
|
||||
|
||||
@@ -301,7 +321,7 @@ class ConversationApiController extends Controller
|
||||
'sender_id' => $user->id,
|
||||
'sender_name' => $user->name,
|
||||
'content' => $request->content,
|
||||
'created_at' => date('h:i A'),
|
||||
'created_at' => date('M d, h:i A'),
|
||||
],
|
||||
'errors' => null,
|
||||
], 201);
|
||||
|
||||
Reference in New Issue
Block a user