You need to sign in to do that
Don't have an account?
Mukesh Kumar 470
How can I get only subject records from these apex code.
public with sharing class HTMLEmailStatusController {
@TestVisible
private static Boolean doNotApplyRecordId = false;
@AuraEnabled(cacheable=true)
public static List<Map<String, Object>> getEmailStatuses(String objectName, String recordId){
// Get list of all the EmailStatus records
// associated with the passed recordId
System.debug( ' Querying ' + objectName + ' with id = ' + recordId );
// Build SOQL query
String query = 'SELECT';
query += ' ( SELECT';
query += ' Id,';
query += ' TaskId,';
query += ' Task.Subject,';
query += ' CreatedDate,';
query += ' FirstOpenDate,';
query += ' LastOpenDate,';
query += ' TimesOpened,';
query += ' EmailTemplateName';
query += ' FROM';
query += ' EmailStatuses';
query += ' ) ';
query += ' FROM';
query += ' ' + objectName;
if( !doNotApplyRecordId ) // Added to bypass the test because of platform limitations
query += ' WHERE Id = \'' + recordId + '\'';
System.debug( ' Constructed Query ' + query );
List<Map<String, Object>> emailStatuses = new List<Map<String, Object>>();
// Query records
for( sObject s : Database.query( query ) ) {
if( s.getSObjects( 'EmailStatuses' ) != null ) {
for( EmailStatus es : (List<EmailStatus>) s.getSObjects( 'EmailStatuses' ) ) {
emailStatuses.add( new Map<String, Object> {
'Id' => es.Id,
'TaskId' => es.Task.Id,
'Subject' => es.Task.Subject,
'CreatedDate' => es.CreatedDate,
'CreatedDateTimestamp' => es.CreatedDate != null ? es.CreatedDate.getTime() : null,
'FirstOpenDate' => es.FirstOpenDate,
'FirstOpenDateTimestamp' => es.FirstOpenDate != null ? es.FirstOpenDate.getTime() : null,
'LastOpenDate' => es.LastOpenDate,
'LastOpenDateTimestamp' => es.LastOpenDate != null ? es.LastOpenDate.getTime() : null,
'TimesOpened' => es.TimesOpened
});
}
}
}
return emailStatuses;
}
}
@TestVisible
private static Boolean doNotApplyRecordId = false;
@AuraEnabled(cacheable=true)
public static List<Map<String, Object>> getEmailStatuses(String objectName, String recordId){
// Get list of all the EmailStatus records
// associated with the passed recordId
System.debug( ' Querying ' + objectName + ' with id = ' + recordId );
// Build SOQL query
String query = 'SELECT';
query += ' ( SELECT';
query += ' Id,';
query += ' TaskId,';
query += ' Task.Subject,';
query += ' CreatedDate,';
query += ' FirstOpenDate,';
query += ' LastOpenDate,';
query += ' TimesOpened,';
query += ' EmailTemplateName';
query += ' FROM';
query += ' EmailStatuses';
query += ' ) ';
query += ' FROM';
query += ' ' + objectName;
if( !doNotApplyRecordId ) // Added to bypass the test because of platform limitations
query += ' WHERE Id = \'' + recordId + '\'';
System.debug( ' Constructed Query ' + query );
List<Map<String, Object>> emailStatuses = new List<Map<String, Object>>();
// Query records
for( sObject s : Database.query( query ) ) {
if( s.getSObjects( 'EmailStatuses' ) != null ) {
for( EmailStatus es : (List<EmailStatus>) s.getSObjects( 'EmailStatuses' ) ) {
emailStatuses.add( new Map<String, Object> {
'Id' => es.Id,
'TaskId' => es.Task.Id,
'Subject' => es.Task.Subject,
'CreatedDate' => es.CreatedDate,
'CreatedDateTimestamp' => es.CreatedDate != null ? es.CreatedDate.getTime() : null,
'FirstOpenDate' => es.FirstOpenDate,
'FirstOpenDateTimestamp' => es.FirstOpenDate != null ? es.FirstOpenDate.getTime() : null,
'LastOpenDate' => es.LastOpenDate,
'LastOpenDateTimestamp' => es.LastOpenDate != null ? es.LastOpenDate.getTime() : null,
'TimesOpened' => es.TimesOpened
});
}
}
}
return emailStatuses;
}
}
Thanks!