Create Apex Classes
    • Dark
      Light

    Create Apex Classes

    • Dark
      Light

    Article summary

    Create SFConnectorApi and SFConnectorApiTest apex classes.

    Creating Apex Class

    1. From Setup, enter Apex in the Quick Find box.

    2. Select Apex Classes.

    3. Paste the apex class content in the Apex Class tab.

    4. Click Save.

    Use the content below for the appropriate class.

    SFConnectorAPI Class Content

    public class SFConnectorApi {
        public static String getUserId() {
           //String JSONString = JSON.serialize(UserInfo.getUserId());
           return UserInfo.getUserId();
       }
        
        public static String getProfileId() {
           List<User> users = Database.query('SELECT profile.Id FROM user WHERE Id=\'' + UserInfo.getUserId() + '\'');
           String JSONString = JSON.serialize(users);
           return JSONString;
       }
        
       public static String getCapacityByUserId() {
           List<PresenceUserConfigUser> presenceConfigs = Database.query('SELECT PresenceUserConfig.Capacity FROM PresenceUserConfigUser WHERE UserId=\'' + UserInfo.getUserId() + '\'');
           String JSONString = JSON.serialize(presenceConfigs);
           return JSONString;
       }
        
       public static String getCapacityByProfileId() {
           List<PresenceUserConfigProfile> presenceConfigs = Database.query('SELECT PresenceUserConfig.Capacity FROM PresenceUserConfigProfile WHERE ProfileId=\'' + UserInfo.getProfileId() + '\'');
           String JSONString = JSON.serialize(presenceConfigs);
           return JSONString;
       }
        
        public static String getChatInfo(String chatId) {
            List<LiveChatTranscript> chatDetails = Database.query('SELECT Contact.Id, Contact.Name, Contact.Email, Lead.Id, Lead.Name, Lead.Email, Case.Id, Case.CaseNumber, Account.Id, Account.AccountNumber FROM LiveChatTranscript WHERE Id = \''+chatId+'\'');
            String JSONString = JSON.serialize(chatDetails);
            return JSONString;
        }
        
        public static String getCaseInfo(String caseId) {
            List<Case> caseDetails = Database.query('SELECT CaseNumber, Contact.Id, Contact.Name, Contact.Email FROM Case WHERE Id = \''+caseId+'\'');
            String JSONString = JSON.serialize(caseDetails);
            return JSONString;
        }
        
        public static String getServiceChannelById(String scId) {
           List<ServiceChannel> serviceChannels = Database.query('SELECT RelatedEntity FROM ServiceChannel WHERE Id=\'' + scId + '\'');
           String JSONString = JSON.serialize(serviceChannels);
           return JSONString;
       }
       
       public static String getObjectById(String objId, String obj, String colName) {
           List<Object> retObj = Database.query('SELECT ' + colName + ' FROM ' + obj + ' WHERE Id=\'' + objId + '\'');
           String JSONString = JSON.serialize(retObj);
           return JSONString;
       }
    }

    SFConnectorAPITest Class Content

    @isTest
    public class SFConnectorApiTest {
       static testMethod void getUserId() {
           String userId = SFConnectorApi.getUserId();
           System.assertEquals(true, userId.containsIgnoreCase(UserInfo.getUserId()));
       }
        
        public static String getProfileId() {
           List<User> users = Database.query('SELECT profile.Id FROM user WHERE Id=\'' + UserInfo.getUserId() + '\'');
           String JSONString = JSON.serialize(users);
           return JSONString;
       }
        
       public static String getCapacityByUserId() {
           List<PresenceUserConfigUser> presenceConfigs = Database.query('SELECT PresenceUserConfig.Capacity FROM PresenceUserConfigUser WHERE UserId=\'' + UserInfo.getUserId() + '\'');
           String JSONString = JSON.serialize(presenceConfigs);
           return JSONString;
       }
        
       public static String getCapacityByProfileId() {
           List<PresenceUserConfigProfile> presenceConfigs = Database.query('SELECT PresenceUserConfig.Capacity FROM PresenceUserConfigProfile WHERE ProfileId=\'' + UserInfo.getProfileId() + '\'');
           String JSONString = JSON.serialize(presenceConfigs);
           return JSONString;
       }
        
        public static String getChatInfo(String chatId) {
            List<LiveChatTranscript> chatDetails = Database.query('SELECT Contact.Id, Contact.Name, Contact.Email, Lead.Id, Lead.Name, Lead.Email, Case.Id, Case.CaseNumber, Account.Id, Account.AccountNumber FROM LiveChatTranscript WHERE Id = \''+chatId+'\'');
            String JSONString = JSON.serialize(chatDetails);
            return JSONString;
        }
        
        public static String getCaseInfo(String caseId) {
            List<Case> caseDetails = Database.query('SELECT CaseNumber, Contact.Id, Contact.Name, Contact.Email FROM Case WHERE Id = \''+caseId+'\'');
            String JSONString = JSON.serialize(caseDetails);
            return JSONString;
        }
        
        public static String getServiceChannelById(String scId) {
           List<ServiceChannel> serviceChannels = Database.query('SELECT RelatedEntity FROM ServiceChannel WHERE Id=\'' + scId + '\'');
           String JSONString = JSON.serialize(serviceChannels);
           return JSONString;
       }
       
       public static String getObjectById(String objId, String obj, String colName) {
           List<Object> retObj = Database.query('SELECT ' + colName + ' FROM ' + obj + ' WHERE Id=\'' + objId + '\'');
           String JSONString = JSON.serialize(retObj);
           return JSONString;
       }
    }


    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.
    ESC

    Eddy AI, facilitating knowledge discovery through conversational intelligence