From c76d930f0817a95b069585dde175bc4d3b0a2aa6 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Mon, 20 Feb 2023 12:22:32 +0000 Subject: [PATCH] Fixing issues with service metadata --- apps/webapp/app/components/LoginPromoPanel.tsx | 4 ++-- apps/webapp/app/models/integrations.server.ts | 1 - .../organizationTemplatePresenter.server.ts | 8 +++++--- .../app/models/templateListPresenter.server.ts | 12 +++++++----- .../app/models/templatePresenter.server.ts | 8 +++++--- .../app/models/workflowStartPresenter.server.ts | 8 +++++--- .../app/models/workflowsPresenter.server.ts | 17 +++++++---------- 7 files changed, 31 insertions(+), 27 deletions(-) diff --git a/apps/webapp/app/components/LoginPromoPanel.tsx b/apps/webapp/app/components/LoginPromoPanel.tsx index 8e5db9115..eb182b4e1 100644 --- a/apps/webapp/app/components/LoginPromoPanel.tsx +++ b/apps/webapp/app/components/LoginPromoPanel.tsx @@ -6,7 +6,7 @@ import { WrenchScrewdriverIcon, } from "@heroicons/react/24/outline"; import { Link } from "@remix-run/react"; -import { TemplateListItem } from "~/presenters/templateListPresenter.server"; +import type { TemplateListItem } from "~/models/templateListPresenter.server"; import { ApiLogoIcon } from "./code/ApiLogoIcon"; import { Panel } from "./layout/Panel"; import { Body } from "./primitives/text/Body"; @@ -25,7 +25,7 @@ export function LoginPromoPanel({ template }: { template?: TemplateListItem }) {
- + {template.shortTitle}
diff --git a/apps/webapp/app/models/integrations.server.ts b/apps/webapp/app/models/integrations.server.ts index 693f3f413..c31629d2a 100644 --- a/apps/webapp/app/models/integrations.server.ts +++ b/apps/webapp/app/models/integrations.server.ts @@ -9,7 +9,6 @@ export function getVersion1Integrations(showAdminOnly: boolean) { return getInternalIntegrations(showAdminOnly); } -//todo get metadata from the new integrations service and merge it with the old one export async function getServiceMetadatas( showAdminOnly: boolean ): Promise> { diff --git a/apps/webapp/app/models/organizationTemplatePresenter.server.ts b/apps/webapp/app/models/organizationTemplatePresenter.server.ts index d281a8686..68f3cf867 100644 --- a/apps/webapp/app/models/organizationTemplatePresenter.server.ts +++ b/apps/webapp/app/models/organizationTemplatePresenter.server.ts @@ -1,9 +1,9 @@ import type { PrismaClient } from "~/db.server"; import { prisma } from "~/db.server"; -import { getIntegrationMetadataByService } from "~/models/integrations.server"; import { getRuntimeEnvironment } from "~/models/runtimeEnvironment.server"; import { renderMarkdown } from "~/services/renderMarkdown.server"; -import { TemplateListItem } from "./templateListPresenter.server"; +import { getServiceMetadatas } from "./integrations.server"; +import type { TemplateListItem } from "./templateListPresenter.server"; import { WorkflowsPresenter } from "./workflowsPresenter.server"; export class OrganizationTemplatePresenter { @@ -59,10 +59,12 @@ export class OrganizationTemplatePresenter { organizationTemplate.repositoryUrl.split("/").pop() ?? "missing repository name"; + const serviceMetadatas = await getServiceMetadatas(true); + const template: TemplateListItem = { ...organizationTemplate.template, services: organizationTemplate.template.services.map( - getIntegrationMetadataByService + (s) => serviceMetadatas[s] ), docsHTML: renderMarkdown(organizationTemplate.template.markdownDocs), }; diff --git a/apps/webapp/app/models/templateListPresenter.server.ts b/apps/webapp/app/models/templateListPresenter.server.ts index 7f33ab61d..4b814b141 100644 --- a/apps/webapp/app/models/templateListPresenter.server.ts +++ b/apps/webapp/app/models/templateListPresenter.server.ts @@ -1,12 +1,12 @@ -import { Template } from ".prisma/client"; -import type { IntegrationMetadata } from "@trigger.dev/integration-sdk"; +import type { Template } from ".prisma/client"; +import type { ServiceMetadata } from "@trigger.dev/integration-sdk"; import type { PrismaClient } from "~/db.server"; import { prisma } from "~/db.server"; -import { getIntegrationMetadataByService } from "~/models/integrations.server"; import { renderMarkdown } from "~/services/renderMarkdown.server"; +import { getServiceMetadatas } from "./integrations.server"; export type TemplateListItem = Omit & { - services: Array; + services: Array; docsHTML: string; }; @@ -22,8 +22,10 @@ export class TemplateListPresenter { orderBy: { priority: "asc" }, }); + const serviceMetadatas = await getServiceMetadatas(true); + const templatesWithServiceMetadata = templates.map((template) => { - const services = template.services.map(getIntegrationMetadataByService); + const services = template.services.map((s) => serviceMetadatas[s]); return { ...template, diff --git a/apps/webapp/app/models/templatePresenter.server.ts b/apps/webapp/app/models/templatePresenter.server.ts index ce12281ed..b8c962dd4 100644 --- a/apps/webapp/app/models/templatePresenter.server.ts +++ b/apps/webapp/app/models/templatePresenter.server.ts @@ -1,8 +1,8 @@ import type { PrismaClient } from "~/db.server"; import { prisma } from "~/db.server"; -import { getIntegrationMetadataByService } from "~/models/integrations.server"; import { renderMarkdown } from "~/services/renderMarkdown.server"; -import { TemplateListItem } from "./templateListPresenter.server"; +import { getServiceMetadatas } from "./integrations.server"; +import type { TemplateListItem } from "./templateListPresenter.server"; export class TemplatePresenter { #prismaClient: PrismaClient; @@ -34,10 +34,12 @@ export class TemplatePresenter { return { template: undefined }; } + const serviceMetadatas = await getServiceMetadatas(true); + const templateWithServiceMetadata = { ...template, docsHTML: renderMarkdown(template.markdownDocs), - services: template.services.map(getIntegrationMetadataByService), + services: template.services.map((s) => serviceMetadatas[s]), }; return { template: templateWithServiceMetadata }; diff --git a/apps/webapp/app/models/workflowStartPresenter.server.ts b/apps/webapp/app/models/workflowStartPresenter.server.ts index a70c55109..7c78ef1f3 100644 --- a/apps/webapp/app/models/workflowStartPresenter.server.ts +++ b/apps/webapp/app/models/workflowStartPresenter.server.ts @@ -1,8 +1,8 @@ import type { PrismaClient } from "~/db.server"; import { prisma } from "~/db.server"; -import { getIntegrationMetadataByService } from "~/models/integrations.server"; import { renderMarkdown } from "~/services/renderMarkdown.server"; -import { TemplateListItem } from "./templateListPresenter.server"; +import { getServiceMetadatas } from "./integrations.server"; +import type { TemplateListItem } from "./templateListPresenter.server"; export class WorkflowStartPresenter { #prismaClient: PrismaClient; @@ -71,9 +71,11 @@ export class WorkflowStartPresenter { return; } + const serviceMetadatas = await getServiceMetadatas(true); + return { ...template, - services: template.services.map(getIntegrationMetadataByService), + services: template.services.map((s) => serviceMetadatas[s]), docsHTML: renderMarkdown(template.markdownDocs), }; } diff --git a/apps/webapp/app/models/workflowsPresenter.server.ts b/apps/webapp/app/models/workflowsPresenter.server.ts index 6239fddda..4c05b9761 100644 --- a/apps/webapp/app/models/workflowsPresenter.server.ts +++ b/apps/webapp/app/models/workflowsPresenter.server.ts @@ -8,13 +8,10 @@ import type { DisplayProperties } from "@trigger.dev/integration-sdk"; import * as github from "@trigger.dev/github/internal"; import invariant from "tiny-invariant"; import { triggerLabel } from "~/components/triggers/triggerLabel"; -import type { PrismaClient } from "~/db.server"; -import { prisma, Prisma } from "~/db.server"; -import { - getIntegrationMetadata, - getIntegrations, -} from "../models/integrations.server"; +import type { PrismaClient, Prisma } from "~/db.server"; +import { prisma } from "~/db.server"; import type { ExternalSource, Workflow } from "../models/workflow.server"; +import { getServiceMetadatas } from "./integrations.server"; export type WorkflowListItem = Awaited< ReturnType @@ -33,7 +30,7 @@ export class WorkflowsPresenter { whereInput, environmentId ); - const integrations = getIntegrations(true); + const serviceMetadatas = await getServiceMetadatas(true); return workflows.map((workflow) => { const lastRun = @@ -57,10 +54,10 @@ export class WorkflowsPresenter { ), integrations: { source: workflow.service - ? getIntegrationMetadata(integrations, workflow.service) + ? serviceMetadatas[workflow.service] : undefined, - services: workflow.externalServices.map((service) => - getIntegrationMetadata(integrations, service.service) + services: workflow.externalServices.map( + (service) => serviceMetadatas[service.service] ), }, lastRun,