Update group plan selection to include expired plans
This commit is contained in:
@@ -393,6 +393,8 @@ export default {
|
||||
...mapState({ user: 'user.data' }),
|
||||
upgradeableGuilds () {
|
||||
return this.userGuilds.filter(group => {
|
||||
const leaderId = group.leader?._id || group.leader;
|
||||
if (leaderId !== this.user._id) return false;
|
||||
const plan = group.purchased?.plan;
|
||||
if (!plan?.customerId) return false;
|
||||
if (this.activeGroupPlanIds.includes(group._id)) return false;
|
||||
@@ -421,7 +423,7 @@ export default {
|
||||
|
||||
try {
|
||||
const [guildsResponse, partyResponse] = await Promise.all([
|
||||
axios.get('/api/v4/groups', { params: { type: 'guilds' } }),
|
||||
axios.get('/api/v4/groups', { params: { type: 'guilds', includeExpiredPlans: 'true' } }),
|
||||
axios.get('/api/v4/groups/party').catch(() => ({ data: { data: null } })),
|
||||
]);
|
||||
|
||||
|
||||
@@ -371,6 +371,10 @@ api.getGroups = {
|
||||
filters.$or.push({ description: searchQuery });
|
||||
}
|
||||
|
||||
if (req.query.includeExpiredPlans === 'true') {
|
||||
filters.includeExpiredPlans = true;
|
||||
}
|
||||
|
||||
const results = await Group.getGroups({
|
||||
user,
|
||||
types,
|
||||
|
||||
@@ -309,13 +309,16 @@ schema.statics.getGroups = async function getGroups (options = {}) {
|
||||
privacy: 'private',
|
||||
_id: { $in: user.guilds },
|
||||
'purchased.plan.customerId': { $exists: true },
|
||||
$or: [
|
||||
};
|
||||
if (!filters.includeExpiredPlans) {
|
||||
query.$or = [
|
||||
{ 'purchased.plan.dateTerminated': null },
|
||||
{ 'purchased.plan.dateTerminated': { $exists: false } },
|
||||
{ 'purchased.plan.dateTerminated': { $gt: new Date() } },
|
||||
],
|
||||
};
|
||||
_.assign(query, filters);
|
||||
];
|
||||
}
|
||||
const filtersWithoutCustom = _.omit(filters, ['includeExpiredPlans']);
|
||||
_.assign(query, filtersWithoutCustom);
|
||||
const privateGuildsQuery = this.find(query).select(groupFields);
|
||||
if (populateLeader === true) privateGuildsQuery.populate('leader', nameFields);
|
||||
privateGuildsQuery.sort(sort);
|
||||
|
||||
Reference in New Issue
Block a user