import type { ServiceMethodFactory } from "@ethicdevs/react-monolith";
import type { Repository } from "@prisma/client";
import type { RepositoryServiceDeps } from "./types";
const makeGetRepository: ServiceMethodFactory<
RepositoryServiceDeps,
[string, string],
Promise<Repository | null>
> = ({ request }) => {
return async (orgSlug, repoSlug) => {
const parentOrg = await request.prisma.organization.findUnique({
where: {
slug: orgSlug,
},
});
if (parentOrg == null) {
return null;
}
const repository = await request.prisma.repository.findFirst({
where: {
slug: repoSlug,
organization: {
slug: orgSlug,
},
},
});
return repository;
};
};
export default makeGetRepository;