mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
/*
 | 
						|
Copyright (c) 2012 Twilio, Inc.
 | 
						|
 | 
						|
Permission is hereby granted, free of charge, to any person
 | 
						|
obtaining a copy of this software and associated documentation
 | 
						|
files (the "Software"), to deal in the Software without
 | 
						|
restriction, including without limitation the rights to use,
 | 
						|
copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
						|
copies of the Software, and to permit persons to whom the
 | 
						|
Software is furnished to do so, subject to the following
 | 
						|
conditions:
 | 
						|
 | 
						|
The above copyright notice and this permission notice shall be
 | 
						|
included in all copies or substantial portions of the Software.
 | 
						|
 | 
						|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
						|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 | 
						|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
						|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 | 
						|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 | 
						|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
						|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 | 
						|
OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
*/
 | 
						|
/**
 | 
						|
 * Entry point for accessing Twilio resources that are pre-configured
 | 
						|
 * with credentials from the Twilio Config custom setting (TwilioConfig__c).
 | 
						|
 *
 | 
						|
 * To set up your Twilio credentials:
 | 
						|
 *   1. Get a Twilio account at http://www.twilio.com/try-twilio
 | 
						|
 *   2. Find your Twilio Account Sid and Auth Token at https://www.twilio.com/user/account
 | 
						|
 *   3. Log into Salesforce and go to:  Setup | Develop | Custom Settings | Manage Twilio Config
 | 
						|
 *   4. Create a new Twilo Config instance
 | 
						|
 *   5. Copy and paste your Account Sid and Auth Token and click Save
 | 
						|
 *
 | 
						|
 * NOTE: The Application Sid field is for use with the Twilio Client softphone
 | 
						|
 *       SDK for Javascript.  It is not required for the rest of the Twilio API.
 | 
						|
 *
 | 
						|
 * Now you can get easy access to Twilio from your Apex code by calling:
 | 
						|
 *
 | 
						|
 *   TwilioRestClient restClient = TwilioAPI.getDefaultClient();
 | 
						|
 *   restClient.getAccount().getCalls(); 
 | 
						|
 *   // etc.  
 | 
						|
 */
 | 
						|
global class TwilioAPI {
 | 
						|
 | 
						|
	private class MissingTwilioConfigCustomSettingsException extends Exception {}
 | 
						|
 | 
						|
	private static TwilioRestClient client;
 | 
						|
	
 | 
						|
    private TwilioAPI() {}
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * Get a TwilioRestClient pre-populated with your TwilioConfig credentials
 | 
						|
     */
 | 
						|
    public static TwilioRestClient getDefaultClient() {
 | 
						|
    	if (client==null) {
 | 
						|
    		TwilioConfig__c twilioCfg = getTwilioConfig();
 | 
						|
	    	TwilioAPI.client = new TwilioRestClient(twilioCfg.AccountSid__c, twilioCfg.AuthToken__c);
 | 
						|
    	}
 | 
						|
	   	return TwilioAPI.client;
 | 
						|
    }
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * Get your primary account using your TwilioConfig credentials
 | 
						|
     */
 | 
						|
    public static TwilioAccount getDefaultAccount() {
 | 
						|
    	return getDefaultClient().getAccount();
 | 
						|
    }
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * Get a new Twilio Client capability token generator pre-populated
 | 
						|
     * with your TwilioConfig credentials
 | 
						|
     */
 | 
						|
    public static TwilioCapability createCapability() {
 | 
						|
		TwilioConfig__c twilioCfg = getTwilioConfig();
 | 
						|
		return new TwilioCapability(twilioCfg.AccountSid__c, twilioCfg.AuthToken__c);    	
 | 
						|
    }
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * Get a new TwilioRestClient authorized with the credentials provided
 | 
						|
     */
 | 
						|
    public static TwilioRestClient createClient(String accountSid, String authToken) {
 | 
						|
    	return new TwilioRestClient(accountSid, authToken);
 | 
						|
    }
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * Load the org default TwilioConfig record
 | 
						|
     */
 | 
						|
    public static TwilioConfig__c getTwilioConfig() {
 | 
						|
    	TwilioConfig__c twilioCfg;
 | 
						|
    	if (Test.isRunningTest()) {
 | 
						|
    		twilioCfg = new TwilioConfig__c();
 | 
						|
    		twilioCfg.AccountSid__c = 'ACba8bc05eacf94afdae398e642c9cc32d'; // dummy sid
 | 
						|
    		twilioCfg.AuthToken__c = '12345678901234567890123456789012';    // dummy token
 | 
						|
    	} else {
 | 
						|
    		twilioCfg = TwilioConfig__c.getOrgDefaults();
 | 
						|
	    	if (twilioCfg==null)
 | 
						|
	    		throw new MissingTwilioConfigCustomSettingsException('Please enter your Twilio account credentials under Twilio Config custom settings (go to Setup | Develop | Custom Settings | Manage Twilio Config)');
 | 
						|
    	}
 | 
						|
   		return twilioCfg;
 | 
						|
    }
 | 
						|
 | 
						|
    
 | 
						|
    @isTest
 | 
						|
    static void test_TwilioAPI() {
 | 
						|
		System.assertEquals('ACba8bc05eacf94afdae398e642c9cc32d', TwilioAPI.getTwilioConfig().AccountSid__c);
 | 
						|
		System.assertEquals('12345678901234567890123456789012', TwilioAPI.getTwilioConfig().AuthToken__c);
 | 
						|
		System.assertEquals('ACba8bc05eacf94afdae398e642c9cc32d', TwilioAPI.getDefaultClient().getAccountSid());
 | 
						|
		System.assertEquals('ACba8bc05eacf94afdae398e642c9cc32d', TwilioAPI.getDefaultClient().getAccount().getSid());
 | 
						|
		System.assertEquals('ACba8bc05eacf94afdae398e642c9cc32d', TwilioAPI.getDefaultAccount().getSid());
 | 
						|
	}
 | 
						|
	
 | 
						|
} |