IKHSAN
EN Read in EnglishID

opendesk

Publik
Branch
main
Commit terakhir
08d9f3328 Oktober 2026

utils.ts

Buka raw
export const isDocDirty = (doc: any, originalDoc: any) => {
  if (!doc || !originalDoc) return false;
  return JSON.stringify(doc) !== JSON.stringify(originalDoc);
};

export const validateTwilio = (twilio, telephonyAgent, twilioErrors) => {
  if (telephonyAgent.default_medium === "Twilio" && !twilio.enabled) {
    twilioErrors.value.default_medium =
      "Enable Twilio to set it as default medium";
  } else {
    twilioErrors.value.default_medium = "";
  }

  if (!twilio.enabled) {
    return;
  }

  if (!twilio.account_sid) {
    twilioErrors.value.accountSid = "Account SID is required";
  } else {
    twilioErrors.value.accountSid = "";
  }

  if (!twilio.auth_token) {
    twilioErrors.value.authToken = "Auth Token is required";
  } else {
    twilioErrors.value.authToken = "";
  }

  if (!telephonyAgent.twilio_number) {
    twilioErrors.value.number = "Number is required";
  } else if (!validatePhone(telephonyAgent.twilio_number)) {
    twilioErrors.value.number = "Please enter a valid phone number";
  } else {
    twilioErrors.value.number = "";
  }
};

export const validateExotel = (exotel, telephonyAgent, exotelErrors) => {
  if (telephonyAgent.default_medium === "Exotel" && !exotel.enabled) {
    exotelErrors.value.default_medium =
      "Enable Exotel to set it as default medium";
  } else {
    exotelErrors.value.default_medium = "";
  }

  if (!exotel.enabled) {
    return;
  }

  if (!exotel.account_sid) {
    exotelErrors.value.accountSid = "Account SID is required";
  } else {
    exotelErrors.value.accountSid = "";
  }

  if (!exotel.webhook_verify_token) {
    exotelErrors.value.webhookVerifyToken = "Webhook Verify Token is required";
  } else {
    exotelErrors.value.webhookVerifyToken = "";
  }

  if (!exotel.subdomain) {
    exotelErrors.value.subdomain = "Subdomain is required";
  } else {
    exotelErrors.value.subdomain = "";
  }

  if (!exotel.api_key) {
    exotelErrors.value.apiKey = "API Key is required";
  } else {
    exotelErrors.value.apiKey = "";
  }

  if (!exotel.api_token) {
    exotelErrors.value.apiToken = "API Token is required";
  } else {
    exotelErrors.value.apiToken = "";
  }

  if (!telephonyAgent.exotel_number) {
    exotelErrors.value.number = "Number is required";
  } else if (!validatePhone(telephonyAgent.exotel_number)) {
    exotelErrors.value.number = "Please enter a valid phone number";
  } else {
    exotelErrors.value.number = "";
  }

  if (!telephonyAgent.mobile_no) {
    exotelErrors.value.mobileNo = "Personal number is required";
  } else if (!validatePhone(telephonyAgent.mobile_no)) {
    exotelErrors.value.mobileNo = "Please enter a valid phone number";
  } else {
    exotelErrors.value.mobileNo = "";
  }
};

const validatePhone = (number: string) => {
  return /^\+?\d{8,15}$/.test(number);
};
byte
2.804
baris
101
Jenis
ts
Commit terakhir
28 Oktober 2026