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

const makeGetOrganizationBySlug: ServiceMethodFactory<
  OrganizationServiceDeps,
  [string, Prisma.OrganizationInclude | undefined],
  Promise<Organization | null>
> = ({ request }) => {
  return async (orgSlug, include = undefined) => {
    const organization = await request.prisma.organization.findUnique({
      include,
      where: {
        slug: orgSlug,
      },
    });

    return organization;
  };
};

export default makeGetOrganizationBySlug;