@RestResource(urlMapping='/OFSHpCancel/*') global with sharing class OFSHpCancelRest { @HttpPost global static void doPost(Id Eid) { RestResponse res = RestContext.response; res.addHeader('Content-Type', 'application/json'); String jsonResponse; List elist = [select id, ActivityDate, OwnerId, Subject, whatid__c, EventC_ID__c, NextEventC_ID__c, AppCdId__c, SyncCreatedDate__c, StartDateTime, EndDateTime, DurationInMinutes, Main_Visit_Location__c, Activity_Type2__c, IsScheduled__c, BeforeActivityDate__c, Purpose_Type__c, Location, Related_Opportunity1__c, Related_Service1__c, Related_Opportunity1_ID__c, Related_Service1_ID__c, WS_flg__c, HPArriveFlg__c, HPLeaveFlg__c, EndDateTime_org__c, StartDateTime_org__c from Event where id = :Eid]; if(elist.size()<=0){ //TODO: //error message:no event or wrong Id res.statusCode = 200; jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "No matching event was found"}'; res.responseBody = blob.valueOf(jsonResponse); return; }else{ //TODO: //cancle if(elist[0].StartDateTime_org__c!=null && elist[0].EndDateTime_org__c!=null){ elist[0].StartDateTime = elist[0].StartDateTime_org__c; elist[0].EndDateTime = elist[0].EndDateTime_org__c; elist[0].DurationInMinutes = Integer.valueOf((elist[0].EndDateTime.getTime() - elist[0].StartDateTime.getTime()) / 1000 / 60); } elist[0].HPArriveFlg__c = false; elist[0].HPLeaveFlg__c = false; try{ update elist[0]; res.statusCode = 200; jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorSuccess +'", "'+ System.Label.OFSErrorMessage +'": "'+ elist[0].Id +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; }catch ( Exception ex ) { //TODO: //error message:cannot update exception res.statusCode = 200; jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "'+ ex +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } } } }