You need to sign in to do that
Don't have an account?
Ashu sharma 38
how to get the list of records using workbench
Hi,
I am trying to get response using workbench via creted custom api url mapping,but how to use this into workbench.
@RestResource(urlMapping='/LeadActivity/*')
global with sharing class myActivityTask {
@HttpGet
global static list<lead> doGetLead(){
list<task> activityLog=new list<task> ();
List<id> leadsId = new List<id>();
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String TaskId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
list<Task> taskList=[SELECT CallObject,CallType,CompletedDateTime,CreatedById,CreatedDate FROM Task];
for(task str:taskList){
leadsId.add(str.WhoId);
}
list<Lead> result = [SELECT Id, Name, Phone, Website FROM Lead WHERE Id = :leadsId];
return result;
}
}
I am trying to get response using workbench via creted custom api url mapping,but how to use this into workbench.
@RestResource(urlMapping='/LeadActivity/*')
global with sharing class myActivityTask {
@HttpGet
global static list<lead> doGetLead(){
list<task> activityLog=new list<task> ();
List<id> leadsId = new List<id>();
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String TaskId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
list<Task> taskList=[SELECT CallObject,CallType,CompletedDateTime,CreatedById,CreatedDate FROM Task];
for(task str:taskList){
leadsId.add(str.WhoId);
}
list<Lead> result = [SELECT Id, Name, Phone, Website FROM Lead WHERE Id = :leadsId];
return result;
}
}
Is it necessary to have it from workbench? Can you try it with Postman?
No its not required(I know only workbench).
@RestResource(urlMapping='/leadactivity/getlist/*')
global with sharing class myActivityTask {
@HttpGet
global static list<cust_map> doGetLead(){
list<task> activityLog=new list<task> ();
Map<Task,Id> CombinedItems=new Map<Task,Id>();
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
map<string,string> paramsMap=RestContext.request.params;
string actdate=paramsMap.get('actdate');
system.debug('Result' +actdate);
Datetime dt1 = Datetime.valueOf(actdate);
list<cust_map> results = new list<cust_map>();
list<Task> taskList=[SELECT Subject,CallType,CompletedDateTime,CreatedById,CreatedDate,WhoId,who.type FROM Task where CreatedDate>:dt1];
for(task str:taskList){
cust_map obj = new cust_map();
if(str.who.type!='Lead')
continue;
Lead result = [SELECT ID FROM Lead WHERE Id = :str.WhoId];
obj.CallObject = str.Subject;
obj.CallType = str.CallType;
obj.CompletedDateTime = str.CompletedDateTime;
obj.lId = result.ID;
results.add(obj);
}
return results;
}
global class cust_map{
Global String CallObject=null;
Global String CallType=null;
Global Datetime CompletedDateTime=null;
Global String lId = null;
}
}
Thanks
Can you try it with apex execute in workbench from
list<task> activityLog=new list<task> ();
Map<Task,Id> CombinedItems=new Map<Task,Id>();
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
map<string,string> paramsMap=RestContext.request.params;
string actdate=paramsMap.get('actdate');
system.debug('Result' +actdate);
Datetime dt1 = Datetime.valueOf(actdate);
list<cust_map> results = new list<cust_map>();
list<Task> taskList=[SELECT Subject,CallType,CompletedDateTime,CreatedById,CreatedDate,WhoId,who.type FROM Task where CreatedDate>:dt1];
for(task str:taskList){
cust_map obj = new cust_map();
if(str.who.type!='Lead')
continue;
Lead result = [SELECT ID FROM Lead WHERE Id = :str.WhoId];
obj.CallObject = str.Subject;
obj.CallType = str.CallType;
obj.CompletedDateTime = str.CompletedDateTime;
obj.lId = result.ID;
results.add(obj);
Its working fine.
Now I have check while deploy.Will connect you.
Thanks
Getting 50% code coverage.
Main class
@RestResource(urlMapping='/leadactivity/getlist/*')
global with sharing class myActivityTask {
@HttpGet
global static list<cust_map> doGetLead(){
list<task> activityLog=new list<task> ();
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
map<string,string> paramsMap=RestContext.request.params;
string actdate=paramsMap.get('actdate');
Datetime dt1 = Datetime.valueOf(actdate);
list<cust_map> results = new list<cust_map>();
list<Task> taskList=[SELECT WhoId,CompletedDateTime,Id,who.type FROM Task where CreatedDate>:dt1];
for(task str:taskList){
cust_map obj = new cust_map();
if(str.who.type!='Lead')
continue;
Lead result = [SELECT id FROM Lead WHERE Id = :str.WhoId];
obj.LeadID = str.WhoId;
obj.CallDateTime = str.CompletedDateTime;
results.add(obj);
}
return results;
}
global class cust_map{
Global String LeadID=null;
Global String CallCenterAgent=null;
Global Datetime CallDateTime=null;
Global String LMSID = null;
}
}
Test Class
=====
@isTest
private class MyActivityTask_Test{
public testmethod static void MyActivityTask(){
// insert lead data
lead l = new lead();
l.LastName = 'Test Lead';
l.Company = 'Test Company';
l.Status = 'Closed - Converted';
insert l;
task t = new task();
t.Subject = 'Test Subject';
t.Status = 'new';
t.Priority = 'Normal';
t.CallType = 'Outbound';
t.WhoId = l.Id;
insert t;
system.Test.startTest();
// call custom controller
myActivityTask mat = new myActivityTask();
myActivityTask.cust_map wrap = new myActivityTask.cust_map();
wrap.LeadID = t.WhoId;
wrap.CallDateTime = t.CompletedDateTime;
RestResponse res = new RestResponse();
RestRequest req = new RestRequest();
req.params.put('actdate', 'my_actdate');
req.httpMethod = 'Get';
req.addHeader('Content-Type', 'application/json'); // Add a JSON Header as it is validated
req.requestURI = '/services/apexrest/https:/veditechnologies-dev-ed.my.salesforce.com/leadactivity/getlist' ;
RestContext.request = req;
RestContext.response = res;
List<myActivityTask.cust_map> results = myActivityTask.doGetLead();
system.Test.stopTest();
}
}
Thanks
how it worked? what u did?
Can you please tell me which lines not covered?
thanks
Using wrapper and make object for that.
Below lines not covering
Datetime dt1 = Datetime.valueOf(actdate);
list<cust_map> results = new list<cust_map>();
list<Task> taskList=[SELECT WhoId,CompletedDateTime,Id,who.type FROM Task where CreatedDate>:dt1];
for(task str:taskList){
cust_map obj = new cust_map();
if(str.who.type!='Lead')
}
Thank you for your response.Kindly if possible.