Skip to content

Commit 00c76d5

Browse files
committed
wip
1 parent a28b6b4 commit 00c76d5

File tree

6 files changed

+191
-1
lines changed

6 files changed

+191
-1
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import salesforce from "../../salesforce_rest_api.app.mjs";
2+
3+
export default {
4+
key: "salesforce_rest_api-get-case",
5+
name: "Get Case",
6+
description: "Retrieves a case by its ID. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_get_field_values.htm)",
7+
//version: "0.0.1",
8+
version: "0.0.{{ts}}",
9+
type: "action",
10+
props: {
11+
salesforce,
12+
caseId: {
13+
propDefinition: [
14+
salesforce,
15+
"recordId",
16+
() => ({
17+
objType: "Case",
18+
}),
19+
],
20+
label: "Case ID",
21+
description: "The case ID to retrieve",
22+
},
23+
},
24+
async run({ $ }) {
25+
const fields = (await this.salesforce.getFieldsForObjectType("Case")).map(({ name }) => name);
26+
27+
let query = `SELECT ${fields.join(", ")} FROM Case WHERE Id = '${this.caseId}'`;
28+
29+
const { records } = await this.salesforce.query({
30+
$,
31+
query,
32+
});
33+
34+
$.export("$summary", `Sucessfully retrieved case with ID ${this.caseId}`);
35+
return records[0];
36+
},
37+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import salesforce from "../../salesforce_rest_api.app.mjs";
2+
3+
export default {
4+
key: "salesforce_rest_api-get-user",
5+
name: "Get User",
6+
description: "Retrieves a user by their ID. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_get_field_values.htm)",
7+
version: "0.0.1",
8+
type: "action",
9+
props: {
10+
salesforce,
11+
userId: {
12+
propDefinition: [
13+
salesforce,
14+
"recordId",
15+
() => ({
16+
objType: "User",
17+
}),
18+
],
19+
},
20+
},
21+
async run({ $ }) {
22+
const fields = (await this.salesforce.getFieldsForObjectType("User")).map(({ name }) => name);
23+
24+
let query = `SELECT ${fields.join(", ")} FROM User WHERE Id = '${this.userId}'`;
25+
26+
const { records } = await this.salesforce.query({
27+
$,
28+
query,
29+
});
30+
31+
$.export("$summary", `Sucessfully retrieved user with ID ${this.userId}`);
32+
return records[0];
33+
},
34+
};
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import salesforce from "../../salesforce_rest_api.app.mjs";
2+
3+
export default {
4+
key: "salesforce_rest_api-list-case-comments",
5+
name: "List Case Comments",
6+
description: "Lists all comments for a case. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_get_field_values.htm)",
7+
version: "0.0.1",
8+
type: "action",
9+
props: {
10+
salesforce,
11+
caseId: {
12+
propDefinition: [
13+
salesforce,
14+
"recordId",
15+
() => ({
16+
objType: "Case",
17+
}),
18+
],
19+
},
20+
},
21+
async run({ $ }) {
22+
const fields = (await this.salesforce.getFieldsForObjectType("CaseComment")).map(({ name }) => name);
23+
let query = `SELECT ${fields.join(", ")} FROM CaseComment WHERE ParentId = '${this.caseId}'`;
24+
25+
const { records } = await this.salesforce.query({
26+
$,
27+
query,
28+
});
29+
$.export("$summary", `Sucessfully retrieved ${records.length} comments for case with ID ${this.caseId}`);
30+
return records;
31+
},
32+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import salesforce from "../../salesforce_rest_api.app.mjs";
2+
3+
export default {
4+
key: "salesforce_rest_api-list-email-messages",
5+
name: "List Email Messages",
6+
description: "Lists all email messages for a case. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_get_field_values.htm)",
7+
version: "0.0.1",
8+
type: "action",
9+
props: {
10+
salesforce,
11+
caseId: {
12+
propDefinition: [
13+
salesforce,
14+
"recordId",
15+
() => ({
16+
objType: "Case",
17+
}),
18+
],
19+
label: "Case ID",
20+
description: "The ID of the case to retrieve email messages for",
21+
},
22+
},
23+
async run({ $ }) {
24+
const fields = (await this.salesforce.getFieldsForObjectType("EmailMessage")).map(({ name }) => name);
25+
let query = `SELECT ${fields.join(", ")} FROM EmailMessage WHERE RelatedToId = '${this.caseId}'`;
26+
27+
const { records } = await this.salesforce.query({
28+
$,
29+
query,
30+
});
31+
$.export("$summary", `Sucessfully retrieved ${records.length} email messages for case with ID ${this.caseId}`);
32+
return records;
33+
},
34+
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import salesforce from "../../salesforce_rest_api.app.mjs";
2+
3+
export default {
4+
key: "salesforce_rest_api-send-email",
5+
name: "Send Email",
6+
description: "Sends an email. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_action.meta/api_action/actions_obj_email_simple.htm)",
7+
version: "0.0.{{ts}}",
8+
type: "action",
9+
props: {
10+
salesforce,
11+
emailAddress: {
12+
type: "string",
13+
label: "Email Address",
14+
description: "The email address to send the email to",
15+
},
16+
emailSubject: {
17+
type: "string",
18+
label: "Subject",
19+
description: "The subject of the email",
20+
},
21+
emailBody: {
22+
type: "string",
23+
label: "Body",
24+
description: "The body of the email",
25+
},
26+
},
27+
methods: {
28+
sendEmail(opts = {}) {
29+
return this.salesforce._makeRequest({
30+
url: `${this.salesforce._baseApiVersionUrl()}/actions/standard/emailSimple`,
31+
method: "POST",
32+
...opts,
33+
});
34+
},
35+
},
36+
async run({ $ }) {
37+
const response = await this.sendEmail({
38+
$,
39+
data: {
40+
inputs: [
41+
{
42+
emailAddresses: this.emailAddress,
43+
emailSubject: this.emailSubject,
44+
emailBody: this.emailBody,
45+
senderType: "CurrentUser",
46+
},
47+
],
48+
},
49+
});
50+
$.export("$summary", `Email sent to ${this.emailAddress}`);
51+
return response;
52+
},
53+
};

components/salesforce_rest_api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/salesforce_rest_api",
3-
"version": "1.6.1",
3+
"version": "1.7.0",
44
"description": "Pipedream Salesforce (REST API) Components",
55
"main": "salesforce_rest_api.app.mjs",
66
"keywords": [

0 commit comments

Comments
 (0)