27 lines
897 B
TypeScript
27 lines
897 B
TypeScript
import logger from "@calcom/lib/logger";
|
|
import { safeStringify } from "@calcom/lib/safeStringify";
|
|
import type { CredentialPayload } from "@calcom/types/Credential";
|
|
|
|
import { OAuth2TokenResponseInDbSchema } from "./universalSchema";
|
|
|
|
export function getTokenObjectFromCredential(credential: CredentialPayload) {
|
|
const parsedTokenResponse = OAuth2TokenResponseInDbSchema.safeParse(credential.key);
|
|
|
|
if (!parsedTokenResponse.success) {
|
|
logger.error(
|
|
"GoogleCalendarService-getTokenObjectFromCredential",
|
|
safeStringify(parsedTokenResponse.error.issues)
|
|
);
|
|
throw new Error(
|
|
`Could not parse credential.key ${credential.id} with error: ${parsedTokenResponse?.error}`
|
|
);
|
|
}
|
|
|
|
const tokenResponse = parsedTokenResponse.data;
|
|
if (!tokenResponse) {
|
|
throw new Error(`credential.key is not set for credential ${credential.id}`);
|
|
}
|
|
|
|
return tokenResponse;
|
|
}
|