Skip to content

Commit cc07a4e

Browse files
committed
alegra init
1 parent 303d3c8 commit cc07a4e

File tree

7 files changed

+1013
-2
lines changed

7 files changed

+1013
-2
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
import alegra from "../../alegra.app.mjs";
2+
import { axios } from "@pipedream/platform";
3+
4+
export default {
5+
key: "alegra-create-contact",
6+
name: "Create Contact",
7+
description: "Adds a new contact to Alegra. [See the documentation]().",
8+
version: "0.0.{{ts}}",
9+
type: "action",
10+
props: {
11+
alegra,
12+
name: {
13+
propDefinition: [
14+
"alegra",
15+
"name",
16+
],
17+
},
18+
identification: {
19+
propDefinition: [
20+
"alegra",
21+
"identification",
22+
],
23+
optional: true,
24+
},
25+
address: {
26+
propDefinition: [
27+
"alegra",
28+
"address",
29+
],
30+
optional: true,
31+
},
32+
city: {
33+
propDefinition: [
34+
"alegra",
35+
"city",
36+
],
37+
optional: true,
38+
},
39+
phonePrimary: {
40+
propDefinition: [
41+
"alegra",
42+
"phonePrimary",
43+
],
44+
optional: true,
45+
},
46+
phoneSecondary: {
47+
propDefinition: [
48+
"alegra",
49+
"phoneSecondary",
50+
],
51+
optional: true,
52+
},
53+
mobile: {
54+
propDefinition: [
55+
"alegra",
56+
"mobile",
57+
],
58+
optional: true,
59+
},
60+
email: {
61+
propDefinition: [
62+
"alegra",
63+
"email",
64+
],
65+
optional: true,
66+
},
67+
type: {
68+
propDefinition: [
69+
"alegra",
70+
"type",
71+
],
72+
optional: true,
73+
},
74+
status: {
75+
propDefinition: [
76+
"alegra",
77+
"status",
78+
],
79+
optional: true,
80+
},
81+
fax: {
82+
propDefinition: [
83+
"alegra",
84+
"fax",
85+
],
86+
optional: true,
87+
},
88+
debtToPay: {
89+
propDefinition: [
90+
"alegra",
91+
"debtToPay",
92+
],
93+
optional: true,
94+
},
95+
accountReceivable: {
96+
propDefinition: [
97+
"alegra",
98+
"accountReceivable",
99+
],
100+
optional: true,
101+
},
102+
internalContacts: {
103+
propDefinition: [
104+
"alegra",
105+
"internalContacts",
106+
],
107+
optional: true,
108+
},
109+
ignoreRepeated: {
110+
propDefinition: [
111+
"alegra",
112+
"ignoreRepeated",
113+
],
114+
optional: true,
115+
},
116+
statementAttached: {
117+
propDefinition: [
118+
"alegra",
119+
"statementAttached",
120+
],
121+
optional: true,
122+
},
123+
seller: {
124+
propDefinition: [
125+
"alegra",
126+
"sellerContact",
127+
],
128+
optional: true,
129+
},
130+
priceList: {
131+
propDefinition: [
132+
"alegra",
133+
"priceListContact",
134+
],
135+
optional: true,
136+
},
137+
term: {
138+
propDefinition: [
139+
"alegra",
140+
"termContact",
141+
],
142+
optional: true,
143+
},
144+
},
145+
async run({ $ }) {
146+
const response = await this.alegra.createContact();
147+
$.export("$summary", `Created contact with ID ${response.id}`);
148+
return response;
149+
},
150+
};
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
import alegra from "../../alegra.app.mjs";
2+
import { axios } from "@pipedream/platform";
3+
4+
export default {
5+
key: "alegra-create-invoice",
6+
name: "Create Invoice",
7+
description: "Creates a new invoice in Alegra. [See the documentation]()",
8+
version: "0.0.{{ts}}",
9+
type: "action",
10+
props: {
11+
alegra,
12+
items: {
13+
propDefinition: [
14+
"alegra",
15+
"items",
16+
],
17+
},
18+
dueDate: {
19+
propDefinition: [
20+
"alegra",
21+
"dueDate",
22+
],
23+
},
24+
date: {
25+
propDefinition: [
26+
"alegra",
27+
"date",
28+
],
29+
},
30+
client: {
31+
propDefinition: [
32+
"alegra",
33+
"client",
34+
],
35+
},
36+
status: {
37+
propDefinition: [
38+
"alegra",
39+
"statusInvoice",
40+
],
41+
optional: true,
42+
},
43+
numberTemplateId: {
44+
propDefinition: [
45+
"alegra",
46+
"numberTemplateId",
47+
],
48+
optional: true,
49+
},
50+
numberTemplatePrefix: {
51+
propDefinition: [
52+
"alegra",
53+
"numberTemplatePrefix",
54+
],
55+
optional: true,
56+
},
57+
numberTemplateNumber: {
58+
propDefinition: [
59+
"alegra",
60+
"numberTemplateNumber",
61+
],
62+
optional: true,
63+
},
64+
payments: {
65+
propDefinition: [
66+
"alegra",
67+
"payments",
68+
],
69+
optional: true,
70+
},
71+
estimate: {
72+
propDefinition: [
73+
"alegra",
74+
"estimate",
75+
],
76+
optional: true,
77+
},
78+
termsConditions: {
79+
propDefinition: [
80+
"alegra",
81+
"termsConditions",
82+
],
83+
optional: true,
84+
},
85+
annotation: {
86+
propDefinition: [
87+
"alegra",
88+
"annotation",
89+
],
90+
optional: true,
91+
},
92+
observations: {
93+
propDefinition: [
94+
"alegra",
95+
"observations",
96+
],
97+
optional: true,
98+
},
99+
seller: {
100+
propDefinition: [
101+
"alegra",
102+
"sellerInvoice",
103+
],
104+
optional: true,
105+
},
106+
pricelist: {
107+
propDefinition: [
108+
"alegra",
109+
"priceListInvoice",
110+
],
111+
optional: true,
112+
},
113+
currency: {
114+
propDefinition: [
115+
"alegra",
116+
"currency",
117+
],
118+
optional: true,
119+
},
120+
retentions: {
121+
propDefinition: [
122+
"alegra",
123+
"retentions",
124+
],
125+
optional: true,
126+
},
127+
warehouse: {
128+
propDefinition: [
129+
"alegra",
130+
"warehouse",
131+
],
132+
optional: true,
133+
},
134+
remissions: {
135+
propDefinition: [
136+
"alegra",
137+
"remissions",
138+
],
139+
optional: true,
140+
},
141+
costCenter: {
142+
propDefinition: [
143+
"alegra",
144+
"costCenter",
145+
],
146+
optional: true,
147+
},
148+
comments: {
149+
propDefinition: [
150+
"alegra",
151+
"comments",
152+
],
153+
optional: true,
154+
},
155+
periodicity: {
156+
propDefinition: [
157+
"alegra",
158+
"periodicity",
159+
],
160+
optional: true,
161+
},
162+
},
163+
async run({ $ }) {
164+
const invoice = await this.alegra.generateInvoice();
165+
$.export("$summary", `Created invoice with ID ${invoice.id}`);
166+
return invoice;
167+
},
168+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import alegra from "../../alegra.app.mjs";
2+
import { axios } from "@pipedream/platform";
3+
4+
export default {
5+
key: "alegra-find-contact",
6+
name: "Find Contact",
7+
description: "Search for an existing contact in Alegra based on email, phone number, or name. [See the documentation]()",
8+
version: "0.0.{{ts}}",
9+
type: "action",
10+
props: {
11+
alegra,
12+
query: {
13+
propDefinition: [
14+
"alegra",
15+
"query",
16+
],
17+
},
18+
},
19+
async run({ $ }) {
20+
const response = await this.alegra.searchContact();
21+
const contacts = response.items;
22+
$.export("$summary", `Found ${contacts.length} contact(s) matching your query`);
23+
return contacts;
24+
},
25+
};

0 commit comments

Comments
 (0)