Skip to content

Commit 20efdf2

Browse files
authored
Merging pull request #18882
* new sources * versions
1 parent 883ddb3 commit 20efdf2

File tree

19 files changed

+278
-13
lines changed

19 files changed

+278
-13
lines changed

components/microsoft_dynamics_365_sales/actions/create-custom-entity/create-custom-entity.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export default {
66
key: "microsoft_dynamics_365_sales-create-custom-entity",
77
name: "Create Custom Entity",
88
description: "Create a custom entity. [See the documentation](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/create-update-entity-definitions-using-web-api)",
9-
version: "0.0.5",
9+
version: "0.0.6",
1010
annotations: {
1111
destructiveHint: true,
1212
openWorldHint: true,

components/microsoft_dynamics_365_sales/actions/find-contact/find-contact.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "microsoft_dynamics_365_sales-find-contact",
55
name: "Find Contact",
66
description: "Search for a contact by id, name, or using a custom filter. [See the documentation](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/query/overview)",
7-
version: "0.0.5",
7+
version: "0.0.6",
88
annotations: {
99
destructiveHint: false,
1010
openWorldHint: true,

components/microsoft_dynamics_365_sales/microsoft_dynamics_365_sales.app.mjs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@ export default {
5454
};
5555
},
5656
},
57+
accountId: {
58+
type: "string",
59+
label: "Account ID",
60+
description: "Identifier of an account",
61+
async options() {
62+
const { value } = await this.listAccounts();
63+
return value?.map(({
64+
accountid: value, name: label,
65+
}) => ({
66+
value,
67+
label,
68+
})) || [];
69+
},
70+
},
5771
},
5872
methods: {
5973
_baseUrl() {
@@ -119,6 +133,12 @@ export default {
119133
...opts,
120134
});
121135
},
136+
listAccounts(opts = {}) {
137+
return this._makeRequest({
138+
path: "/accounts",
139+
...opts,
140+
});
141+
},
122142
getEntity({
123143
entityId, ...opts
124144
}) {

components/microsoft_dynamics_365_sales/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/microsoft_dynamics_365_sales",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"description": "Pipedream Microsoft Dynamics 365 Sales Components",
55
"main": "microsoft_dynamics_365_sales.app.mjs",
66
"keywords": [
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import common from "../common/common.mjs";
2+
3+
export default {
4+
...common,
5+
key: "microsoft_dynamics_365_sales-account-ownership-changed",
6+
name: "Account Ownership Changed",
7+
description: "Emit new event when the ownership of an account changes.",
8+
version: "0.0.1",
9+
type: "source",
10+
dedupe: "unique",
11+
methods: {
12+
...common.methods,
13+
_getOwnershipIds() {
14+
return this.db.get("ownershipIds") || {};
15+
},
16+
_setOwnershipIds(ownershipIds) {
17+
this.db.set("ownershipIds", ownershipIds);
18+
},
19+
getResourceFn() {
20+
return this.microsoftDynamics365Sales.listAccounts;
21+
},
22+
getArgs() {
23+
return {
24+
params: {
25+
"$orderby": "modifiedon desc",
26+
},
27+
};
28+
},
29+
getTsField() {
30+
return "modifiedon";
31+
},
32+
getRelevantResults(results) {
33+
const ownershipIds = this._getOwnershipIds();
34+
const relevantResults = [];
35+
for (const result of results) {
36+
if (ownershipIds[result.accountid] !== result._ownerid_value) {
37+
if (ownershipIds[result.accountid]) {
38+
relevantResults.push(result);
39+
}
40+
ownershipIds[result.accountid] = result._ownerid_value;
41+
}
42+
}
43+
this._setOwnershipIds(ownershipIds);
44+
return relevantResults;
45+
},
46+
generateMeta(account) {
47+
const ts = Date.parse(account.modifiedon);
48+
return {
49+
id: `${account.accountid}${ts}`,
50+
summary: `Account Ownership Changed: ${account.name}`,
51+
ts,
52+
};
53+
},
54+
},
55+
};
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import common from "../common/common.mjs";
2+
3+
export default {
4+
...common,
5+
key: "microsoft_dynamics_365_sales-account-status-changed",
6+
name: "Account Status Changed",
7+
description: "Emit new event when an account is activated or deactivated.",
8+
version: "0.0.1",
9+
type: "source",
10+
dedupe: "unique",
11+
methods: {
12+
...common.methods,
13+
_getStatuses() {
14+
return this.db.get("statuses") || {};
15+
},
16+
_setStatuses(statuses) {
17+
this.db.set("statuses", statuses);
18+
},
19+
getResourceFn() {
20+
return this.microsoftDynamics365Sales.listAccounts;
21+
},
22+
getArgs() {
23+
return {
24+
params: {
25+
"$orderby": "modifiedon desc",
26+
},
27+
};
28+
},
29+
getTsField() {
30+
return "modifiedon";
31+
},
32+
getRelevantResults(results) {
33+
const statuses = this._getStatuses();
34+
const relevantResults = [];
35+
for (const result of results) {
36+
if (statuses[result.accountid] !== result.statuscode) {
37+
if (statuses[result.accountid]) {
38+
relevantResults.push(result);
39+
}
40+
statuses[result.accountid] = result.statuscode;
41+
}
42+
}
43+
this._setStatuses(statuses);
44+
return relevantResults;
45+
},
46+
generateMeta(account) {
47+
const ts = Date.parse(account.modifiedon);
48+
return {
49+
id: `${account.accountid}${ts}`,
50+
summary: `Account Status Changed: ${account.name}`,
51+
ts,
52+
};
53+
},
54+
},
55+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import common from "../common/common.mjs";
2+
3+
export default {
4+
...common,
5+
key: "microsoft_dynamics_365_sales-contact-added-to-account",
6+
name: "Contact Added to Account",
7+
description: "Emit new event when a contact is added to an account.",
8+
version: "0.0.1",
9+
type: "source",
10+
dedupe: "unique",
11+
props: {
12+
...common.props,
13+
accountId: {
14+
propDefinition: [
15+
common.props.microsoftDynamics365Sales,
16+
"accountId",
17+
],
18+
},
19+
},
20+
methods: {
21+
...common.methods,
22+
getResourceFn() {
23+
return this.microsoftDynamics365Sales.listAccounts;
24+
},
25+
getArgs() {
26+
return {
27+
params: {
28+
"$filter": `accountid eq ${this.accountId}`,
29+
"$expand": "contact_customer_accounts",
30+
},
31+
};
32+
},
33+
getTsField() {
34+
return "modifiedon";
35+
},
36+
getRelevantResults(results) {
37+
const relevantResults = [];
38+
const account = results[0];
39+
account.contact_customer_accounts.forEach((contact) => {
40+
relevantResults.push({
41+
...contact,
42+
addedToAccountOn: account.modifiedon,
43+
});
44+
});
45+
return relevantResults;
46+
},
47+
generateMeta(contact) {
48+
const ts = Date.parse(contact.addedToAccountOn);
49+
return {
50+
id: `${contact.contactid}${ts}`,
51+
summary: `Contact Added to Account: ${contact.fullname}`,
52+
ts,
53+
};
54+
},
55+
},
56+
};
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import common from "../common/common.mjs";
2+
3+
export default {
4+
...common,
5+
key: "microsoft_dynamics_365_sales-new-account-activity",
6+
name: "New Account Activity",
7+
description: "Emit new event when a new task or activity is created for an account.",
8+
version: "0.0.1",
9+
type: "source",
10+
dedupe: "unique",
11+
props: {
12+
...common.props,
13+
accountId: {
14+
propDefinition: [
15+
common.props.microsoftDynamics365Sales,
16+
"accountId",
17+
],
18+
},
19+
},
20+
methods: {
21+
...common.methods,
22+
getResourceFn() {
23+
return this.microsoftDynamics365Sales.listActivityPointers;
24+
},
25+
getArgs() {
26+
return {
27+
params: {
28+
"$orderby": "createdon desc",
29+
"$filter": `_regardingobjectid_value eq ${this.accountId}`,
30+
},
31+
};
32+
},
33+
getTsField() {
34+
return "createdon";
35+
},
36+
generateMeta(activity) {
37+
const ts = Date.parse(activity.createdon);
38+
return {
39+
id: `${activity.accountid}${ts}`,
40+
summary: `New Account Activity: ${activity.subject}`,
41+
ts,
42+
};
43+
},
44+
},
45+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import common from "../common/common.mjs";
2+
3+
export default {
4+
...common,
5+
key: "microsoft_dynamics_365_sales-new-account-created",
6+
name: "New Account Created",
7+
description: "Emit new event when a new account is created.",
8+
version: "0.0.1",
9+
type: "source",
10+
dedupe: "unique",
11+
methods: {
12+
...common.methods,
13+
getResourceFn() {
14+
return this.microsoftDynamics365Sales.listAccounts;
15+
},
16+
getArgs() {
17+
return {
18+
params: {
19+
"$orderby": "createdon desc",
20+
},
21+
};
22+
},
23+
getTsField() {
24+
return "createdon";
25+
},
26+
generateMeta(account) {
27+
return {
28+
id: account.accountid,
29+
summary: `New Account: ${account.name}`,
30+
ts: Date.parse(account.createdon),
31+
};
32+
},
33+
},
34+
};

components/microsoft_dynamics_365_sales/sources/new-opportunity-activity/new-opportunity-activity.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default {
55
key: "microsoft_dynamics_365_sales-new-opportunity-activity",
66
name: "New Opportunity Activity",
77
description: "Emit new event when a new task or activity is created for an opportunity.",
8-
version: "0.0.1",
8+
version: "0.0.2",
99
type: "source",
1010
dedupe: "unique",
1111
props: {

0 commit comments

Comments
 (0)