]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - shared/models/activitypub/activity.ts
Speed up activity pub http requests
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / activity.ts
... / ...
CommitLineData
1import { VideoChannelObject, VideoTorrentObject } from './objects'
2import { ActivityPubSignature } from './activitypub-signature'
3import { VideoAbuseObject } from './objects/video-abuse-object'
4
5export type Activity = ActivityCreate | ActivityAdd | ActivityUpdate | ActivityFlag |
6 ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce
7
8// Flag -> report abuse
9export type ActivityType = 'Create' | 'Add' | 'Update' | 'Flag' | 'Delete' | 'Follow' | 'Accept' | 'Announce'
10
11export interface BaseActivity {
12 '@context'?: any[]
13 id: string
14 to?: string[]
15 actor: string
16 type: ActivityType
17 signature?: ActivityPubSignature
18}
19
20export interface ActivityCreate extends BaseActivity {
21 type: 'Create'
22 object: VideoChannelObject | VideoAbuseObject
23}
24
25export interface ActivityAdd extends BaseActivity {
26 type: 'Add'
27 target: string
28 object: VideoTorrentObject
29}
30
31export interface ActivityUpdate extends BaseActivity {
32 type: 'Update'
33 object: VideoTorrentObject | VideoChannelObject
34}
35
36export interface ActivityFlag extends BaseActivity {
37 type: 'Flag'
38 object: string
39}
40
41export interface ActivityDelete extends BaseActivity {
42 type: 'Delete'
43}
44
45export interface ActivityFollow extends BaseActivity {
46 type: 'Follow'
47 object: string
48}
49
50export interface ActivityAccept extends BaseActivity {
51 type: 'Accept'
52}
53
54export interface ActivityAnnounce extends BaseActivity {
55 type: 'Announce'
56 object: ActivityCreate | ActivityAdd
57}