Skip to content

Commit e6ec823

Browse files
committed
Revert "Revert "Groups memberships list updates minds#4223""
This reverts commit a760ebe.
1 parent 1f69456 commit e6ec823

File tree

10 files changed

+63
-26
lines changed

10 files changed

+63
-26
lines changed

Controllers/api/v1/groups.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Minds\Interfaces;
1313
use Minds\Api\Factory;
1414
use Minds\Core\Groups\Membership;
15+
use Minds\Core\Groups\V2\Membership\Enums\GroupMembershipLevelEnum;
1516

1617
class groups implements Interfaces\Api
1718
{
@@ -43,11 +44,21 @@ public function get($pages)
4344

4445
$loadNext = 0;
4546

47+
48+
$membershipLevel = null;
49+
if (isset($_GET['membership_level'])) {
50+
$membershipLevel = GroupMembershipLevelEnum::tryFrom((int)($_GET['membership_level']) ?? null);
51+
}
52+
53+
$membershipLevelGte = isset($_GET['membership_level_gte']) ? (bool) $_GET['membership_level_gte'] : false;
54+
4655
/** @var Core\Groups\V2\Membership\Manager */
4756
$manager = Di::_()->get(Core\Groups\V2\Membership\Manager::class);
4857
$groups = iterator_to_array($manager->getGroups(
4958
user: $user,
50-
limit: 12, // frontend client is sending 1 incorrectly
59+
membershipLevel: $membershipLevel,
60+
membershipLevelGte: $membershipLevelGte,
61+
limit: (int) $opts['limit'],
5162
offset: (int) $opts['offset'],
5263
loadNext: $loadNext,
5364
));
@@ -61,7 +72,7 @@ public function get($pages)
6172
if (!$guids) {
6273
return Factory::response([]);
6374
}
64-
75+
6576
$groups = Entities::get(['guids' => $guids]);
6677
break;
6778
}

Controllers/api/v1/groups/membership.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public function get($pages)
147147
$members[] = $userMembership;
148148
}
149149
}
150-
150+
151151
$guids = array_slice($guids, 0, 12);
152152

153153
$response['members'] = Exportable::_($members);
@@ -158,8 +158,17 @@ public function get($pages)
158158
return Factory::response([]);
159159
}
160160

