Skip to content

Instantly share code, notes, and snippets.

@barograf
Created September 27, 2019 11:17
Show Gist options
  • Save barograf/d96bcbf2912c595c1ba9d23ded7b309c to your computer and use it in GitHub Desktop.
Save barograf/d96bcbf2912c595c1ba9d23ded7b309c to your computer and use it in GitHub Desktop.
Producer service
import * as awilix from "awilix";
import * as dotenv from "dotenv";
import DynamoDbStorage from "../shared/storage/dynamoDb";
import TranslationsStorage from "../shared/translations/translations";
import createContainer from "./container";
import GoogleSheets from "./google/sheets";
import ITransformer from "./transformer/transformer";
dotenv.config();
const container = createContainer({
storage: awilix.asClass(DynamoDbStorage)
});
async function main() {
const spreadsheetData = await container.resolve<GoogleSheets>("googleSheets").fetchSpreadsheet();
const transformedData = await container.resolve<ITransformer>("transformer").transform(spreadsheetData);
container.resolve<TranslationsStorage>("translationsStorage").setTranslations(transformedData);
}
export const handler = async (event, context) => {
try {
await main();
} catch (error) {
return {
body: error.message || "Internal server error",
statusCode: error.statusCode || 500
};
}
return {
body: JSON.stringify({ result: "ok" }),
statusCode: 200
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment