mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-12 05:29:16 +00:00
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { OrgServiceActor } from "@app/lib/types";
|
|
|
|
import { AppConnection } from "../app-connection-enums";
|
|
import { listBitbucketRepositories, listBitbucketWorkspaces } from "./bitbucket-connection-fns";
|
|
import { TBitbucketConnection, TGetBitbucketRepositoriesDTO } from "./bitbucket-connection-types";
|
|
|
|
type TGetAppConnectionFunc = (
|
|
app: AppConnection,
|
|
connectionId: string,
|
|
actor: OrgServiceActor
|
|
) => Promise<TBitbucketConnection>;
|
|
|
|
export const bitbucketConnectionService = (getAppConnection: TGetAppConnectionFunc) => {
|
|
const listWorkspaces = async (connectionId: string, actor: OrgServiceActor) => {
|
|
const appConnection = await getAppConnection(AppConnection.Bitbucket, connectionId, actor);
|
|
const workspaces = await listBitbucketWorkspaces(appConnection);
|
|
return workspaces;
|
|
};
|
|
|
|
const listRepositories = async (
|
|
{ connectionId, workspaceSlug }: TGetBitbucketRepositoriesDTO,
|
|
actor: OrgServiceActor
|
|
) => {
|
|
const appConnection = await getAppConnection(AppConnection.Bitbucket, connectionId, actor);
|
|
const repositories = await listBitbucketRepositories(appConnection, workspaceSlug);
|
|
return repositories;
|
|
};
|
|
|
|
return {
|
|
listWorkspaces,
|
|
listRepositories
|
|
};
|
|
};
|