@RestResource(urlMapping='/OFSUploadImage/*')
|
global with sharing class OFSUploadImageRest {
|
// 20231103 chenjingwu Lightning文件修改 Start
|
@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 = null;
|
try {
|
repair = [Select Id, contract_consent_id__c, acceptance_id__c From Repair__c Where Id= :repairId];
|
} catch ( Exception ex ) {
|
returnMessage('{"status": "Failure", "Message": "no repair found"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "no repair found"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
|
if (String.isNotBlank(ccImg)) {
|
Repair_Quotation__c repairQ = null;
|
try {
|
repairQ = [Select Id, contract_consent_id__c From Repair_Quotation__c Where Id= :rqId];
|
} catch ( Exception ex ) {
|
returnMessage('{"status": "Failure", "Message": "no RepairQuotation found"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "no RepairQuotation found"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 Start
|
// Attachment att;
|
ContentVersion version;
|
if (String.isNotBlank(repairQ.contract_consent_id__c)) {
|
// att = [Select Id, Name, Body, ParentId From Attachment Where Id= :repairQ.contract_consent_id__c];
|
version = [select Id,VersionData,Title from ContentVersion where Id =: repairQ.contract_consent_id__c];
|
} else {
|
version = new ContentVersion();
|
version.Title = 'ContractConsent.jpg';
|
version.ContentLocation = 's';
|
version.PathOnClient = 'ContractConsent.jpg';
|
// att = new Attachment();
|
// att.Name = 'ContractConsent.jpg';
|
// att.ParentId = rqId;
|
}
|
// att.Body = EncodingUtil.base64Decode(ccImg);
|
version.VersionData = EncodingUtil.base64Decode(ccImg);
|
try {
|
if (String.isNotBlank(repairQ.contract_consent_id__c)) {
|
update version;
|
}
|
else {
|
insert version;
|
version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.LinkedEntityId = rqId;
|
link.ContentDocumentId = version.ContentDocumentId;
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
insert link;
|
}
|
ccId = version.Id;
|
repairQ.contract_consent_id__c = ccId;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"status": "Failure", "Message": "error when try to upsert ContractConsent Attachment. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "error when try to upsert ContractConsent Attachment. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 End
|
|
try {
|
update repairQ;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"status": "Failure", "Message": "error when try to update RepairQuotation. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "error when try to update RepairQuotation. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
}
|
if (String.isNotBlank(acImg)) {
|
// 20231103 chenjingwu Lightning文件修改 Start
|
// Attachment att;
|
ContentVersion version;
|
if (String.isNotBlank(repair.acceptance_id__c)) {
|
// att = [Select Id, Name, Body, ParentId From Attachment Where Id= :repair.acceptance_id__c];
|
version = [select Id,Title,VersionData from ContentVersion where Id =: repair.acceptance_id__c];
|
} else {
|
version = new ContentVersion();
|
version.Title = 'Acceptance.jpg';
|
version.ContentLocation = 's';
|
version.PathOnClient = 'Acceptance.jpg';
|
// att = new Attachment();
|
// att.Name = 'Acceptance.jpg';
|
// att.ParentId = repairId;
|
}
|
// att.Body = EncodingUtil.base64Decode(acImg);
|
version.VersionData = EncodingUtil.base64Decode(acImg);
|
try {
|
if (String.isNotBlank(repair.acceptance_id__c)) {
|
update version;
|
}
|
else {
|
insert version;
|
version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
link.ContentDocumentId = version.ContentDocumentId;
|
link.LinkedEntityId = repairId;
|
insert link;
|
}
|
acId = version.Id;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"status": "Failure", "Message": "error when try to upsert Acceptance Attachment. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "error when try to upsert Acceptance Attachment. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 End
|
}
|
|
if (String.isNotBlank(ccId)) repair.Repair_Quotation_Id__c = rqId;
|
if (String.isNotBlank(acId)) repair.acceptance_id__c = acId;
|
try {
|
update repair;
|
returnMessage('{"status": "Success", "Message": "upload Success"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Success", "Message": "upload Success"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
} catch ( Exception ex ) {
|
//TODO:
|
//error message:cannot update exception
|
returnMessage('{"status": "Failure", "Message": "error when try to update repair data. '+ ex +'"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "error when try to update repair data. '+ ex +'"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
} else {
|
returnMessage('{"status": "Failure", "Message": "no repair Id"}',200);
|
// res.statusCode = 200;
|
// jsonResponse = '{"status": "Failure", "Message": "no repair Id"}';
|
// res.responseBody = blob.valueOf(jsonResponse);
|
// return;
|
}
|
}
|
|
public static void returnMessage(String response,Integer code){
|
RestResponse res = RestContext.response;
|
res.addHeader('Content-Type', 'application/json');
|
String jsonResponse;
|
res.statusCode = code;
|
jsonResponse = response;
|
res.responseBody = blob.valueOf(jsonResponse);
|
return;
|
}
|
// 20231103 chenjingwu Lightning文件修改 End
|
}
|