Skip to content

Commit

Permalink
First Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Haiiii76 committed Sep 10, 2023
1 parent 62c5019 commit 91aa308
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 0 deletions.
71 changes: 71 additions & 0 deletions force-app/main/default/classes/BatchApexCalloutNPS.cls
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
public class BatchApexCalloutNPS implements Database.Batchable<sObject>, Database.AllowsCallouts, Database.Stateful{

public Set<Id> orderIdSet = new Set<Id>();
public string responseErrorMessage = '';

public BatchApexCalloutNPS(Set<Id> orderIdSet) {
this.orderIdSet = orderIdSet;
}

public Database.QueryLocator start(Database.BatchableContext bc) {
System.debug('size from start method '+ orderIdSet.size());
return Database.getQueryLocator([
SELECT Id, OrderNumber, CustomerAuthorizedBy.Email
FROM Order
WHERE ID in :orderIdSet
]);
}

public void execute(Database.BatchableContext bc, List<sObject> scope) {
System.debug('Size from execute '+ scope.size());
//for (Order ord: (List<Order>) scope) {
responseMessage = makeCallout(scope);
//}
}

public void finish(Database.BatchableContext BC){
if(responseErrorMessage != ''){

}
}

private string makeCallout(List<Order> ordList) {
if(responseErrorMessage == ''){
try{
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint('callout:NPS');
request.setHeader('Content-Type', 'application/json');
request.setMethod('POST');
String jsonBody = makeJsonString(ordList);
/*String jsonBody = JSON.serialize(
new Map<String, Object> {
'sfId' => ord.Id,
'orderNumber' => ord.OrderNumber,
'customerEmail' => ord.CustomerAuthorizedBy.Email
});*/
request.setBody(jsonBody);
HttpResponse response = http.send(request);
Integer httpResponseCode = response.getStatusCode();
if(httpResponseCode != 200){
responseErrorMessage = response.getStatus();
}
}catch (Exception e) {
System.debug('Error:' + e.getMessage() + 'Line no:' + e.getLineNumber() );
}
}
return responseErrorMessage;
}

private String makeJsonString(List<Order> ordList){
Map<String, Object> resultMap = new Map<String, Object>();
for(Order ord : ordList){
resultMap.put('sfId', ord.Id);
resultMap.put('orderNumber', ord.OrderNumber);
resultMap.put('customerEmail', ord.CustomerAuthorizedBy.Email);
}
String jsonBody = JSON.serialize(resultMap);
return jsonBody;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>58.0</apiVersion>
<status>Active</status>
</ApexClass>

0 comments on commit 91aa308

Please sign in to comment.