From 71225717b881169cd0f2e74f2a5864d4f1569e85 Mon Sep 17 00:00:00 2001 From: Rafael Tapia Date: Mon, 26 Aug 2024 18:37:47 -0300 Subject: [PATCH 1/4] feat: implement email bridge --- apps/meteor/app/apps/server/bridges/bridges.js | 6 ++++++ apps/meteor/app/apps/server/bridges/email.ts | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 apps/meteor/app/apps/server/bridges/email.ts diff --git a/apps/meteor/app/apps/server/bridges/bridges.js b/apps/meteor/app/apps/server/bridges/bridges.js index 6d52a1d8e56d..aeab9f191039 100644 --- a/apps/meteor/app/apps/server/bridges/bridges.js +++ b/apps/meteor/app/apps/server/bridges/bridges.js @@ -5,6 +5,7 @@ import { AppApisBridge } from './api'; import { AppCloudBridge } from './cloud'; import { AppCommandsBridge } from './commands'; import { AppDetailChangesBridge } from './details'; +import { AppEmailBridge } from './email'; import { AppEnvironmentalVariableBridge } from './environmental'; import { AppHttpBridge } from './http'; import { AppInternalBridge } from './internal'; @@ -53,6 +54,7 @@ export class RealAppBridges extends AppBridges { this._moderationBridge = new AppModerationBridge(orch); this._threadBridge = new AppThreadBridge(orch); this._roleBridge = new AppRoleBridge(orch); + this._emailBridge = new AppEmailBridge(orch); } getCommandBridge() { @@ -150,4 +152,8 @@ export class RealAppBridges extends AppBridges { getRoleBridge() { return this._roleBridge; } + + getEmailBridge() { + return this._emailBridge; + } } diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts new file mode 100644 index 000000000000..e64729ae0822 --- /dev/null +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -0,0 +1,16 @@ +import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { EmailBridge } from '@rocket.chat/apps-engine/server/bridges/EmailBridge'; +import type { IEmail } from '@rocket.chat/apps-engine/server/definitions/email'; + +import * as Mailer from '../../../mailer/server/api'; + +export class AppEmailBridge extends EmailBridge { + constructor(private readonly orch: IAppServerOrchestrator) { + super(); + } + + protected async sendEmail(email: IEmail, appId: string): Promise { + this.orch.debugLog(`The app ${appId} is sending an email.`); + await Mailer.send(email); + } +} From a47a0eb3092c3e58380d07daee463160e0960580 Mon Sep 17 00:00:00 2001 From: Rafael Tapia Date: Mon, 26 Aug 2024 18:45:30 -0300 Subject: [PATCH 2/4] Create tame-mayflies-press.md --- .changeset/tame-mayflies-press.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tame-mayflies-press.md diff --git a/.changeset/tame-mayflies-press.md b/.changeset/tame-mayflies-press.md new file mode 100644 index 000000000000..e470306cbc25 --- /dev/null +++ b/.changeset/tame-mayflies-press.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": minor +--- + +Implemented sending email via apps From 1589899c3056377267c9a86817ab17f33c3ae6d4 Mon Sep 17 00:00:00 2001 From: Rafael Tapia Date: Tue, 27 Aug 2024 10:27:01 -0300 Subject: [PATCH 3/4] chore: bump apps.engine version --- apps/meteor/ee/server/services/package.json | 2 +- apps/meteor/package.json | 2 +- ee/apps/ddp-streamer/package.json | 2 +- ee/packages/presence/package.json | 2 +- packages/apps/package.json | 2 +- packages/core-services/package.json | 2 +- packages/core-typings/package.json | 2 +- packages/fuselage-ui-kit/package.json | 2 +- packages/rest-typings/package.json | 2 +- yarn.lock | 26 ++++++++++----------- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/meteor/ee/server/services/package.json b/apps/meteor/ee/server/services/package.json index 58b73351c4e0..118c033826c5 100644 --- a/apps/meteor/ee/server/services/package.json +++ b/apps/meteor/ee/server/services/package.json @@ -18,7 +18,7 @@ "author": "Rocket.Chat", "license": "MIT", "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-services": "workspace:^", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/emitter": "~0.31.25", diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 9c49c2cb33f8..980145e88d21 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -230,7 +230,7 @@ "@rocket.chat/agenda": "workspace:^", "@rocket.chat/api-client": "workspace:^", "@rocket.chat/apps": "workspace:^", - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/base64": "workspace:^", "@rocket.chat/cas-validate": "workspace:^", "@rocket.chat/core-services": "workspace:^", diff --git a/ee/apps/ddp-streamer/package.json b/ee/apps/ddp-streamer/package.json index 1687042e0d31..fb492a70105d 100644 --- a/ee/apps/ddp-streamer/package.json +++ b/ee/apps/ddp-streamer/package.json @@ -15,7 +15,7 @@ ], "author": "Rocket.Chat", "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-services": "workspace:^", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/emitter": "~0.31.25", diff --git a/ee/packages/presence/package.json b/ee/packages/presence/package.json index 787eb2053007..9f2f50407b1d 100644 --- a/ee/packages/presence/package.json +++ b/ee/packages/presence/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@babel/preset-env": "~7.22.20", "@babel/preset-typescript": "~7.22.15", - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/eslint-config": "workspace:^", "@rocket.chat/rest-typings": "workspace:^", "@types/node": "^14.18.63", diff --git a/packages/apps/package.json b/packages/apps/package.json index 816e271535df..6b0dfc2beb68 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -18,7 +18,7 @@ "/dist" ], "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/model-typings": "workspace:^" } diff --git a/packages/core-services/package.json b/packages/core-services/package.json index fe1d4ef0dcea..0b9a14aaa90d 100644 --- a/packages/core-services/package.json +++ b/packages/core-services/package.json @@ -34,7 +34,7 @@ "extends": "../../package.json" }, "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/icons": "~0.38.0", "@rocket.chat/message-parser": "workspace:^", diff --git a/packages/core-typings/package.json b/packages/core-typings/package.json index 34bdc67438ca..30030fdf467a 100644 --- a/packages/core-typings/package.json +++ b/packages/core-typings/package.json @@ -22,7 +22,7 @@ "/dist" ], "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/icons": "~0.38.0", "@rocket.chat/message-parser": "workspace:^", "@rocket.chat/ui-kit": "workspace:~" diff --git a/packages/fuselage-ui-kit/package.json b/packages/fuselage-ui-kit/package.json index 9431a0c19d96..b0f2c694026b 100644 --- a/packages/fuselage-ui-kit/package.json +++ b/packages/fuselage-ui-kit/package.json @@ -63,7 +63,7 @@ "@babel/preset-env": "~7.22.20", "@babel/preset-react": "~7.22.15", "@babel/preset-typescript": "~7.22.15", - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/eslint-config": "workspace:^", "@rocket.chat/fuselage": "^0.57.0", diff --git a/packages/rest-typings/package.json b/packages/rest-typings/package.json index 53bd1d2f5cb2..760255b1541c 100644 --- a/packages/rest-typings/package.json +++ b/packages/rest-typings/package.json @@ -23,7 +23,7 @@ "/dist" ], "dependencies": { - "@rocket.chat/apps-engine": "1.45.0-alpha.866", + "@rocket.chat/apps-engine": "1.45.0-alpha.868", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/message-parser": "workspace:^", "@rocket.chat/ui-kit": "workspace:~", diff --git a/yarn.lock b/yarn.lock index f2e902295848..44e1db70b997 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8483,9 +8483,9 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/apps-engine@npm:1.45.0-alpha.866": - version: 1.45.0-alpha.866 - resolution: "@rocket.chat/apps-engine@npm:1.45.0-alpha.866" +"@rocket.chat/apps-engine@npm:1.45.0-alpha.868": + version: 1.45.0-alpha.868 + resolution: "@rocket.chat/apps-engine@npm:1.45.0-alpha.868" dependencies: "@msgpack/msgpack": 3.0.0-beta2 adm-zip: ^0.5.9 @@ -8501,7 +8501,7 @@ __metadata: uuid: ~8.3.2 peerDependencies: "@rocket.chat/ui-kit": "*" - checksum: 04abb4f712fcca206c6791322b52e2a3d97f3db06f606cd1f58fdda4e63d2123d7004bb445ad7582c52808c3ec4433d465d8855e24f3ab2f8457dafa6b017c5b + checksum: 3ac41e3de76be67e856e4bca888f113360628e510f9d4c66d70ed71d84f25bda6ca6659ead6c7a87d21c117c47bfa090b4508cce66e8630d2e935d3ed3158835 languageName: node linkType: hard @@ -8509,7 +8509,7 @@ __metadata: version: 0.0.0-use.local resolution: "@rocket.chat/apps@workspace:packages/apps" dependencies: - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/model-typings": "workspace:^" eslint: ~8.45.0 @@ -8582,7 +8582,7 @@ __metadata: "@babel/core": ~7.22.20 "@babel/preset-env": ~7.22.20 "@babel/preset-typescript": ~7.22.15 - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/eslint-config": "workspace:^" "@rocket.chat/icons": ~0.38.0 @@ -8609,7 +8609,7 @@ __metadata: version: 0.0.0-use.local resolution: "@rocket.chat/core-typings@workspace:packages/core-typings" dependencies: - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/eslint-config": "workspace:^" "@rocket.chat/icons": ~0.38.0 "@rocket.chat/message-parser": "workspace:^" @@ -8681,7 +8681,7 @@ __metadata: version: 0.0.0-use.local resolution: "@rocket.chat/ddp-streamer@workspace:ee/apps/ddp-streamer" dependencies: - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-services": "workspace:^" "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/ddp-client": "workspace:~" @@ -8879,7 +8879,7 @@ __metadata: "@babel/preset-env": ~7.22.20 "@babel/preset-react": ~7.22.15 "@babel/preset-typescript": ~7.22.15 - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/eslint-config": "workspace:^" "@rocket.chat/fuselage": ^0.57.0 @@ -9329,7 +9329,7 @@ __metadata: "@rocket.chat/agenda": "workspace:^" "@rocket.chat/api-client": "workspace:^" "@rocket.chat/apps": "workspace:^" - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/base64": "workspace:^" "@rocket.chat/cas-validate": "workspace:^" "@rocket.chat/core-services": "workspace:^" @@ -9952,7 +9952,7 @@ __metadata: "@babel/core": ~7.22.20 "@babel/preset-env": ~7.22.20 "@babel/preset-typescript": ~7.22.15 - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-services": "workspace:^" "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/eslint-config": "workspace:^" @@ -10066,7 +10066,7 @@ __metadata: version: 0.0.0-use.local resolution: "@rocket.chat/rest-typings@workspace:packages/rest-typings" dependencies: - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/eslint-config": "workspace:~" "@rocket.chat/message-parser": "workspace:^" @@ -36694,7 +36694,7 @@ __metadata: version: 0.0.0-use.local resolution: "rocketchat-services@workspace:apps/meteor/ee/server/services" dependencies: - "@rocket.chat/apps-engine": 1.45.0-alpha.866 + "@rocket.chat/apps-engine": 1.45.0-alpha.868 "@rocket.chat/core-services": "workspace:^" "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/emitter": ~0.31.25 From 227e694eb5f55f48c8ee0d05f84d9d4bd625eafe Mon Sep 17 00:00:00 2001 From: Rafael Tapia Date: Tue, 27 Aug 2024 11:14:46 -0300 Subject: [PATCH 4/4] fix: imports --- apps/meteor/app/apps/server/bridges/email.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts index e64729ae0822..4c9cb9a93ed6 100644 --- a/apps/meteor/app/apps/server/bridges/email.ts +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { EmailBridge } from '@rocket.chat/apps-engine/server/bridges/EmailBridge'; -import type { IEmail } from '@rocket.chat/apps-engine/server/definitions/email'; +import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; +import { EmailBridge } from '@rocket.chat/apps-engine/server/bridges'; import * as Mailer from '../../../mailer/server/api';