@RestResource(urlMapping='/OFSHpArrive/*') global with sharing class OFSHpArriveRest { @HttpPost global static void doPost(Id Eid) { system.debug('OFSHpArriveRest.start'); 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, 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: 同時の到着されたevent をチェックする、 一つしかないはず if(elist[0].HPArriveFlg__c == false){ if(elist[0].StartDateTime_org__c==null && elist[0].EndDateTime_org__c==null){ elist[0].StartDateTime_org__c = elist[0].StartDateTime; elist[0].EndDateTime_org__c = elist[0].EndDateTime; } elist[0].StartDateTime = Datetime.now(); elist[0].EndDateTime = elist[0].StartDateTime.addMinutes(elist[0].DurationInMinutes) ; elist[0].HPArriveFlg__c = true; } else { //到着重複 res.statusCode = 200; jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "'+ System.Label.OFSErrorDuplication +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } 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 ) { //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; } } } }