in src/lambda.ts [8:40]
export async function handler(campaignName: string): Promise<void> {
console.log('campaignName: ', campaignName);
const stage = process.env.Stage;
if (!stage || (stage !== 'CODE' && stage !== 'PROD')) {
return Promise.reject(`Invalid or missing stage: '${stage ?? ''}'`);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- config
const tickerConfig: Record<string, TickerConfig> = JSON.parse(
await getSSMParam('ticker-config', stage),
);
const gcpConfig = await getSSMParam('gcp-wif-credentials-config', stage);
const campaignConfig = tickerConfig[campaignName];
console.log('Using config:', campaignConfig);
const authClient = await buildAuthClient(gcpConfig);
const amount = await runQuery(authClient, stage, campaignConfig);
const result: TickerResult = {
goal: campaignConfig.GoalAmount,
total: Math.round(amount) + campaignConfig.InitialAmount,
type: campaignConfig.type,
};
console.log('Writing result to S3:', result);
const s3Result = await writeToS3({
data: result,
bucket: TickerBucket,
key: `${stage}/${campaignName}.json`,
});
console.log('Result from S3: ', s3Result);
}