mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import DatabaseService from "./DatabaseService";
|
|
import TwilioConfig from "../../Types/CallAndSMS/TwilioConfig";
|
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
import Model from "../../Models/DatabaseModels/ProjectCallSMSConfig";
|
|
import Phone from "../../Types/Phone";
|
|
|
|
export class Service extends DatabaseService<Model> {
|
|
public constructor() {
|
|
super(Model);
|
|
}
|
|
|
|
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.twilioPrimaryPhoneNumber) {
|
|
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(),
|
|
primaryPhoneNumber: projectCallSmsConfig.twilioPrimaryPhoneNumber,
|
|
secondaryPhoneNumbers:
|
|
projectCallSmsConfig.twilioSecondaryPhoneNumbers &&
|
|
projectCallSmsConfig.twilioSecondaryPhoneNumbers.length > 0
|
|
? projectCallSmsConfig.twilioSecondaryPhoneNumbers
|
|
.split(",")
|
|
.map((phone: string) => {
|
|
return new Phone(phone);
|
|
})
|
|
: [],
|
|
};
|
|
}
|
|
}
|
|
export default new Service();
|