@RestResource(urlMapping='/project/*')
global with sharing class ProjectRESTService {
@HttpPost
global static String postProjectData(String ProjectRef, String ProjectName, String OpportunityId, Date StartDate, Date EndDate, Double Amount, String Status) {
SavePoint sp = Database.setSavepoint();
try {
Project__c p = new Project__c(ProjectRef__c=ProjectRef, Name=ProjectName, Opportunity__c=OpportunityId, Start_Date__c=StartDate, End_Date__c=EndDate, Billable_Amount__c=Amount, Status__c=Status);
upsert p ProjectRef__c;
Opportunity o = new Opportunity(Id=OpportunityId, DeliveryInstallationStatus__c='In Progress');
update o;
return 'OK';
} catch (Exception e) {
System.debug('~~~ Cause: ' + e.getCause() + ' Message: ' + e.getMessage() + ' getLineNumber: ' + e.getLineNumber() + ' StackTrace: ' + e.getStackTraceString() + ' Type: ' + e.getTypeName());
Database.rollback(sp);
return e.getMessage();
}
}
}
Hi Can anyone share the full code same issue i am facing .Below is my error:Challenge Not yet complete... here's what's wrong:The 'ProjectRESTService' Apex REST service does not appear to be working properly. Calling the service either didn't update the opportunity correctly, return the string 'OK', create an associated project correctly or function correctly in general.And below is my code.@RestResource(urlMapping = '/project/*')global with sharing class ProjectRESTService { @HttpPost global static String postProjectData(String ProjectRef, String ProjectName, String OpportunityId, Date StartDate, Date EndDate, Double Amount, String Status){ String retMsg = 'Error'; SavePoint sp1 = Database.setSavePoint(); try{ List<Opportunity> lstOfOpps = new List<Opportunity>(); if(OpportunityId != null && OpportunityId.trim().length() > 0){ Opportunity opp = [SELECT Id, DeliveryInstallationStatus__c, Discount_Percent__c FROM Opportunity WHERE Id = :OpportunityId]; opp.DeliveryInstallationStatus__c = 'In progress'; lstOfOpps.add(opp); } UPDATE lstOfOpps; List<Project__c> lstOfRrjts = new List<Project__c>(); Project__c prjt = new Project__c(); prjt.ProjectRef__c = ProjectRef; prjt.Name = ProjectName; prjt.Opportunity__c = OpportunityId; prjt.Start_Date__c = StartDate; prjt.End_Date__c = EndDate; prjt.Billable_Amount__c = Amount; prjt.Status__c = Status; lstOfRrjts.add(prjt); UPSERT lstOfRrjts; retMsg = 'OK'; }catch(Exception ex){ Database.rollback(sp1); retMsg = ex.getMessage(); } return retMsg; }}