@RestResource(urlMapping='/OFSUploadImage/*') global with sharing class OFSUploadImageRest { @HttpPost global static void doPost(String repairId, String ccImg, String acImg, String rqId) { system.debug('OFSUploadImageRest.start'); RestResponse res = RestContext.response; res.addHeader('Content-Type', 'application/json'); String jsonResponse; String ccId, acId; if (String.isNotBlank(repairId)) { Repair__c repair = [Select Id, contract_consent_id__c, acceptance_id__c From Repair__c Where Id= :repairId]; if (repair == null) { res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "no repair found"}'; res.responseBody = blob.valueOf(jsonResponse); return; } if (String.isNotBlank(ccImg)) { Repair_Quotation__c repairQ = [Select Id, contract_consent_id__c From Repair_Quotation__c Where Id= :rqId]; if (repairQ == null) { res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "no RepairQuotation found"}'; res.responseBody = blob.valueOf(jsonResponse); return; } Attachment att; if (String.isNotBlank(repairQ.contract_consent_id__c)) { att = [Select Id, Name, Body, ParentId From Attachment Where Id= :repairQ.contract_consent_id__c]; } else { att = new Attachment(); att.Name = 'ContractConsent.jpg'; att.ParentId = rqId; } att.Body = EncodingUtil.base64Decode(ccImg); try { if (String.isNotBlank(repairQ.contract_consent_id__c)) { update att; } else { insert att; } ccId = att.Id; repairQ.contract_consent_id__c = ccId; } catch ( Exception ex ) { //TODO: //error message:cannot update exception res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "error when try to upsert ContractConsent Attachment. '+ ex +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } try { update repairQ; } catch ( Exception ex ) { //TODO: //error message:cannot update exception res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "error when try to update RepairQuotation. '+ ex +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } } if (String.isNotBlank(acImg)) { Attachment att; if (String.isNotBlank(repair.acceptance_id__c)) { att = [Select Id, Name, Body, ParentId From Attachment Where Id= :repair.acceptance_id__c]; } else { att = new Attachment(); att.Name = 'Acceptance.jpg'; att.ParentId = repairId; } att.Body = EncodingUtil.base64Decode(acImg); try { if (String.isNotBlank(repair.acceptance_id__c)) { update att; } else { insert att; } acId = att.Id; } catch ( Exception ex ) { //TODO: //error message:cannot update exception res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "error when try to upsert Acceptance Attachment. '+ ex +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } } if (String.isNotBlank(ccId)) repair.Repair_Quotation_Id__c = rqId; if (String.isNotBlank(acId)) repair.acceptance_id__c = acId; try { update repair; res.statusCode = 200; jsonResponse = '{"status": "Success", "Message": "upload Success"}'; res.responseBody = blob.valueOf(jsonResponse); return; } catch ( Exception ex ) { //TODO: //error message:cannot update exception res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "error when try to update repair data. '+ ex +'"}'; res.responseBody = blob.valueOf(jsonResponse); return; } } else { res.statusCode = 200; jsonResponse = '{"status": "Failure", "Message": "no repair Id"}'; res.responseBody = blob.valueOf(jsonResponse); return; } } }