Detect posting request in our own inbox
[oweals/peertube.git] / server / lib / activitypub / url.ts
1 import { CONFIG } from '../../initializers'
2 import { ActorModel } from '../../models/activitypub/actor'
3 import { ActorFollowModel } from '../../models/activitypub/actor-follow'
4 import { VideoModel } from '../../models/video/video'
5 import { VideoAbuseModel } from '../../models/video/video-abuse'
6 import { VideoCommentModel } from '../../models/video/video-comment'
7
8 function getVideoActivityPubUrl (video: VideoModel) {
9   return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid
10 }
11
12 function getVideoCommentActivityPubUrl (video: VideoModel, videoComment: VideoCommentModel) {
13   return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid + '/comments/' + videoComment.id
14 }
15
16 function getVideoChannelActivityPubUrl (videoChannelUUID: string) {
17   return CONFIG.WEBSERVER.URL + '/video-channels/' + videoChannelUUID
18 }
19
20 function getAccountActivityPubUrl (accountName: string) {
21   return CONFIG.WEBSERVER.URL + '/accounts/' + accountName
22 }
23
24 function getVideoAbuseActivityPubUrl (videoAbuse: VideoAbuseModel) {
25   return CONFIG.WEBSERVER.URL + '/admin/video-abuses/' + videoAbuse.id
26 }
27
28 function getVideoViewActivityPubUrl (byActor: ActorModel, video: VideoModel) {
29   return video.url + '/views/' + byActor.uuid + '/' + new Date().toISOString()
30 }
31
32 function getVideoLikeActivityPubUrl (byActor: ActorModel, video: VideoModel) {
33   return byActor.url + '/likes/' + video.id
34 }
35
36 function getVideoDislikeActivityPubUrl (byActor: ActorModel, video: VideoModel) {
37   return byActor.url + '/dislikes/' + video.id
38 }
39
40 function getVideoSharesActivityPubUrl (video: VideoModel) {
41   return video.url + '/announces'
42 }
43
44 function getVideoCommentsActivityPubUrl (video: VideoModel) {
45   return video.url + '/comments'
46 }
47
48 function getVideoLikesActivityPubUrl (video: VideoModel) {
49   return video.url + '/likes'
50 }
51
52 function getVideoDislikesActivityPubUrl (video: VideoModel) {
53   return video.url + '/dislikes'
54 }
55
56 function getActorFollowActivityPubUrl (actorFollow: ActorFollowModel) {
57   const me = actorFollow.ActorFollower
58   const following = actorFollow.ActorFollowing
59
60   return me.url + '/follows/' + following.id
61 }
62
63 function getActorFollowAcceptActivityPubUrl (actorFollow: ActorFollowModel) {
64   const follower = actorFollow.ActorFollower
65   const me = actorFollow.ActorFollowing
66
67   return follower.url + '/accepts/follows/' + me.id
68 }
69
70 function getAnnounceActivityPubUrl (originalUrl: string, byActor: ActorModel) {
71   return originalUrl + '/announces/' + byActor.id
72 }
73
74 function getDeleteActivityPubUrl (originalUrl: string) {
75   return originalUrl + '/delete'
76 }
77
78 function getUpdateActivityPubUrl (originalUrl: string, updatedAt: string) {
79   return originalUrl + '/updates/' + updatedAt
80 }
81
82 function getUndoActivityPubUrl (originalUrl: string) {
83   return originalUrl + '/undo'
84 }
85
86 export {
87   getVideoActivityPubUrl,
88   getVideoChannelActivityPubUrl,
89   getAccountActivityPubUrl,
90   getVideoAbuseActivityPubUrl,
91   getActorFollowActivityPubUrl,
92   getActorFollowAcceptActivityPubUrl,
93   getAnnounceActivityPubUrl,
94   getUpdateActivityPubUrl,
95   getUndoActivityPubUrl,
96   getVideoViewActivityPubUrl,
97   getVideoLikeActivityPubUrl,
98   getVideoDislikeActivityPubUrl,
99   getVideoCommentActivityPubUrl,
100   getDeleteActivityPubUrl,
101   getVideoSharesActivityPubUrl,
102   getVideoCommentsActivityPubUrl,
103   getVideoLikesActivityPubUrl,
104   getVideoDislikesActivityPubUrl
105 }