Files
calendar/packages/features/bookings/lib/getAllCredentialsForUsersOnEvent/refreshCredentials.ts
T

30 lines
1.2 KiB
TypeScript

import async from "async";
import { isDelegationCredential } from "@calcom/lib/delegationCredential/clientAndServer";
import { buildAllCredentials } from "@calcom/lib/delegationCredential/server";
import { withReporting } from "@calcom/lib/sentryWrapper";
import type { CredentialForCalendarService } from "@calcom/types/Credential";
import { refreshCredential } from "./refreshCredential";
/**
* Refreshes the given set of credentials.
*
* @param credentials
*/
// Define the function with underscore prefix
const _refreshCredentials = async (
credentials: Array<CredentialForCalendarService>
): Promise<Array<CredentialForCalendarService>> => {
const nonDelegationCredentials = credentials.filter(
(cred) => !isDelegationCredential({ credentialId: cred.id })
);
const delegationCredentials = credentials.filter((cred) =>
isDelegationCredential({ credentialId: cred.id })
);
const refreshedDbCredentials = await async.mapLimit(nonDelegationCredentials, 5, refreshCredential);
return buildAllCredentials({ delegationCredentials, existingCredentials: refreshedDbCredentials });
};
export const refreshCredentials = withReporting(_refreshCredentials, "refreshCredentials");