.ts
TypeScript
(application/typescript)
// 1st-party
import type { ServiceMethodFactory } from "@ethicdevs/react-monolith";
// generated via script[generate:prisma]
import type { PullRequest } from "@prisma/client";
// service
import type {
  PullRequestSelectOrIncludes,
  PullRequestServiceDeps,
} from "./types";

const getPullRequest: ServiceMethodFactory<
  PullRequestServiceDeps,
  [string, PullRequestSelectOrIncludes | undefined],
  Promise<PullRequest | null>
> = ({ request }) => {
  return async (pullRequestId, selectOrIncludes) => {
    const pullRequest = await request.prisma.pullRequest.findUnique({
      ...(selectOrIncludes || {}),
      where: {
        id: pullRequestId,
      },
    });

    return pullRequest;
  };
};

export default getPullRequest;