Closes #5899 <img width="1280" alt="Index - banner" src="https://github.com/twentyhq/twenty/assets/71827178/313cf20d-eb34-496a-8c7c-7589fbd55954"> --------- Co-authored-by: Charles Bochet <charles@twenty.com>
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
|
|
import { UserVarsService } from 'src/engine/core-modules/user/user-vars/services/user-vars.service';
|
|
import {
|
|
ConnectedAccountKeys,
|
|
ConnectedAccountKeyValueType,
|
|
} from 'src/modules/connected-account/types/connected-account-key-value.type';
|
|
|
|
@Injectable()
|
|
export class AccountsToReconnectService {
|
|
constructor(
|
|
private readonly userVarsService: UserVarsService<ConnectedAccountKeyValueType>,
|
|
) {}
|
|
|
|
public async removeAccountToReconnect(
|
|
userId: string,
|
|
workspaceId: string,
|
|
connectedAccountId: string,
|
|
) {
|
|
const accountsToReconnect = await this.userVarsService.get({
|
|
userId,
|
|
workspaceId,
|
|
key: ConnectedAccountKeys.ACCOUNTS_TO_RECONNECT,
|
|
});
|
|
|
|
if (!accountsToReconnect) {
|
|
return;
|
|
}
|
|
|
|
const updatedAccountsToReconnect = accountsToReconnect.filter(
|
|
(id) => id !== connectedAccountId,
|
|
);
|
|
|
|
if (updatedAccountsToReconnect.length === 0) {
|
|
await this.userVarsService.delete({
|
|
userId,
|
|
workspaceId,
|
|
key: ConnectedAccountKeys.ACCOUNTS_TO_RECONNECT,
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
await this.userVarsService.set({
|
|
userId,
|
|
workspaceId,
|
|
key: ConnectedAccountKeys.ACCOUNTS_TO_RECONNECT,
|
|
value: updatedAccountsToReconnect,
|
|
});
|
|
}
|
|
}
|