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