Last updated
return {
request: {
body: 'grant_type=password&client_id=' + secrets.sf_client_id + '&client_secret=' + secrets.sf_client_secret + '&username=' + secrets.sf_username + '&password=' + secrets.sf_password
},
data: {
project_request: data
}
};let body;
if (response.headers['Content-Type'] === 'application/json;charset=UTF-8') {
body = JSON.parse(response.body);
}
else {
return {
decision: {
status: 'abort',
message: 'Content-Type is expected to be application/json;charset=UTF-8'
}
};
}
if (body?.access_token) {
return {
data: {
project_request: data.project_request,
sf_access_token: body.access_token
}
};
}
else {
return {
decision: {
status: 'abort',
message: 'Salesforce access token not found'
}
};
}if (data?.project_request && data?.sf_access_token) {
let closeDate = '2030-12-31';
if (data.project_request.project_request_end_date) {
closeDate = String.slice(data.project_request.project_request_end_date, 0, 10);
}
return {
request: {
headers: {
'Authorization': 'Bearer ' + data.sf_access_token
},
body: {
'Name': data.project_request.project_request_name,
'StageName': 'Needs Analysis',
'CloseDate': closeDate
}
}
};
}
else {
return {
decision: {
status: 'abort',
message: 'Salesforce access token not found'
}
};
}let body;
if (response.headers['Content-Type'] === 'application/json;charset=UTF-8') {
body = JSON.parse(response.body);
}
else {
return {
decision: {
status: 'abort',
message: 'Content-Type is expected to be application/json;charset=UTF-8'
}
};
}
if (response.statusCode === 201 && body?.id && body.success === true) {
return {
decision: 'finish'
};
}
else {
return {
decision: {
status: 'abort',
message: 'Salesforce Opportunity not created'
}
};
}