37 lines
1 KiB
TypeScript
37 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;
|
||
|
}
|
||
|
}
|
||
|
}
|