001package com.plivo.api.models.multipartycall; 002 003import com.plivo.api.exceptions.PlivoValidationException; 004import com.plivo.api.util.PropertyFilter; 005import com.plivo.api.util.Utils; 006 007public class MultiPartyCallUtils { 008 private static final String namePrefix = "name_"; 009 private static final String uuidPrefix = "uuid_"; 010 011 public static final String active = "Active"; 012 public static final String initialized = "Initialized"; 013 public static final String allParticipants = "all"; 014 public static final String ended = "Ended"; 015 public static final String agent = "Agent"; 016 public static final String customer = "Customer"; 017 public static final String supervisor = "Supervisor"; 018 public static final String mp3 = "mp3"; 019 public static final String wav = "wav"; 020 021 022 public static String friendlyName(String name) throws PlivoValidationException { 023 if (name == null) { 024 throw new PlivoValidationException("MultiPartyCall name cannot be null"); 025 } 026 return namePrefix + name; 027 } 028 029 public static String mpcUuid(String uuid) throws PlivoValidationException { 030 if (uuid == null) { 031 throw new PlivoValidationException("MultiPartyCall uuid cannot be null"); 032 } 033 return uuidPrefix + uuid; 034 } 035 036 static void validMultiPartyCallId(String id) throws PlivoValidationException { 037 if (id == null) { 038 throw new PlivoValidationException("MultiPartyCall identifier cannot be null"); 039 } 040 if (id.startsWith(namePrefix) || id.startsWith(uuidPrefix)) { 041 return; 042 } 043 throw new PlivoValidationException("MultiPartyCall identifier should be prefixed with 'name_'/'uuid_'"); 044 } 045 046 static void validMultiPartyTime(String fieldName, PropertyFilter<String> time) throws PlivoValidationException { 047 if (!Utils.anyNotNull(time.greaterOrEqual(), time.greaterThan(), time.lessOrEqual(), time.lessThan())) { 048 throw new PlivoValidationException(String.format("use one of [greaterOrEqual, greaterThan, lessOrEqual, " + 049 "lessThan for %s", fieldName)); 050 } 051 if (time.greaterOrEqual() != null && !Utils.isValidTimeString(time.greaterOrEqual())) { 052 throw new PlivoValidationException(String.format("invalid greaterOrEqual value: %s", time.greaterOrEqual())); 053 } 054 if (time.greaterThan() != null && !Utils.isValidTimeString(time.greaterThan())) { 055 throw new PlivoValidationException(String.format("invalid greaterThan value: %s", time.greaterThan())); 056 } 057 if (time.lessOrEqual() != null && !Utils.isValidTimeString(time.lessOrEqual())) { 058 throw new PlivoValidationException(String.format("invalid lessOrEqual value: %s", time.lessOrEqual())); 059 } 060 if (time.lessThan() != null && !Utils.isValidTimeString(time.lessThan())) { 061 throw new PlivoValidationException(String.format("invalid lessThan value: %s", time.lessThan())); 062 } 063 } 064}