]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/server/emailer.model.ts
Merge branch 'release/4.0.0' into develop
[github/Chocobozzz/PeerTube.git] / shared / models / server / emailer.model.ts
index 2d8feda81d21f17e880d072d3502004a72fec8b1..39512d306147b8e6ac5301ef5ca0d088af52cdb9 100644 (file)
@@ -1,8 +1,49 @@
-export type SendEmailOptions = {
-  to: string[]
-  subject: string
+type From = string | { name?: string, address: string }
+
+interface Base extends Partial<SendEmailDefaultMessageOptions> {
+  to: string[] | string
+}
+
+interface MailTemplate extends Base {
+  template: string
+  locals?: { [key: string]: any }
+  text?: undefined
+}
+
+interface MailText extends Base {
+  text: string
+
+  locals?: Partial<SendEmailDefaultLocalsOptions> & {
+    title?: string
+    action?: {
+      url: string
+      text: string
+    }
+  }
+}
+
+interface SendEmailDefaultLocalsOptions {
+  instanceName: string
   text: string
+  subject: string
+}
 
-  fromDisplayName?: string
-  replyTo?: string
+interface SendEmailDefaultMessageOptions {
+  to: string[] | string
+  from: From
+  subject: string
+  replyTo: string
 }
+
+export type SendEmailDefaultOptions = {
+  template: 'common'
+
+  message: SendEmailDefaultMessageOptions
+
+  locals: SendEmailDefaultLocalsOptions & {
+    WEBSERVER: any
+    EMAIL: any
+  }
+}
+
+export type SendEmailOptions = MailTemplate | MailText