...
Code Block | ||||
---|---|---|---|---|
| ||||
@RestResource(urlMapping='/jtelACD/writeCallStatistics') global with sharing class JTELACD_WriteCallStatistics { public static DateTime convertISO8601( String iso8601_ts ) { DateTime dt = (DateTime) JSON.deserialize( '"' + iso8601_ts + '"', DateTime.class ); return DateTime.newInstance( dt.getTime() ); // NOTE: return dt does not work! } public class JTELCallStatistics { public String SalesForceID; public String AgentUID; public Integer bOutbound; public String CallerID; public String ServiceNumber; public String ServiceName; public String AcdAgentGroupsName; public String AcdConfigurationGroupsName; public String dtCallStart; public String dtCallAlert; public String dtCallConnected; public String dtCallEnd; public Integer nDuration; public Integer CONNRES; public Integer Cause; public String TransactionCodeExportKey; } @HttpPost global static String doPost() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; try { // Deserialize the JSON JTELCallStatistics callStatistics = (JTELCallStatistics) System.JSON.deserialize( req.requestBody.toString(), JTELCallStatistics.class ); // Create a new task, and full some of the fields if( ( callStatistics.CONNRES == 1 ) ) { && ( callStatistics.dtCallConnected.length() > 0 ) ) { Datetime dtConnected Datetime dtConnected = Datetime.parseconvertISO8601( callStatistics.dtCallConnected ); Task task = new Task(); task.ActivityDate = dtConnected.date(); task.CallDisposition = 'Completed'; task.Subject = 'Call with Agent ' + callStatistics.AgentUID; task.Description = 'Agent Group ' + callStatistics.AcdAgentGroupsName + '\r\nConfiguration ' + callStatistics.AcdConfigurationGroupsName; task.CallType = callStatistics.bOutbound <> 0 ? 'Outbound' : 'Inbound'; task.CallDurationInSeconds = callStatistics.nDuration; task.Status = 'Completed'; task.Type = 'Call'; // Link to sales force record task.WhoId = callStatistics.SalesForceID; // Insert insert task; } } catch( Exception e ) { res.statusCode = 500; // Internal server error return e.getMessage(); } // All OK res.statusCode = 200; return null; } } |
...