* add teamId * add team app credentials method * add handler to get all user admin teams * update stripe logic to handle teams * enable teamId for stripe connect * update stripe module * implement PR feedback * update stripe module * add method to get credential by team id * handle check for teamId * abstract team and individual stripe connection checks into two separate parts * hide badge for platform user * update typing * add logic to handle team stripe integration * bump platform libraries * bump platform libraries --------- Co-authored-by: Morgan Vernay <morgan@cal.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { useQuery } from "@tanstack/react-query";
|
|
|
|
import { SUCCESS_STATUS, ERROR_STATUS } from "@calcom/platform-constants";
|
|
import type { ApiResponse } from "@calcom/platform-types";
|
|
|
|
import http from "../../lib/http";
|
|
|
|
export const useGetRedirectUrl = (redir?: string, errorRedir?: string, teamId?: number | null) => {
|
|
const authUrl = useQuery({
|
|
queryKey: ["get-stripe-connect-redirect-uri"],
|
|
staleTime: Infinity,
|
|
enabled: false,
|
|
queryFn: () => {
|
|
return http
|
|
?.get<ApiResponse<{ authUrl: string }>>(
|
|
`/stripe/connect${redir ? `?redir=${encodeURIComponent(redir)}` : "?redir="}${
|
|
errorRedir ? `&errorRedir=${encodeURIComponent(errorRedir)}` : ""
|
|
}${teamId ? `&teamId=${teamId}` : ""}`
|
|
)
|
|
.then(({ data: responseBody }) => {
|
|
if (responseBody.status === SUCCESS_STATUS) {
|
|
return responseBody.data.authUrl;
|
|
}
|
|
if (responseBody.status === ERROR_STATUS) throw new Error(responseBody.error.message);
|
|
return "";
|
|
});
|
|
},
|
|
});
|
|
|
|
return authUrl;
|
|
};
|
|
|
|
export const useConnect = (redir?: string, errorRedir?: string, teamId?: number | null) => {
|
|
const { refetch } = useGetRedirectUrl(redir, errorRedir, teamId);
|
|
|
|
const connect = async () => {
|
|
const redirectUri = await refetch();
|
|
|
|
if (redirectUri.data) {
|
|
window.location.href = redirectUri.data;
|
|
}
|
|
};
|
|
|
|
return { connect };
|
|
};
|