fix(api): premium sanitisation recursion issue (#25)

This commit is contained in:
hampus-fluxer
2026-01-05 03:05:15 +01:00
committed by GitHub
parent c4be1d424c
commit 11ec2e63b3
4 changed files with 39 additions and 42 deletions

View File

@@ -43,7 +43,6 @@ import {
} from '~/Constants';
import {mapChannelToResponse, mapMessageToResponse} from '~/channel/ChannelModel';
import type {IChannelRepository} from '~/channel/IChannelRepository';
import type {UserRow} from '~/database/types/UserTypes';
import {RateLimitError, UnauthorizedError, UnknownGuildError} from '~/Errors';
import {mapFavoriteMemeToResponse} from '~/favorite_meme/FavoriteMemeModel';
import type {IFavoriteMemeRepository} from '~/favorite_meme/IFavoriteMemeRepository';
@@ -88,7 +87,7 @@ import type {RpcRequest, RpcResponse, RpcResponseGuildData, RpcResponseSessionDa
import type {IUserRepository} from '~/user/IUserRepository';
import {CustomStatusValidator} from '~/user/services/CustomStatusValidator';
import {getCachedUserPartialResponse} from '~/user/UserCacheHelpers';
import {mapExpiredPremiumFields, shouldStripExpiredPremium} from '~/user/UserHelpers';
import {createPremiumClearPatch, shouldStripExpiredPremium} from '~/user/UserHelpers';
import {
mapRelationshipToResponse,
mapUserGuildSettingsToResponse,
@@ -574,10 +573,7 @@ export class RpcService {
if (needsPremiumStrip) {
try {
const strippedUser = await this.userRepository.patchUpsert(
user.id,
mapExpiredPremiumFields(() => null) as Partial<UserRow>,
);
const strippedUser = await this.userRepository.patchUpsert(user.id, createPremiumClearPatch());
if (strippedUser) {
user = strippedUser;
userData.user = strippedUser;