aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/types/models/actor/actor-follow.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-05-11 11:15:29 +0200
committerChocobozzz <me@florianbigard.com>2021-05-11 11:32:31 +0200
commit7d9ba5c08999c6482f0bc5e0c09c6f55b7724090 (patch)
tree5f4ea1f06dcb781c9e61062522b53a28a401111f /server/types/models/actor/actor-follow.ts
parentc07902b9083ab5756436cd020bed5bdfa51028bf (diff)
downloadPeerTube-7d9ba5c08999c6482f0bc5e0c09c6f55b7724090.tar.gz
PeerTube-7d9ba5c08999c6482f0bc5e0c09c6f55b7724090.tar.zst
PeerTube-7d9ba5c08999c6482f0bc5e0c09c6f55b7724090.zip
Cleanup models directory organization
Diffstat (limited to 'server/types/models/actor/actor-follow.ts')
-rw-r--r--server/types/models/actor/actor-follow.ts65
1 files changed, 65 insertions, 0 deletions
diff --git a/server/types/models/actor/actor-follow.ts b/server/types/models/actor/actor-follow.ts
new file mode 100644
index 000000000..98a6ca8a5
--- /dev/null
+++ b/server/types/models/actor/actor-follow.ts
@@ -0,0 +1,65 @@
1import { PickWith } from '@shared/core-utils'
2import { ActorFollowModel } from '../../../models/actor/actor-follow'
3import {
4 MActor,
5 MActorChannelAccountActor,
6 MActorDefault,
7 MActorDefaultAccountChannel,
8 MActorDefaultChannelId,
9 MActorFormattable,
10 MActorHost,
11 MActorUsername
12} from './actor'
13
14type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M>
15
16// ############################################################################
17
18export type MActorFollow = Omit<ActorFollowModel, 'ActorFollower' | 'ActorFollowing'>
19
20// ############################################################################
21
22export type MActorFollowFollowingHost =
23 MActorFollow &
24 Use<'ActorFollowing', MActorUsername & MActorHost>
25
26// ############################################################################
27
28// With actors or actors default
29
30export type MActorFollowActors =
31 MActorFollow &
32 Use<'ActorFollower', MActor> &
33 Use<'ActorFollowing', MActor>
34
35export type MActorFollowActorsDefault =
36 MActorFollow &
37 Use<'ActorFollower', MActorDefault> &
38 Use<'ActorFollowing', MActorDefault>
39
40export type MActorFollowFull =
41 MActorFollow &
42 Use<'ActorFollower', MActorDefaultAccountChannel> &
43 Use<'ActorFollowing', MActorDefaultAccountChannel>
44
45// ############################################################################
46
47// For subscriptions
48
49export type MActorFollowActorsDefaultSubscription =
50 MActorFollow &
51 Use<'ActorFollower', MActorDefault> &
52 Use<'ActorFollowing', MActorDefaultChannelId>
53
54export type MActorFollowSubscriptions =
55 MActorFollow &
56 Use<'ActorFollowing', MActorChannelAccountActor>
57
58// ############################################################################
59
60// Format for API or AP object
61
62export type MActorFollowFormattable =
63 Pick<MActorFollow, 'id' | 'score' | 'state' | 'createdAt' | 'updatedAt'> &
64 Use<'ActorFollower', MActorFormattable> &
65 Use<'ActorFollowing', MActorFormattable>