diff --git a/src/apps/kt-kintone-lib/index.ts b/src/apps/kt-kintone-lib/index.ts new file mode 100644 index 0000000..085333b --- /dev/null +++ b/src/apps/kt-kintone-lib/index.ts @@ -0,0 +1,64 @@ +import { EmailID, SendEmailKeyProps, sendEmail } from "@/mypage/メール"; +import { makeReceipt } from "@/mypage/領収証発行"; + +/** + * windowのグローバルオブジェクトに関数を登録する + * 本typescriptプロジェクト以外からも関数を参照できるようにするためのAPI + */ + +declare global { + interface Window { + KtKintoneLib: typeof KtKintoneLib; + } +} + +namespace KtKintoneLib { + // MyPageAPIを呼び出すための関数群 + export namespace api { + // 領収証作成API + export function 領収証作成( + 入金予定実績レコード番号: number[] + ): Promise { + return makeReceipt(入金予定実績レコード番号); + } + + // メール送信API群 + export namespace メール送信 { + export function 解約承認(各種申請レコード番号: number): Promise { + return sendEmail(EmailID.解約承認, { + application_no: 各種申請レコード番号, + }); + } + export function 車両番号防犯登録番号変更完了( + 各種申請レコード番号: number + ): Promise { + return sendEmail(EmailID.車両番号_防犯登録番号変更完了, { + application_no: 各種申請レコード番号, + }); + } + } + export function 利用者情報変更完了( + 各種申請レコード番号: number + ): Promise { + return sendEmail(EmailID.利用者情報変更完了, { + application_no: 各種申請レコード番号, + }); + } + export function 申込受付( + 定期申込予約レコード番号: number + ): Promise { + return sendEmail(EmailID.申込受付, { + season_ticket_contract_entry_record_no: 定期申込予約レコード番号, + }); + } + export function 申込承認( + 定期申込予約レコード番号: number + ): Promise { + return sendEmail(EmailID.申込承認, { + season_ticket_contract_entry_record_no: 定期申込予約レコード番号, + }); + } + } +} + +window.KtKintoneLib = KtKintoneLib; diff --git a/src/mypage/メール.ts b/src/mypage/メール.ts index c92c92b..b3241e7 100644 --- a/src/mypage/メール.ts +++ b/src/mypage/メール.ts @@ -2,21 +2,30 @@ import { MyPageApiID } from "."; import { send } from "./lib"; export const EmailID = { + 解約承認: "解約承認", + 車両番号_防犯登録番号変更完了: "車両番号・防犯登録番号変更完了", + 利用者情報変更完了: "利用者情報変更完了", + 振替頻度変更完了: "振替頻度変更完了", + 申込受付: "申込受付", + 申込承認: "申込承認", 定期選考_一斉通知: "定期選考_一斉通知", + 定期選考_当選のお知らせ: "定期選考_当選のお知らせ", + 定期選考_落選のお知らせ: "定期選考_落選のお知らせ", } as const; export type EmailID = (typeof EmailID)[keyof typeof EmailID]; +export type SendEmailKeyProps = { + season_ticket_contract_entry_record_no?: number; + application_no?: number; +}; export const sendEmail = ( id: EmailID, - key: { - season_ticket_contract_entry_record_no?: string; - application_no?: string; - }, - data: object + key: SendEmailKeyProps, + data: object = {} ) => { const sendData = { email_id: id, - ...data, + ...(data ?? {}), ...key, token: process.env.MYPAGE_TOKEN ?? "", }; diff --git a/src/mypage/領収証発行.ts b/src/mypage/領収証発行.ts new file mode 100644 index 0000000..412daec --- /dev/null +++ b/src/mypage/領収証発行.ts @@ -0,0 +1,9 @@ +import { MyPageApiID } from "."; +import { send } from "./lib"; + +export const makeReceipt = (recordNos: number[]) => { + const sendData = { + record_no: recordNos, + }; + return send(MyPageApiID.領収証発行, sendData); +};