@RestResource(urlMapping='/OFSHpExcept/*')
global with sharing class OFSHPExceptRest {
	@HttpPost
    global static void doPost(Id Eid) {
    	system.debug('OFSHPExceptRest.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, HPLeaveFlg__c, EndDateTime_org__c, StartDateTime_org__c
							from Event where id = :Eid];
		if (elist.size()<=0) {
			//error message:no event or wrong Id 
			res.statusCode = 200;
        	//jsonResponse = '{"status": "Failure", "Message": "No matching event was found"}';
        	jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "No matching event was found"}';
        	res.responseBody = blob.valueOf(jsonResponse);
       		return;
		} else {
			elist[0].WS_flg__c = !elist[0].WS_flg__c;
			try{
				update elist[0];
				system.debug('OFSHpLeaveRest.DurationInMinutes:' + elist[0].DurationInMinutes);
				res.statusCode = 200;
		        //jsonResponse = '{"status": "Success", "Message": "' + elist[0].Id + '"}';
		        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 = '{"status": "Failure", "Message": "' + ex + '"}';
		        jsonResponse = '{"'+ System.Label.OFSErrorStatus +'": "'+ System.Label.OFSErrorFailure +'", "'+ System.Label.OFSErrorMessage +'": "'+ ex +'"}';
		        res.responseBody = blob.valueOf(jsonResponse);
				return;
			}
		}
    }
}