saleor-apps-redis_apl/apps/emails-and-messages/src/modules/sendgrid/configuration/sendgrid-configuration.router.ts
2023-03-07 22:03:58 +01:00

37 lines
1.5 KiB
TypeScript

import { PrivateMetadataSendgridConfigurator } from "./sendgrid-configurator";
import { logger as pinoLogger } from "../../../lib/logger";
import { sendgridConfigInputSchema } from "./sendgrid-config-input-schema";
import { GetSendgridConfigurationService } from "./get-sendgrid-configuration.service";
import { router } from "../../trpc/trpc-server";
import { protectedClientProcedure } from "../../trpc/protected-client-procedure";
import { createSettingsManager } from "../../app-configuration/metadata-manager";
export const sendgridConfigurationRouter = router({
fetch: protectedClientProcedure.query(async ({ ctx, input }) => {
const logger = pinoLogger.child({ saleorApiUrl: ctx.saleorApiUrl });
logger.debug("sendgridConfigurationRouter.fetch called");
return new GetSendgridConfigurationService({
apiClient: ctx.apiClient,
saleorApiUrl: ctx.saleorApiUrl,
}).getConfiguration();
}),
setAndReplace: protectedClientProcedure
.meta({ requiredClientPermissions: ["MANAGE_APPS"] })
.input(sendgridConfigInputSchema)
.mutation(async ({ ctx, input }) => {
const logger = pinoLogger.child({ saleorApiUrl: ctx.saleorApiUrl });
logger.debug(input, "sendgridConfigurationRouter.setAndReplace called with input");
const sendgridConfigurator = new PrivateMetadataSendgridConfigurator(
createSettingsManager(ctx.apiClient),
ctx.saleorApiUrl
);
await sendgridConfigurator.setConfig(input);
return null;
}),
});