161+
$membershipLevel = null;
162+
if (isset($_GET['membership_level'])) {
163+
$membershipLevel = GroupMembershipLevelEnum::tryFrom((int)($_GET['membership_level']) ?? null);
164+
}
165+
166+
$membershipLevelGte = isset($_GET['membership_level_gte']) ? (bool) $_GET['membership_level_gte'] : false;
167+
161168
$members = iterator_to_array($this->membershipManager->getMembers(
162169
group: $group,
170+
membershipLevel: $membershipLevel,
171+
membershipLevelGte: $membershipLevelGte,
163172
limit: $limit,
164173
offset: $offset,
165174
loadNext: $loadNext,

Controllers/api/v2/wire.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ public function post($pages): void
124124
}
125125

126126
try {
127-
128127
$loggedInUser = Core\Session::getLoggedInUser();
129128
$manager
130129
->setAmount((string)BigNumber::toPlain($amount, $digits))

Core/Blockchain/Wallets/OffChain/Sums.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public function getBalance()
4747

4848
if ($this->user) {
4949
$query->query(
50-
"SELECT
51-
SUM(amount) as balance
50+
"SELECT
51+
SUM(amount) as balance
5252
FROM blockchain_transactions_mainnet_by_address
5353
WHERE user_guid = ?
5454
AND wallet_address = 'offchain'",
@@ -73,7 +73,7 @@ public function getBalance()
7373
if (!$rows) {
7474
return 0;
7575
}
76-
76+
7777
return (string) BigNumber::_($rows[0]['balance']);
7878
}
7979

@@ -155,7 +155,7 @@ public function getCount(): int
155155
if (!$rows) {
156156
return 0;
157157
}
158-
158+
159159
return (string) BigNumber::_($rows[0]['count']);
160160
}
161161
}

Core/Groups/V2/Membership/Manager.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public function getMembersCount(Group $group): int
9090
* Get a groups members.
9191
* @param Group $group - group to get members for.
9292
* @param GroupMembershipLevelEnum $membershipLevel - filter by membership level, defaults to only members.
93+
* @param bool $membershipLevelGte - whether to show matches greater than the provided membership level as well
9394
* @param int $limit - limit the number of results.
9495
* @param int $offset - offset the results.
9596
* @param int|string &$loadNext - passed reference to a $loadNext variable.
@@ -98,6 +99,7 @@ public function getMembersCount(Group $group): int
9899
public function getMembers(
99100
Group $group,
100101
GroupMembershipLevelEnum $membershipLevel = null,
102+
bool $membershipLevelGte = false,
101103
int $limit = 12,
102104
int $offset = 0,
103105
int|string &$loadNext = 0
@@ -145,7 +147,8 @@ public function getMembers(
145147
groupGuid: $group->getGuid(),
146148
limit: $limit,
147149
offset: $offset,
148-
membershipLevel: $membershipLevel
150+
membershipLevel: $membershipLevel,
151+
membershipLevelGte: $membershipLevelGte
149152
) as $membership) {
150153
$user = $this->buildUser($membership->userGuid);
151154

@@ -210,10 +213,18 @@ public function getRequests(
210213

211214
/**
212215
* Returns a list of groups a user is a member of
216+
* @param User $user - user to get groups for.
217+
* @param GroupMembershipLevelEnum $membershipLevel - filter by membership level, defaults to only members.
218+
* @param bool $membershipLevelGte - whether to show matches greater than the provided membership level as well
219+
* @param int $limit - limit the number of results.
220+
* @param int $offset - offset the results.
221+
* @param int|string &$loadNext - passed reference to a $loadNext variable.
213222
* @return iterable<Group>
214223
*/
215224
public function getGroups(
216225
User $user,
226+
GroupMembershipLevelEnum $membershipLevel = null,
227+
bool $membershipLevelGte = false,
217228
int $limit = 12,
218229
int $offset = 0,
219230
int &$loadNext = 0
@@ -244,7 +255,9 @@ public function getGroups(
244255
$this->repository->getList(
245256
userGuid: $user->getGuid(),
246257
limit: $limit,
247-
offset: $offset
258+
offset: $offset,
259+
membershipLevel: $membershipLevel,
260+
membershipLevelGte: $membershipLevelGte
248261
) as $membership
249262
) {
250263
$group = $this->buildGroup($membership->groupGuid);

Core/Groups/V2/Membership/Repository.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public function getList(
6363
int $groupGuid = null,
6464
int $userGuid = null,
6565
GroupMembershipLevelEnum $membershipLevel = null,
66+
bool $membershipLevelGte = false,
6667
int $limit = 12,
6768
int $offset = 0,
6869
): iterable {
@@ -87,6 +88,8 @@ public function getList(
8788

8889
if (!$membershipLevel) {
8990
$query->where('membership_level', Operator::GTE, GroupMembershipLevelEnum::MEMBER->value);
91+
} elseif ($membershipLevelGte) {
92+
$query->where('membership_level', Operator::GTE, $membershipLevel->value);
9093
} else {
9194
$query->where('membership_level', Operator::EQ, $membershipLevel->value);
9295
}
@@ -269,11 +272,11 @@ public function getGroupsOfMutualMember(
269272
->offset($offset);
270273

271274
$prepared = $query->prepare();
272-
275+
273276
$prepared->execute([
274277
'userGuid' => $userGuid,
275278
]);
276-
279+
277280
foreach ($prepared as $row) {
278281
yield (int) $row['group_guid'];
279282
}

Helpers/SuggestCompleter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function build($values): array
4444
}, $values)
4545
)
4646
);
47-
47+
4848
$weight = count($inputs) === 1 ? 4 : 2;
4949

5050
$map = [
@@ -53,7 +53,7 @@ public function build($values): array
5353
];
5454
return $map;
5555
}
56-
56+
5757
/**
5858
* @param $inputs
5959
* @param int $calls

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Help files and parameters are available for some tasks.
1717

1818
## Default admin user
1919

20-
Minds ships with a local user ready to roll.
20+
Minds ships with a local user ready to roll.
2121
* username: minds
2222
* password: Pa$$w0rd
2323

@@ -47,7 +47,7 @@ You can then manage these ENVs out on the review sites with the [Deployment Guid
4747
* To run a specific spec, include a specific spec file ```bin/phpspec run Spec/Core/Feeds/Suggested/RepositorySpec.php```
4848
* To run a specific test in a spec, include a specific spec file:line number of the test function: ```bin/phpspec run Spec/Core/Feeds/Suggested/RepositorySpec.php:82```
4949
## Contributing
50-
If you'd like to contribute to the Minds project, check out the [Contribution](https://developers.minds.com/docs/contributing/contributing/) section of Minds.org or head right over to the [Minds Open Source Community](https://www.minds.com/groups/profile/365903183068794880). If you've found or fixed a bug, let us know in the [Minds Help and Support Group](https://www.minds.com/groups/profile/100000000000000681/activity)!
50+
If you'd like to contribute to the Minds project, check out the [Contribution](https://developers.minds.com/docs/contributing/contributing/) section of Minds.org or head right over to the [Minds Open Source Community](https://www.minds.com/group/365903183068794880). If you've found or fixed a bug, let us know in the [Minds Help and Support Group](https://www.minds.com/groups/profile/100000000000000681/activity)!
5151

5252
## Security reports
5353
Please report all security issues to [[email protected]](mailto:[email protected]).

Spec/Core/Groups/V2/Membership/ManagerSpec.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public function it_should_return_count_from_legacy(Group $groupMock)
148148
public function it_should_return_members_from_legacy(Group $groupMock)
149149
{
150150
$refTime = time();
151-
151+
152152
$this->experimentsManagerMock->isOn('engine-2591-groups-memberships')->willReturn(false);
153153

154154
$groupMock->getGuid()
@@ -243,7 +243,7 @@ public function it_should_return_group_guids_from_legacy(User $userMock)
243243

244244
$userMock->getGuid()
245245
->willReturn(123);
246-
246+
247247
$this->legacyMembershipMock->getGroupGuidsByMember([ 'user_guid' => 123, 'limit' => 500 ])
248248
->willReturn([
249249
456,
@@ -307,7 +307,7 @@ public function it_should_return_members(Group $groupMock, User $userMock)
307307
membershipLevel: GroupMembershipLevelEnum::MEMBER,
308308
);
309309

310-
$this->repositoryMock->getList(123, null, null, Argument::any(), Argument::any())
310+
$this->repositoryMock->getList(123, null, null, false, Argument::any(), Argument::any())
311311
->willYield([
312312
$membership1,
313313
$membership2,
@@ -347,7 +347,7 @@ public function it_should_return_members_for_a_provided_membership_level(Group $
347347
membershipLevel: GroupMembershipLevelEnum::OWNER,
348348
);
349349

350-
$this->repositoryMock->getList(123, null, $membershipLevel, Argument::any(), Argument::any())
350+
$this->repositoryMock->getList(123, null, $membershipLevel, false, Argument::any(), Argument::any())
351351
->willYield([
352352
$membership1,
353353
$membership2,
@@ -378,7 +378,7 @@ public function it_should_return_requests(Group $groupMock, User $userMock)
378378
membershipLevel: GroupMembershipLevelEnum::REQUESTED,
379379
);
380380

381-
$this->repositoryMock->getList(123, null, GroupMembershipLevelEnum::REQUESTED, Argument::any(), Argument::any())
381+
$this->repositoryMock->getList(123, null, GroupMembershipLevelEnum::REQUESTED, false, Argument::any(), Argument::any())
382382
->willYield([
383383
$membership,
384384
$membership
@@ -409,7 +409,7 @@ public function it_should_return_groups(User $userMock, Group $groupMock)
409409
membershipLevel: GroupMembershipLevelEnum::REQUESTED,
410410
);
411411

412-
$this->repositoryMock->getList(null, 123, null, Argument::any(), Argument::any())
412+
$this->repositoryMock->getList(null, 123, null, false, Argument::any(), Argument::any())
413413
->willYield([
414414
$membership,
415415
$membership
@@ -447,7 +447,7 @@ public function it_should_return_group_guids(User $userMock, Group $groupMock)
447447
membershipLevel: GroupMembershipLevelEnum::REQUESTED,
448448
);
449449

450-
$this->repositoryMock->getList(null, 789, null, Argument::any(), Argument::any())
450+
$this->repositoryMock->getList(null, 789, null, false, Argument::any(), Argument::any())
451451
->willYield([
452452
$membership1,
453453
$membership2

Spec/Core/Notifications/NotificationsEventStreamsSubscriptionSpec.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ class NotificationsEventStreamsSubscriptionSpec extends ObjectBehavior
4141

4242
/** @var EntitiesBuilder */
4343
protected $entitiesBuilder;
44-
44+
4545
/** @var Resolver */
4646
protected $entitiesResolver;
4747

4848
/** @var GroupMembershipManager */
4949
protected $groupMembershipManager;
50-
50+
5151
/** @var RedisMock */
5252
protected $redisMock;
5353

@@ -437,10 +437,11 @@ public function it_should_send_group_queue_received_notifications(
437437
->willReturn($group);
438438

439439
$refTime = time();
440-
440+
441441
$this->groupMembershipManager->getMembers(
442442
$group,
443443
GroupMembershipLevelEnum::MODERATOR,
444+
false,
444445
10,
445446
Argument::any(),
446447
Argument::any()
@@ -464,6 +465,7 @@ public function it_should_send_group_queue_received_notifications(
464465
$this->groupMembershipManager->getMembers(
465466
$group,
466467
GroupMembershipLevelEnum::OWNER,
468+
false,
467469
10,
468470
Argument::any(),
469471
Argument::any()

0 commit comments

Comments
 (0)