36 lines
1 KiB
TypeScript
36 lines
1 KiB
TypeScript
import { PrivateMetadataSendgridConfigurator } from "./sendgrid-configurator";
|
|
import { Client } from "urql";
|
|
import { logger as pinoLogger } from "../../../lib/logger";
|
|
import { createSettingsManager } from "../../app-configuration/metadata-manager";
|
|
|
|
// todo test
|
|
export class GetSendgridConfigurationService {
|
|
constructor(
|
|
private settings: {
|
|
apiClient: Client;
|
|
saleorApiUrl: string;
|
|
}
|
|
) {}
|
|
|
|
async getConfiguration() {
|
|
const logger = pinoLogger.child({
|
|
service: "GetSendgridConfigurationService",
|
|
saleorApiUrl: this.settings.saleorApiUrl,
|
|
});
|
|
|
|
const { saleorApiUrl, apiClient } = this.settings;
|
|
|
|
const sendgridConfigurator = new PrivateMetadataSendgridConfigurator(
|
|
createSettingsManager(apiClient),
|
|
saleorApiUrl
|
|
);
|
|
|
|
const savedSendgridConfig = (await sendgridConfigurator.getConfig()) ?? null;
|
|
|
|
logger.debug(savedSendgridConfig, "Retrieved sendgrid config from Metadata. Will return it");
|
|
|
|
if (savedSendgridConfig) {
|
|
return savedSendgridConfig;
|
|
}
|
|
}
|
|
}
|