diff --git a/components/sms_messages/actions/send-registered-sms-contract/send-registered-sms-contract.mjs b/components/sms_messages/actions/send-registered-sms-contract/send-registered-sms-contract.mjs new file mode 100644 index 0000000000000..2e182010182b2 --- /dev/null +++ b/components/sms_messages/actions/send-registered-sms-contract/send-registered-sms-contract.mjs @@ -0,0 +1,55 @@ +import smsMessages from "../../sms_messages.app.mjs"; + +export default { + key: "sms_messages-send-registered-sms-contract", + name: "Send Registered SMS Contract", + description: "Send a registered SMS contract using SMS Messages. [See the documentation](https://api.lleida.net/dtd/sms/v2/en/)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: false, + }, + props: { + smsMessages, + message: { + propDefinition: [ + smsMessages, + "message", + ], + }, + numbers: { + propDefinition: [ + smsMessages, + "numbers", + ], + }, + email: { + propDefinition: [ + smsMessages, + "email", + ], + }, + }, + async run({ $ }) { + const response = await this.smsMessages.sendSMS({ + $, + data: { + sms: { + user: this.smsMessages.getUser(), + dst: { + num: this.numbers, + }, + txt: this.message, + delivery_receipt: { + cert_type: "T", + email: this.email, + }, + }, + }, + }); + $.export("$summary", "Successfully sent registered SMS contract"); + return response; + }, +}; diff --git a/components/sms_messages/actions/send-registered-sms/send-registered-sms.mjs b/components/sms_messages/actions/send-registered-sms/send-registered-sms.mjs new file mode 100644 index 0000000000000..c3ac6f8738917 --- /dev/null +++ b/components/sms_messages/actions/send-registered-sms/send-registered-sms.mjs @@ -0,0 +1,55 @@ +import smsMessages from "../../sms_messages.app.mjs"; + +export default { + key: "sms_messages-send-registered-sms", + name: "Send Registered SMS", + description: "Send a registered SMS message using SMS Messages. [See the documentation](https://api.lleida.net/dtd/sms/v2/en/)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: false, + }, + props: { + smsMessages, + message: { + propDefinition: [ + smsMessages, + "message", + ], + }, + numbers: { + propDefinition: [ + smsMessages, + "numbers", + ], + }, + email: { + propDefinition: [ + smsMessages, + "email", + ], + }, + }, + async run({ $ }) { + const response = await this.smsMessages.sendSMS({ + $, + data: { + sms: { + user: this.smsMessages.getUser(), + dst: { + num: this.numbers, + }, + txt: this.message, + delivery_receipt: { + cert_type: "D", + email: this.email, + }, + }, + }, + }); + $.export("$summary", "Successfully sent registered SMS message"); + return response; + }, +}; diff --git a/components/sms_messages/actions/send-sms/send-sms.mjs b/components/sms_messages/actions/send-sms/send-sms.mjs new file mode 100644 index 0000000000000..a4a75ded37400 --- /dev/null +++ b/components/sms_messages/actions/send-sms/send-sms.mjs @@ -0,0 +1,45 @@ +import smsMessages from "../../sms_messages.app.mjs"; + +export default { + key: "sms_messages-send-sms", + name: "Send SMS", + description: "Send an SMS message using SMS Messages. [See the documentation](https://api.lleida.net/dtd/sms/v2/en/)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: false, + }, + props: { + smsMessages, + message: { + propDefinition: [ + smsMessages, + "message", + ], + }, + numbers: { + propDefinition: [ + smsMessages, + "numbers", + ], + }, + }, + async run({ $ }) { + const response = await this.smsMessages.sendSMS({ + $, + data: { + sms: { + user: this.smsMessages.getUser(), + dst: { + num: this.numbers, + }, + txt: this.message, + }, + }, + }); + $.export("$summary", "Successfully sent SMS message"); + return response; + }, +}; diff --git a/components/sms_messages/package.json b/components/sms_messages/package.json index da5fb314bafdb..2261d882c75ea 100644 --- a/components/sms_messages/package.json +++ b/components/sms_messages/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/sms_messages", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream SMS Messages Components", "main": "sms_messages.app.mjs", "keywords": [ @@ -11,5 +11,8 @@ "author": "Pipedream (https://pipedream.com/)", "publishConfig": { "access": "public" + }, + "dependencies": { + "@pipedream/platform": "^3.1.1" } -} \ No newline at end of file +} diff --git a/components/sms_messages/sms_messages.app.mjs b/components/sms_messages/sms_messages.app.mjs index cf0b7a47062f4..3e974eb20d8eb 100644 --- a/components/sms_messages/sms_messages.app.mjs +++ b/components/sms_messages/sms_messages.app.mjs @@ -1,11 +1,42 @@ +import { axios } from "@pipedream/platform"; + export default { type: "app", app: "sms_messages", - propDefinitions: {}, + propDefinitions: { + message: { + type: "string", + label: "Message", + description: "The message to send", + }, + numbers: { + type: "string[]", + label: "Numbers", + description: "An array of phone numbers to send the message to. Phone numbers should be entered in international format (i.e. + followed by country code)", + }, + email: { + type: "string", + label: "Email", + description: "The delivery receipt email. An email will be sent to the given address whenever the operator notifies any change in the state of the SMS.", + }, + }, methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); + getUser() { + return this.$auth.username; + }, + sendSMS({ + $ = this, data = {}, + }) { + return axios($, { + url: "https://api.lleida.net/sms/v2/", + method: "POST", + headers: { + "Content-Type": "application/json; charset=utf-8", + "Accept": "application/json", + "Authorization": `x-api-key ${this.$auth.api_key}`, + }, + data, + }); }, }, -}; \ No newline at end of file +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fe83b377b8c9..b1b0361b14594 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13915,7 +13915,11 @@ importers: components/sms_magic: {} - components/sms_messages: {} + components/sms_messages: + dependencies: + '@pipedream/platform': + specifier: ^3.1.1 + version: 3.1.1 components/sms_partner: {}