[buddypress-trac] [BuddyPress Trac] #6210: Create New Invitations API
buddypress-trac
noreply at wordpress.org
Tue Mar 19 18:24:40 UTC 2019
#6210: Create New Invitations API
-----------------------------------------+-----------------------
Reporter: dcavins | Owner: dcavins
Type: enhancement | Status: reopened
Priority: low | Milestone:
Component: Core | Version:
Severity: normal | Resolution:
Keywords: dev-feedback trac-tidy-2018 |
-----------------------------------------+-----------------------
Comment (by boonebgorges):
@dcavins I wonder if we could avoid much of the calisthenics in
`bp_get_user_groups()` by using a different cache group, and handling
invites and memberships totally separately. So:
{{{
$membership_ids = wp_cache_get( $user_id, 'bp_groups_memberships_for_user'
);
// prime caches, etc
$invitation_ids = array();
if ( invites need to be included ) {
$invitation_ids = wp_cache_get( $user_id,
'bp_groups_invitations_for_user' );
// prime caches, etc
}
// Loop through memberships as currently happens in the function, and
assemble membership objects
foreach ( $membership_ids as $membership_id ) {
// ...
$groups[ $group_id ] = $membership;
}
// Then loop through the invitation objects and fake them as "memberships"
foreach ( $invitation_ids as $invitation ) {
$invitation = wp_cache_get( ... );
$invite_membership_obj = new stdClass();
...
$groups[ $group_id ] = $invite_membership_obj;
}
}}}
No extra `non_cached_keys()` overhead; we only fetch the invitations when
they're actually requested (I think this is just `is_confirmed=false`?);
we keep the cache keys easier to understand and track; and the logic of
`bp_get_user_groups()` is easier to follow.
I started working on a patch, but before putting the work in, I wanted to
check whether there was a reason for not going this way instead.
Migration routine looks fine - I think the numbers will be small enough
that this'll work.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6210#comment:35>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list