Fix Direct Message conversations endpoint on postgres instances

This commit is contained in:
Daniel Supernault 2022-01-05 18:30:58 -07:00
parent ddf41dc347
commit fcabc9be02
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -1701,6 +1701,17 @@ class ApiV1Controller extends Controller
$scope = $request->input('scope', 'inbox'); $scope = $request->input('scope', 'inbox');
$pid = $request->user()->profile_id; $pid = $request->user()->profile_id;
if(config('database.default') == 'pgsql') {
$dms = DirectMessage::when($scope === 'inbox', function($q, $scope) use($pid) {
return $q->whereIsHidden(false)->whereToId($pid)->orWhere('from_id', $pid);
})
->when($scope === 'sent', function($q, $scope) use($pid) {
return $q->whereFromId($pid);
})
->when($scope === 'requests', function($q, $scope) use($pid) {
return $q->whereToId($pid)->whereIsHidden(true);
});
} else {
$dms = DirectMessage::when($scope === 'inbox', function($q, $scope) use($pid) { $dms = DirectMessage::when($scope === 'inbox', function($q, $scope) use($pid) {
return $q->whereIsHidden(false)->whereToId($pid)->orWhere('from_id', $pid)->groupBy('to_id'); return $q->whereIsHidden(false)->whereToId($pid)->orWhere('from_id', $pid)->groupBy('to_id');
}) })
@ -1709,8 +1720,10 @@ class ApiV1Controller extends Controller
}) })
->when($scope === 'requests', function($q, $scope) use($pid) { ->when($scope === 'requests', function($q, $scope) use($pid) {
return $q->whereToId($pid)->whereIsHidden(true); return $q->whereToId($pid)->whereIsHidden(true);
}) });
->latest() }
$dms = $dms->latest()
->simplePaginate($limit) ->simplePaginate($limit)
->map(function($dm) use($pid) { ->map(function($dm) use($pid) {
$from = $pid == $dm->to_id ? $dm->from_id : $dm->to_id; $from = $pid == $dm->to_id ? $dm->from_id : $dm->to_id;