import { app, InvocationContext, Timer } from "@azure/functions"; import { DataSource } from "typeorm"; import { User } from "../entity/user.entity"; import { SendGridService } from "../sendgrid/sendgrid.service"; import * as dotenv from "dotenv"; // タイマートリガー処理のサンプルです // TODO:開発が進んだら削除すること export async function timerTriggerExample( myTimer: Timer, context: InvocationContext ): Promise { context.log("Timer function processed request."); dotenv.config({ path: ".env" }); const datasource = new DataSource({ type: "mysql", host: process.env.DB_HOST, port: Number(process.env.DB_PORT), username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, entities: [User], }); try { await datasource.initialize(); const userRepository = datasource.getRepository(User); // Userエンティティに対応するリポジトリを取得 // ユーザーを検索 const users = await userRepository.find(); console.log(users); } catch (e) { console.error(e); } finally { await datasource.destroy(); } } // test実行確認用サンプル // TODO:開発が進んだら削除すること export async function testExample(datasource: DataSource): Promise { let users: User[]; const userRepository = datasource.getRepository(User); // Userエンティティに対応するリポジトリを取得 // ユーザーを検索 users = await userRepository.find(); return users; } // test実行確認用サンプル // TODO:開発が進んだら削除すること export async function testSendgridExample(): Promise { const sendgrid = new SendGridService(); // メールを送信 await sendgrid.sendMail( "oura.a89@gmail.com", process.env.MAIL_FROM, "testMail", "test!", "html" ); return "sucsess"; } app.timer("timerTriggerExample", { schedule: "0 */1 * * * *", handler: timerTriggerExample, });