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