diff options
author | Chocobozzz <me@florianbigard.com> | 2021-07-30 16:51:27 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-08-02 10:39:51 +0200 |
commit | d26836cd95e981d636006652927773c7943e77ce (patch) | |
tree | 934a4a835bfddbf1c2c7da98d84ebd7623d60d49 /server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts | |
parent | 2bee9db56ade2b3b1bb0efa8716840d87efdb93f (diff) | |
download | PeerTube-d26836cd95e981d636006652927773c7943e77ce.tar.gz PeerTube-d26836cd95e981d636006652927773c7943e77ce.tar.zst PeerTube-d26836cd95e981d636006652927773c7943e77ce.zip |
Refactor notifier
Diffstat (limited to 'server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts')
-rw-r--r-- | server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts b/server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts new file mode 100644 index 000000000..c5bbb5447 --- /dev/null +++ b/server/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts | |||
@@ -0,0 +1,36 @@ | |||
1 | import { logger } from '@server/helpers/logger' | ||
2 | import { getAbuseTargetUrl } from '@server/lib/activitypub/url' | ||
3 | import { UserModel } from '@server/models/user/user' | ||
4 | import { MUserDefault } from '@server/types/models' | ||
5 | import { AbstractNewAbuseMessage } from './abstract-new-abuse-message' | ||
6 | |||
7 | export class NewAbuseMessageForReporter extends AbstractNewAbuseMessage { | ||
8 | private reporter: MUserDefault | ||
9 | |||
10 | async prepare () { | ||
11 | // Only notify our users | ||
12 | if (this.abuse.ReporterAccount.isOwned() !== true) return | ||
13 | |||
14 | await this.loadMessageAccount() | ||
15 | |||
16 | const reporter = await UserModel.loadByAccountActorId(this.abuse.ReporterAccount.actorId) | ||
17 | // Don't notify my own message | ||
18 | if (reporter.Account.id === this.message.accountId) return | ||
19 | |||
20 | this.reporter = reporter | ||
21 | } | ||
22 | |||
23 | log () { | ||
24 | logger.info('Notifying reporter of new abuse message on %s.', getAbuseTargetUrl(this.abuse)) | ||
25 | } | ||
26 | |||
27 | getTargetUsers () { | ||
28 | if (!this.reporter) return [] | ||
29 | |||
30 | return [ this.reporter ] | ||
31 | } | ||
32 | |||
33 | createEmail (to: string) { | ||
34 | return this.createEmailFor(to, 'reporter') | ||
35 | } | ||
36 | } | ||