aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/types/models
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-04-06 17:01:35 +0200
committerChocobozzz <chocobozzz@cpy.re>2021-04-08 10:07:53 +0200
commit2cb03dc1f4e01ba491c36caff30c33fe9c5bad89 (patch)
tree08a8706d105ea1e280339c02b9e2b1dc1edb0ff9 /server/types/models
parentf479685678406a5df864d89615b33d29085ebfc6 (diff)
downloadPeerTube-2cb03dc1f4e01ba491c36caff30c33fe9c5bad89.tar.gz
PeerTube-2cb03dc1f4e01ba491c36caff30c33fe9c5bad89.tar.zst
PeerTube-2cb03dc1f4e01ba491c36caff30c33fe9c5bad89.zip
Add banners support
Diffstat (limited to 'server/types/models')
-rw-r--r--server/types/models/account/account.ts10
-rw-r--r--server/types/models/account/actor-follow.ts11
-rw-r--r--server/types/models/account/actor.ts33
-rw-r--r--server/types/models/user/user.ts8
-rw-r--r--server/types/models/video/video-channels.ts34
5 files changed, 57 insertions, 39 deletions
diff --git a/server/types/models/account/account.ts b/server/types/models/account/account.ts
index d2add9810..9513acad8 100644
--- a/server/types/models/account/account.ts
+++ b/server/types/models/account/account.ts
@@ -1,7 +1,10 @@
1import { FunctionProperties, PickWith } from '@shared/core-utils'
1import { AccountModel } from '../../../models/account/account' 2import { AccountModel } from '../../../models/account/account'
3import { MChannelDefault } from '../video/video-channels'
4import { MAccountBlocklistId } from './account-blocklist'
2import { 5import {
3 MActor, 6 MActor,
4 MActorAP, 7 MActorAPAccount,
5 MActorAPI, 8 MActorAPI,
6 MActorAudience, 9 MActorAudience,
7 MActorDefault, 10 MActorDefault,
@@ -13,9 +16,6 @@ import {
13 MActorSummaryFormattable, 16 MActorSummaryFormattable,
14 MActorUrl 17 MActorUrl
15} from './actor' 18} from './actor'
16import { FunctionProperties, PickWith } from '@shared/core-utils'
17import { MAccountBlocklistId } from './account-blocklist'
18import { MChannelDefault } from '../video/video-channels'
19 19
20type Use<K extends keyof AccountModel, M> = PickWith<AccountModel, K, M> 20type Use<K extends keyof AccountModel, M> = PickWith<AccountModel, K, M>
21 21
@@ -106,4 +106,4 @@ export type MAccountFormattable =
106 106
107export type MAccountAP = 107export type MAccountAP =
108 Pick<MAccount, 'name' | 'description'> & 108 Pick<MAccount, 'name' | 'description'> &
109 Use<'Actor', MActorAP> 109 Use<'Actor', MActorAPAccount>
diff --git a/server/types/models/account/actor-follow.ts b/server/types/models/account/actor-follow.ts
index 8c213d09c..8e19c6140 100644
--- a/server/types/models/account/actor-follow.ts
+++ b/server/types/models/account/actor-follow.ts
@@ -1,16 +1,15 @@
1import { PickWith } from '@shared/core-utils'
1import { ActorFollowModel } from '../../../models/activitypub/actor-follow' 2import { ActorFollowModel } from '../../../models/activitypub/actor-follow'
2import { 3import {
3 MActor, 4 MActor,
4 MActorChannelAccountActor, 5 MActorChannelAccountActor,
5 MActorDefault, 6 MActorDefault,
6 MActorDefaultAccountChannel, 7 MActorDefaultAccountChannel,
8 MActorDefaultChannelId,
7 MActorFormattable, 9 MActorFormattable,
8 MActorHost, 10 MActorHost,
9 MActorUsername 11 MActorUsername
10} from './actor' 12} from './actor'
11import { PickWith } from '@shared/core-utils'
12import { ActorModel } from '@server/models/activitypub/actor'
13import { MChannelDefault } from '../video/video-channels'
14 13
15type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M> 14type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M>
16 15
@@ -47,14 +46,10 @@ export type MActorFollowFull =
47 46
48// For subscriptions 47// For subscriptions
49 48
50type SubscriptionFollowing =
51 MActorDefault &
52 PickWith<ActorModel, 'VideoChannel', MChannelDefault>
53
54export type MActorFollowActorsDefaultSubscription = 49export type MActorFollowActorsDefaultSubscription =
55 MActorFollow & 50 MActorFollow &
56 Use<'ActorFollower', MActorDefault> & 51 Use<'ActorFollower', MActorDefault> &
57 Use<'ActorFollowing', SubscriptionFollowing> 52 Use<'ActorFollowing', MActorDefaultChannelId>
58 53
59export type MActorFollowSubscriptions = 54export type MActorFollowSubscriptions =
60 MActorFollow & 55 MActorFollow &
diff --git a/server/types/models/account/actor.ts b/server/types/models/account/actor.ts
index 8af19c4da..8f3f30074 100644
--- a/server/types/models/account/actor.ts
+++ b/server/types/models/account/actor.ts
@@ -1,3 +1,4 @@
1
1import { FunctionProperties, PickWith, PickWithOpt } from '@shared/core-utils' 2import { FunctionProperties, PickWith, PickWithOpt } from '@shared/core-utils'
2import { ActorModel } from '../../../models/activitypub/actor' 3import { ActorModel } from '../../../models/activitypub/actor'
3import { MServer, MServerHost, MServerHostBlocks, MServerRedundancyAllowed } from '../server' 4import { MServer, MServerHost, MServerHostBlocks, MServerRedundancyAllowed } from '../server'
@@ -6,6 +7,7 @@ import { MAccount, MAccountDefault, MAccountId, MAccountIdActor } from './accoun
6import { MActorImage, MActorImageFormattable } from './actor-image' 7import { MActorImage, MActorImageFormattable } from './actor-image'
7 8
8type Use<K extends keyof ActorModel, M> = PickWith<ActorModel, K, M> 9type Use<K extends keyof ActorModel, M> = PickWith<ActorModel, K, M>
10type UseOpt<K extends keyof ActorModel, M> = PickWithOpt<ActorModel, K, M>
9 11
10// ############################################################################ 12// ############################################################################
11 13
@@ -75,11 +77,26 @@ export type MActorServer =
75 77
76// Complex actor associations 78// Complex actor associations
77 79
80export type MActorImages =
81 MActor &
82 Use<'Avatar', MActorImage> &
83 UseOpt<'Banner', MActorImage>
84
78export type MActorDefault = 85export type MActorDefault =
79 MActor & 86 MActor &
80 Use<'Server', MServer> & 87 Use<'Server', MServer> &
81 Use<'Avatar', MActorImage> 88 Use<'Avatar', MActorImage>
82 89
90export type MActorDefaultChannelId =
91 MActorDefault &
92 Use<'VideoChannel', MChannelId>
93
94export type MActorDefaultBanner =
95 MActor &
96 Use<'Server', MServer> &
97 Use<'Avatar', MActorImage> &
98 Use<'Banner', MActorImage>
99
83// Actor with channel that is associated to an account and its actor 100// Actor with channel that is associated to an account and its actor
84// Actor -> VideoChannel -> Account -> Actor 101// Actor -> VideoChannel -> Account -> Actor
85export type MActorChannelAccountActor = 102export type MActorChannelAccountActor =
@@ -90,6 +107,7 @@ export type MActorFull =
90 MActor & 107 MActor &
91 Use<'Server', MServer> & 108 Use<'Server', MServer> &
92 Use<'Avatar', MActorImage> & 109 Use<'Avatar', MActorImage> &
110 Use<'Banner', MActorImage> &
93 Use<'Account', MAccount> & 111 Use<'Account', MAccount> &
94 Use<'VideoChannel', MChannelAccountActor> 112 Use<'VideoChannel', MChannelAccountActor>
95 113
@@ -98,6 +116,7 @@ export type MActorFullActor =
98 MActor & 116 MActor &
99 Use<'Server', MServer> & 117 Use<'Server', MServer> &
100 Use<'Avatar', MActorImage> & 118 Use<'Avatar', MActorImage> &
119 Use<'Banner', MActorImage> &
101 Use<'Account', MAccountDefault> & 120 Use<'Account', MAccountDefault> &
102 Use<'VideoChannel', MChannelAccountDefault> 121 Use<'VideoChannel', MChannelAccountDefault>
103 122
@@ -131,9 +150,17 @@ export type MActorSummaryFormattable =
131 150
132export type MActorFormattable = 151export type MActorFormattable =
133 MActorSummaryFormattable & 152 MActorSummaryFormattable &
134 Pick<MActor, 'id' | 'followingCount' | 'followersCount' | 'createdAt' | 'updatedAt'> & 153 Pick<MActor, 'id' | 'followingCount' | 'followersCount' | 'createdAt' | 'updatedAt' | 'bannerId' | 'avatarId'> &
135 Use<'Server', MServerHost & Partial<Pick<MServer, 'redundancyAllowed'>>> 154 Use<'Server', MServerHost & Partial<Pick<MServer, 'redundancyAllowed'>>> &
155 UseOpt<'Banner', MActorImageFormattable>
136 156
137export type MActorAP = 157type MActorAPBase =
138 MActor & 158 MActor &
139 Use<'Avatar', MActorImage> 159 Use<'Avatar', MActorImage>
160
161export type MActorAPAccount =
162 MActorAPBase
163
164export type MActorAPChannel =
165 MActorAPBase &
166 Use<'Banner', MActorImage>
diff --git a/server/types/models/user/user.ts b/server/types/models/user/user.ts
index 12a68accf..fa7de9c52 100644
--- a/server/types/models/user/user.ts
+++ b/server/types/models/user/user.ts
@@ -1,5 +1,7 @@
1import { UserModel } from '../../../models/account/user' 1import { AccountModel } from '@server/models/account/account'
2import { MVideoPlaylist } from '@server/types/models'
2import { PickWith, PickWithOpt } from '@shared/core-utils' 3import { PickWith, PickWithOpt } from '@shared/core-utils'
4import { UserModel } from '../../../models/account/user'
3import { 5import {
4 MAccount, 6 MAccount,
5 MAccountDefault, 7 MAccountDefault,
@@ -9,10 +11,8 @@ import {
9 MAccountIdActorId, 11 MAccountIdActorId,
10 MAccountUrl 12 MAccountUrl
11} from '../account' 13} from '../account'
12import { MNotificationSetting, MNotificationSettingFormattable } from './user-notification-setting'
13import { AccountModel } from '@server/models/account/account'
14import { MChannelFormattable } from '../video/video-channels' 14import { MChannelFormattable } from '../video/video-channels'
15import { MVideoPlaylist } from '@server/types/models' 15import { MNotificationSetting, MNotificationSettingFormattable } from './user-notification-setting'
16 16
17type Use<K extends keyof UserModel, M> = PickWith<UserModel, K, M> 17type Use<K extends keyof UserModel, M> = PickWith<UserModel, K, M>
18 18
diff --git a/server/types/models/video/video-channels.ts b/server/types/models/video/video-channels.ts
index 77790daa4..f577807ca 100644
--- a/server/types/models/video/video-channels.ts
+++ b/server/types/models/video/video-channels.ts
@@ -12,15 +12,17 @@ import {
12 MAccountUserId, 12 MAccountUserId,
13 MActor, 13 MActor,
14 MActorAccountChannelId, 14 MActorAccountChannelId,
15 MActorAP, 15 MActorAPChannel,
16 MActorAPI, 16 MActorAPI,
17 MActorDefault, 17 MActorDefault,
18 MActorDefaultBanner,
18 MActorDefaultLight, 19 MActorDefaultLight,
19 MActorFormattable, 20 MActorFormattable,
20 MActorHost, 21 MActorHost,
21 MActorLight, 22 MActorLight,
22 MActorSummary, 23 MActorSummary,
23 MActorSummaryFormattable, MActorUrl 24 MActorSummaryFormattable,
25 MActorUrl
24} from '../account' 26} from '../account'
25import { MVideo } from './video' 27import { MVideo } from './video'
26 28
@@ -55,14 +57,14 @@ export type MChannelDefault =
55 MChannel & 57 MChannel &
56 Use<'Actor', MActorDefault> 58 Use<'Actor', MActorDefault>
57 59
60export type MChannelBannerDefault =
61 MChannel &
62 Use<'Actor', MActorDefaultBanner>
63
58// ############################################################################ 64// ############################################################################
59 65
60// Not all association attributes 66// Not all association attributes
61 67
62export type MChannelLight =
63 MChannel &
64 Use<'Actor', MActorDefaultLight>
65
66export type MChannelActorLight = 68export type MChannelActorLight =
67 MChannel & 69 MChannel &
68 Use<'Actor', MActorLight> 70 Use<'Actor', MActorLight>
@@ -84,29 +86,23 @@ export type MChannelAccountActor =
84 MChannel & 86 MChannel &
85 Use<'Account', MAccountActor> 87 Use<'Account', MAccountActor>
86 88
87export type MChannelAccountDefault = 89export type MChannelBannerAccountDefault =
88 MChannel & 90 MChannel &
89 Use<'Actor', MActorDefault> & 91 Use<'Actor', MActorDefaultBanner> &
90 Use<'Account', MAccountDefault> 92 Use<'Account', MAccountDefault>
91 93
92export type MChannelActorAccountActor = 94export type MChannelAccountDefault =
93 MChannel & 95 MChannel &
94 Use<'Account', MAccountActor> & 96 Use<'Actor', MActorDefault> &
95 Use<'Actor', MActor> 97 Use<'Account', MAccountDefault>
96 98
97// ############################################################################ 99// ############################################################################
98 100
99// Videos associations 101// Videos associations
100export type MChannelVideos = 102export type MChannelVideos =
101 MChannel & 103 MChannel &
102 Use<'Videos', MVideo[]> 104 Use<'Videos', MVideo[]>
103 105
104export type MChannelActorAccountDefaultVideos =
105 MChannel &
106 Use<'Actor', MActorDefault> &
107 Use<'Account', MAccountDefault> &
108 Use<'Videos', MVideo[]>
109
110// ############################################################################ 106// ############################################################################
111 107
112// For API 108// For API
@@ -146,5 +142,5 @@ export type MChannelFormattable =
146 142
147export type MChannelAP = 143export type MChannelAP =
148 Pick<MChannel, 'name' | 'description' | 'support'> & 144 Pick<MChannel, 'name' | 'description' | 'support'> &
149 Use<'Actor', MActorAP> & 145 Use<'Actor', MActorAPChannel> &
150 Use<'Account', MAccountUrl> 146 Use<'Account', MAccountUrl>