mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import PostgresDatabase from "../Infrastructure/PostgresDatabase";
|
|
import DatabaseService from "./DatabaseService";
|
|
import TwilioConfig from "Common/Types/CallAndSMS/TwilioConfig";
|
|
import BadDataException from "Common/Types/Exception/BadDataException";
|
|
import Model from "Model/Models/ProjectCallSMSConfig";
|
|
|
|
export class Service extends DatabaseService<Model> {
|
|
public constructor(postgresDatabase?: PostgresDatabase) {
|
|
super(Model, postgresDatabase);
|
|
}
|
|
|
|
public toTwilioConfig(
|
|
projectCallSmsConfig: Model | undefined,
|
|
): TwilioConfig | undefined {
|
|
if (!projectCallSmsConfig) {
|
|
return undefined;
|
|
}
|
|
|
|
if (!projectCallSmsConfig.id) {
|
|
throw new BadDataException("Project Call and SMS Config id is not set");
|
|
}
|
|
|
|
if (!projectCallSmsConfig.twilioAccountSID) {
|
|
throw new BadDataException(
|
|
"Project Call and SMS Config twilio account SID is not set",
|
|
);
|
|
}
|
|
|
|
if (!projectCallSmsConfig.twilioPhoneNumber) {
|
|
throw new BadDataException(
|
|
"Project Call and SMS Config twilio phone number is not set",
|
|
);
|
|
}
|
|
|
|
if (!projectCallSmsConfig.twilioAuthToken) {
|
|
throw new BadDataException(
|
|
"Project Call and SMS Config twilio auth token is not set",
|
|
);
|
|
}
|
|
|
|
return {
|
|
accountSid: projectCallSmsConfig.twilioAccountSID.toString(),
|
|
authToken: projectCallSmsConfig.twilioAuthToken.toString(),
|
|
phoneNumber: projectCallSmsConfig.twilioPhoneNumber,
|
|
};
|
|
}
|
|
}
|
|
export default new Service();
|