aboutsummaryrefslogtreecommitdiff
path: root/services/docker/mail-server/aws-sendmail/traffic.ts
blob: 4e92557e5bc84632f1ec4227212a4aa4cb6c4a9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { MailDeliverer } from "./mail.ts";
import { DbService } from "./db.ts";
import { DovecotMailDeliverer } from "./dovecot.ts";
import { AwsContext } from "./aws/base.ts";
import { AwsMailDeliverer } from "./aws/deliver.ts";

export abstract class MailTrafficHandler {
  constructor(
    public readonly receiver: MailDeliverer,
    public readonly sender: MailDeliverer,
  ) {}
}

export class AwsRelayTrafficHandler extends MailTrafficHandler {
  constructor(
    private readonly db: DbService,
    private readonly aws: AwsContext,
  ) {
    super(new DovecotMailDeliverer(), new AwsMailDeliverer(aws));
  }
}