|
21 | 21 | */ |
22 | 22 | package com.vonage.quickstart; |
23 | 23 |
|
| 24 | +import com.vonage.client.ApiRegion; |
| 25 | +import com.vonage.client.numbers.Feature; |
| 26 | +import com.vonage.client.numbers.SearchPattern; |
| 27 | +import com.vonage.client.numbers.Type; |
| 28 | +import com.vonage.client.numbers.UpdateNumberRequest; |
| 29 | +import com.vonage.client.verify.Psd2Request; |
| 30 | +import com.vonage.client.verify.VerifyRequest; |
| 31 | +import com.vonage.client.voice.TextToSpeechLanguage; |
| 32 | +import java.time.Instant; |
| 33 | +import java.util.Arrays; |
24 | 34 | import java.util.logging.ConsoleHandler; |
25 | 35 | import java.util.logging.Handler; |
26 | 36 | import java.util.logging.Level; |
27 | 37 | import java.util.logging.Logger; |
28 | 38 |
|
29 | 39 | /** |
30 | | - * This class contains utility methods designed to be statically imported into |
31 | | - * the quickstart main classes. |
| 40 | + * This class contains utility methods and environment variables designed to be statically |
| 41 | + * imported into the quickstart main classes. |
32 | 42 | */ |
33 | 43 | public class Util { |
| 44 | + |
34 | 45 | /** |
35 | 46 | * Configures logging if the QUICKSTART_DEBUG environment variable is set. |
36 | 47 | */ |
@@ -60,28 +71,128 @@ public static String envVar(String key) { |
60 | 71 | return value; |
61 | 72 | } |
62 | 73 |
|
63 | | - /** |
64 | | - * Look up a required environment variable and throw an |
65 | | - * IllegalArgumentException if the value is not one of "0", "1", "true", "false", "on" or "off". |
66 | | - * |
67 | | - * @param key the name of the environment variable |
68 | | - * @return the value |
69 | | - */ |
70 | | - public static boolean booleanEnvVar(String key) { |
71 | | - String stringValue = System.getenv(key); |
72 | | - if (stringValue == null) { |
73 | | - return false; |
74 | | - } else { |
75 | | - stringValue = stringValue.trim().toLowerCase(); |
76 | | - } |
| 74 | + public static final String |
| 75 | + VONAGE_API_KEY = envVar("VONAGE_API_KEY"), |
| 76 | + VONAGE_API_SECRET = envVar("VONAGE_API_SECRET"), |
| 77 | + VONAGE_SIGNATURE_SECRET = envVar("VONAGE_SIGNATURE_SECRET"), |
| 78 | + VONAGE_APPLICATION_ID = envVar("VONAGE_APPLICATION_ID"), |
| 79 | + VONAGE_PRIVATE_KEY_PATH = envVar("VONAGE_PRIVATE_KEY_PATH"), |
| 80 | + VONAGE_VIRTUAL_NUMBER = envVar("VONAGE_VIRTUAL_NUMBER"), |
| 81 | + ACCOUNT_ID = envVar("ACCOUNT_ID"), |
| 82 | + ACCOUNT_SECRET = envVar("ACCOUNT_SECRET"), |
| 83 | + ACCOUNT_SECRET_ID = envVar("ACCOUNT_SECRET_ID"), |
| 84 | + ACCOUNT_SMS_CALLBACK_URL = envVar("ACCOUNT_SMS_CALLBACK_URL"), |
| 85 | + APPLICATION_NAME = envVar("APPLICATION_NAME"), |
| 86 | + MESSAGES_TO_NUMBER = envVar("MESSAGES_TO_NUMBER"), |
| 87 | + MESSAGES_MESSAGE_ID = envVar("MESSAGES_MESSAGE_ID"), |
| 88 | + MESSAGES_IMAGE_URL = envVar("MESSAGES_IMAGE_URL"), |
| 89 | + MESSAGES_AUDIO_URL = envVar("MESSAGES_AUDIO_URL"), |
| 90 | + MESSAGES_VIDEO_URL = envVar("MESSAGES_VIDEO_URL"), |
| 91 | + MESSAGES_FILE_URL = envVar("MESSAGES_FILE_URL"), |
| 92 | + MESSAGES_VCARD_URL = envVar("MESSAGES_VCARD_URL"), |
| 93 | + MESSAGES_EMOJI = envVar("MESSAGES_EMOJI"), |
| 94 | + MESSAGES_CAPTION = envVar("MESSAGES_CAPTION"), |
| 95 | + SMS_SENDER_ID = envVar("SMS_SENDER_ID"), |
| 96 | + MMS_SENDER_ID = envVar("MMS_SENDER_ID"), |
| 97 | + RCS_SENDER_ID = envVar("RCS_SENDER_ID"), |
| 98 | + WHATSAPP_SENDER_ID = envVar("WHATSAPP_SENDER_ID"), |
| 99 | + VIBER_SENDER_ID = envVar("VIBER_SENDER_ID"), |
| 100 | + MESSENGER_SENDER_ID = envVar("MESSENGER_SENDER_ID"), |
| 101 | + MESSENGER_RECIPIENT_ID = envVar("MESSENGER_RECIPIENT_ID"), |
| 102 | + WHATSAPP_TEMPLATE_NAME = envVar("WHATSAPP_TEMPLATE_NAME"), |
| 103 | + WHATSAPP_OTP = envVar("WHATSAPP_OTP"), |
| 104 | + WHATSAPP_CATALOG_ID = envVar("WHATSAPP_CATALOG_ID"), |
| 105 | + WHATSAPP_PRODUCT_ID = envVar("WHATSAPP_PRODUCT_ID"), |
| 106 | + WHATSAPP_STICKER_ID = envVar("WHATSAPP_STICKER_ID"), |
| 107 | + WHATSAPP_STICKER_URL = envVar("WHATSAPP_STICKER_URL"), |
| 108 | + WHATSAPP_HEADER_IMAGE_URL = envVar("WHATSAPP_HEADER_IMAGE_URL"), |
| 109 | + WHATSAPP_TEMPLATE_NAMESPACE = envVar("WHATSAPP_TEMPLATE_NAMESPACE"), |
| 110 | + WHATSAPP_AUTH_TEMPLATE_NAME = envVar("WHATSAPP_AUTH_TEMPLATE_NAME"), |
| 111 | + WHATSAPP_TEMPLATE_REPLACEMENT_TEXT = envVar("WHATSAPP_TEMPLATE_REPLACEMENT_TEXT"), |
| 112 | + VIBER_THUMB_URL = envVar("VIBER_THUMB_URL"), |
| 113 | + MESSAGES_SANDBOX_VIBER_SERVICE_ID = envVar("MESSAGES_SANDBOX_VIBER_SERVICE_ID"), |
| 114 | + MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER = envVar("MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER"), |
| 115 | + MESSAGES_SANDBOX_FB_ID = envVar("MESSAGES_SANDBOX_FB_ID"), |
| 116 | + MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID = envVar("MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID"), |
| 117 | + MESSAGES_SANDBOX_WHATSAPP_NUMBER = envVar("MESSAGES_SANDBOX_WHATSAPP_NUMBER"), |
| 118 | + NV_MSISDN = envVar("NV_MSISDN"), |
| 119 | + NV_REDIRECT_URI = envVar("NV_REDIRECT_URI"), |
| 120 | + SIMSWAP_MSISDN = envVar("SIMSWAP_MSISDN"), |
| 121 | + INSIGHT_NUMBER = envVar("INSIGHT_NUMBER"), |
| 122 | + INSIGHT_CALLBACK_URL = envVar("INSIGHT_CALLBACK_URL"), |
| 123 | + NUMBER_MSISDN = envVar("NUMBER_MSISDN"), |
| 124 | + NUMBER_COUNTRY_CODE = envVar("NUMBER_COUNTRY_CODE"), |
| 125 | + NUMBER_SEARCH_CRITERIA = envVar("NUMBER_SEARCH_CRITERIA"), |
| 126 | + NUMBER_SMS_CALLBACK_URL = envVar("NUMBER_SMS_CALLBACK_URL"), |
| 127 | + NUMBER_VOICE_CALLBACK_URL = envVar("NUMBER_VOICE_CALLBACK_URL"), |
| 128 | + NUMBER_VOICE_STATUS_CALLBACK_URL = envVar("NUMBER_VOICE_STATUS_CALLBACK_URL"), |
| 129 | + PRICING_COUNTRY_CODE = envVar("PRICING_COUNTRY_CODE"), |
| 130 | + PRICING_DIAL_PREFIX = envVar("PRICING_DIAL_PREFIX"), |
| 131 | + VONAGE_REDACT_ID = envVar("VONAGE_REDACT_ID"), |
| 132 | + SMS_TO_NUMBER = envVar("SMS_TO_NUMBER"), |
| 133 | + SUBACCOUNT_KEY = envVar("SUBACCOUNT_KEY"), |
| 134 | + SUBACCOUNT_NAME = envVar("SUBACCOUNT_NAME"), |
| 135 | + SUBACCOUNT_SECRET = envVar("SUBACCOUNT_SECRET"), |
| 136 | + USER_ID = envVar("USER_ID"), |
| 137 | + USER_NAME = envVar("USER_NAME"), |
| 138 | + USER_DISPLAY_NAME = envVar("USER_DISPLAY_NAME"), |
| 139 | + USER_NEW_NAME = envVar("USER_NEW_NAME"), |
| 140 | + USER_NEW_DISPLAY_NAME = envVar("USER_NEW_DISPLAY_NAME"), |
| 141 | + WEBSOCKET_URI = envVar("WEBSOCKET_URI"), |
| 142 | + SIP_SECURE_URI = envVar("SIP_SECURE_URI"), |
| 143 | + SIP_USERNAME = envVar("SIP_USERNAME"), |
| 144 | + SIP_PASSWORD = envVar("SIP_PASSWORD"), |
| 145 | + VERIFY_NUMBER = envVar("VERIFY_NUMBER"), |
| 146 | + VERIFY_BRAND_NAME = envVar("VERIFY_BRAND_NAME"), |
| 147 | + VERIFY_PAYEE_NAME = envVar("VERIFY_PAYEE_NAME"), |
| 148 | + VERIFY_REQUEST_ID = envVar("VERIFY_REQUEST_ID"), |
| 149 | + VERIFY_CODE = envVar("VERIFY_CODE"), |
| 150 | + VERIFY_TO_EMAIL = envVar("VERIFY_TO_EMAIL"), |
| 151 | + VERIFY_FROM_EMAIL = envVar("VERIFY_FROM_EMAIL"), |
| 152 | + VERIFY_WHATSAPP_NUMBER = envVar("VERIFY_WHATSAPP_NUMBER"), |
| 153 | + VERIFY_TEMPLATE_NAME = envVar("VERIFY_TEMPLATE_NAME"), |
| 154 | + VERIFY_TEMPLATE_ID = envVar("VERIFY_TEMPLATE_ID"), |
| 155 | + VERIFY_TEMPLATE_FRAGMENT_ID = envVar("VERIFY_TEMPLATE_FRAGMENT_ID"), |
| 156 | + VOICE_CALL_ID = envVar("VOICE_CALL_ID"), |
| 157 | + VOICE_TO_NUMBER = envVar("VOICE_TO_NUMBER"), |
| 158 | + VOICE_TEXT = envVar("VOICE_TEXT"), |
| 159 | + VOICE_DTMF_DIGITS = envVar("VOICE_DTMF_DIGITS"), |
| 160 | + VOICE_CONFERENCE_NAME = envVar("VOICE_CONFERENCE_NAME"), |
| 161 | + VOICE_NCCO_URL = envVar("VOICE_NCCO_URL"), |
| 162 | + VOICE_ANSWER_URL = envVar("VOICE_ANSWER_URL"), |
| 163 | + VOICE_STREAM_URL = envVar("VOICE_STREAM_URL"), |
| 164 | + VOICE_RECORDING_URL = envVar("VOICE_RECORDING_URL"); |
77 | 165 |
|
78 | | - if ("1".equals(stringValue) || "true".equals(stringValue) || "on".equals(stringValue)) { |
79 | | - return true; |
80 | | - } else if ("0".equals(stringValue) || "false".equals(stringValue) || "off".equals(stringValue)) { |
81 | | - return false; |
82 | | - } else { |
83 | | - throw new IllegalArgumentException( |
84 | | - String.format("The value \"%s\" could not be converted to a boolean value", stringValue)); |
85 | | - } |
86 | | - } |
| 166 | + public static final int |
| 167 | + VIBER_VIDEO_DURATION = Integer.parseInt(envVar("VIBER_VIDEO_DURATION")), |
| 168 | + VIBER_VIDEO_FILE_SIZE = Integer.parseInt(envVar("VIBER_VIDEO_FILE_SIZE")), |
| 169 | + VIBER_VIDEO_TTL = Integer.parseInt(envVar("VIBER_VIDEO_TTL")), |
| 170 | + SIMSWAP_MAX_AGE = Integer.parseInt(envVar("SIMSWAP_MAX_AGE")), |
| 171 | + VBC_EXTENSION = Integer.parseInt(envVar("VBC_EXTENSION")); |
| 172 | + |
| 173 | + public static final Type |
| 174 | + NUMBER_TYPE = Type.fromString(envVar("NUMBER_TYPE")); |
| 175 | + |
| 176 | + public static final Feature[] |
| 177 | + NUMBER_FEATURES = Arrays.stream(envVar("NUMBER_FEATURES").split(",")) |
| 178 | + .map(Feature::fromString) |
| 179 | + .toArray(Feature[]::new); |
| 180 | + |
| 181 | + public static final SearchPattern |
| 182 | + NUMBER_SEARCH_PATTERN = SearchPattern.values()[Integer.parseInt(envVar("NUMBER_SEARCH_PATTERN"))]; |
| 183 | + |
| 184 | + public static final UpdateNumberRequest.CallbackType |
| 185 | + NUMBER_VOICE_CALLBACK_TYPE = UpdateNumberRequest.CallbackType.fromString(envVar("NUMBER_VOICE_CALLBACK_TYPE")); |
| 186 | + |
| 187 | + public static final VerifyRequest.Workflow |
| 188 | + VERIFY_WORKFLOW_ID = VerifyRequest.Workflow.values()[Integer.parseInt(envVar("VERIFY_WORKFLOW_ID")) + 1]; |
| 189 | + |
| 190 | + public static final Psd2Request.Workflow |
| 191 | + VERIFY_PSD2_WORKFLOW_ID = Psd2Request.Workflow.values()[Integer.parseInt(envVar("VERIFY_WORKFLOW_ID")) + 1]; |
| 192 | + |
| 193 | + public static final TextToSpeechLanguage |
| 194 | + VOICE_LANGUAGE = TextToSpeechLanguage.valueOf(envVar("VOICE_LANGUAGE")); |
| 195 | + |
| 196 | + public static final ApiRegion |
| 197 | + MESSAGES_GEOSPECIFIC_API_HOST = ApiRegion.fromString(envVar("MESSAGES_GEOSPECIFIC_API_HOST")); |
87 | 198 | } |
0 commit comments