From 0032ebe94aa83fab761c7de3ceb6210ac4532824 Mon Sep 17 00:00:00 2001
From: Chocobozzz <florian.bigard@gmail.com>
Date: Thu, 23 Nov 2017 14:19:55 +0100
Subject: Federate likes/dislikes

---
 shared/models/activitypub/activity.ts               | 14 ++++++++++----
 shared/models/activitypub/objects/dislike-object.ts |  5 +++++
 shared/models/activitypub/objects/index.ts          |  1 +
 3 files changed, 16 insertions(+), 4 deletions(-)
 create mode 100644 shared/models/activitypub/objects/dislike-object.ts

(limited to 'shared/models')

diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts
index ce150bc12..cbfd6157a 100644
--- a/shared/models/activitypub/activity.ts
+++ b/shared/models/activitypub/activity.ts
@@ -1,13 +1,14 @@
 import { ActivityPubSignature } from './activitypub-signature'
 import { VideoChannelObject, VideoTorrentObject } from './objects'
+import { DislikeObject } from './objects/dislike-object'
 import { VideoAbuseObject } from './objects/video-abuse-object'
 import { ViewObject } from './objects/view-object'
 
 export type Activity = ActivityCreate | ActivityAdd | ActivityUpdate |
   ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce |
-  ActivityUndo
+  ActivityUndo | ActivityLike
 
-export type ActivityType = 'Create' | 'Add' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo'
+export type ActivityType = 'Create' | 'Add' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like'
 
 export interface BaseActivity {
   '@context'?: any[]
@@ -21,7 +22,7 @@ export interface BaseActivity {
 
 export interface ActivityCreate extends BaseActivity {
   type: 'Create'
-  object: VideoChannelObject | VideoAbuseObject | ViewObject
+  object: VideoChannelObject | VideoAbuseObject | ViewObject | DislikeObject
 }
 
 export interface ActivityAdd extends BaseActivity {
@@ -55,5 +56,10 @@ export interface ActivityAnnounce extends BaseActivity {
 
 export interface ActivityUndo extends BaseActivity {
   type: 'Undo',
-  object: ActivityFollow
+  object: ActivityFollow | ActivityLike | ActivityCreate
+}
+
+export interface ActivityLike extends BaseActivity {
+  type: 'Like',
+  object: string
 }
diff --git a/shared/models/activitypub/objects/dislike-object.ts b/shared/models/activitypub/objects/dislike-object.ts
new file mode 100644
index 000000000..295175774
--- /dev/null
+++ b/shared/models/activitypub/objects/dislike-object.ts
@@ -0,0 +1,5 @@
+export interface DislikeObject {
+  type: 'Dislike',
+  actor: string
+  object: string
+}
diff --git a/shared/models/activitypub/objects/index.ts b/shared/models/activitypub/objects/index.ts
index d92f772e2..f1f761e44 100644
--- a/shared/models/activitypub/objects/index.ts
+++ b/shared/models/activitypub/objects/index.ts
@@ -3,3 +3,4 @@ export * from './video-abuse-object'
 export * from './video-channel-object'
 export * from './video-torrent-object'
 export * from './view-object'
+export * from './dislike-object'
-- 
cgit v1.2.3