@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<Event> 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;
|
}
|
}
|
}
|
}
|