@@ -53,7 +53,12 @@ export class RealmFeedItemGQLService {
53
53
this . realmFeedItemRepository
54
54
. createQueryBuilder ( 'feeditem' )
55
55
. where ( 'feeditem.environment = :env' , { env : environment } )
56
- . andWhere ( 'feeditem.realmPublicKeyStr = :pk' , { pk : realmPublicKey . toBase58 ( ) } )
56
+ . andWhere (
57
+ '((feeditem.realmPublicKeyStr = :pk) OR ((feedItem."crosspostedRealms" IS NOT NULL) AND (:pk = ANY(feedItem."crosspostedRealms"))))' ,
58
+ {
59
+ pk : realmPublicKey . toBase58 ( ) ,
60
+ } ,
61
+ )
57
62
. orderBy ( this . orderByClause ( 'feeditem' , sortOrder ) )
58
63
. limit ( n )
59
64
. getMany ( ) ,
@@ -85,7 +90,10 @@ export class RealmFeedItemGQLService {
85
90
this . realmFeedItemRepository
86
91
. createQueryBuilder ( 'feeditem' )
87
92
. where ( 'feeditem.environment = :env' , { env : environment } )
88
- . andWhere ( 'feeditem.realmPublicKeyStr = :pk' , { pk : realmPublicKey . toBase58 ( ) } )
93
+ . andWhere (
94
+ '((feeditem.realmPublicKeyStr = :pk) OR ((feedItem."crosspostedRealms" IS NOT NULL) AND (:pk = ANY(feedItem."crosspostedRealms"))))' ,
95
+ { pk : realmPublicKey . toBase58 ( ) } ,
96
+ )
89
97
. orderBy ( this . orderByClause ( 'feeditem' , sortOrder , false ) )
90
98
. limit ( n )
91
99
. getMany ( ) ,
@@ -129,7 +137,10 @@ export class RealmFeedItemGQLService {
129
137
this . realmFeedItemRepository
130
138
. createQueryBuilder ( 'feeditem' )
131
139
. where ( 'feeditem.environment = :env' , { env : environment } )
132
- . andWhere ( 'feeditem.realmPublicKeyStr = :pk' , { pk : realmPublicKey . toBase58 ( ) } )
140
+ . andWhere (
141
+ '((feeditem.realmPublicKeyStr = :pk) OR ((feedItem."crosspostedRealms" IS NOT NULL) AND (:pk = ANY(feedItem."crosspostedRealms"))))' ,
142
+ { pk : realmPublicKey . toBase58 ( ) } ,
143
+ )
133
144
. andWhere ( afterClause . clause , afterClause . params )
134
145
. orderBy ( this . orderByClause ( 'feeditem' , sortOrder ) )
135
146
. limit ( n )
@@ -171,7 +182,10 @@ export class RealmFeedItemGQLService {
171
182
this . realmFeedItemRepository
172
183
. createQueryBuilder ( 'feeditem' )
173
184
. where ( 'feeditem.environment = :env' , { env : environment } )
174
- . andWhere ( 'feeditem.realmPublicKeyStr = :pk' , { pk : realmPublicKey . toBase58 ( ) } )
185
+ . andWhere (
186
+ '((feeditem.realmPublicKeyStr = :pk) OR ((feedItem."crosspostedRealms" IS NOT NULL) AND (:pk = ANY(feedItem."crosspostedRealms"))))' ,
187
+ { pk : realmPublicKey . toBase58 ( ) } ,
188
+ )
175
189
. andWhere ( beforeClause . clause , beforeClause . params )
176
190
. orderBy ( this . orderByClause ( 'feeditem' , sortOrder , false ) )
177
191
. limit ( n )
@@ -203,11 +217,14 @@ export class RealmFeedItemGQLService {
203
217
this . getFirstNFeedItems ( realmPublicKey , requestingUser , first , sortOrder , environment ) ,
204
218
TE . bindTo ( 'entities' ) ,
205
219
TE . bindW ( 'feedItems' , ( { entities } ) =>
206
- this . realmFeedItemService . convertEntitiesToFeedItems (
207
- realmPublicKey ,
208
- entities ,
209
- requestingUser ,
210
- environment ,
220
+ TE . tryCatch (
221
+ ( ) =>
222
+ this . realmFeedItemService . convertMixedFeedEntitiesToFeedItem (
223
+ entities ,
224
+ requestingUser ,
225
+ environment ,
226
+ ) ,
227
+ ( e ) => new errors . Exception ( e ) ,
211
228
) ,
212
229
) ,
213
230
TE . map ( ( { entities, feedItems } ) => {
@@ -233,11 +250,14 @@ export class RealmFeedItemGQLService {
233
250
this . getLastNFeedItems ( realmPublicKey , requestingUser , last , sortOrder , environment ) ,
234
251
TE . bindTo ( 'entities' ) ,
235
252
TE . bindW ( 'feedItems' , ( { entities } ) =>
236
- this . realmFeedItemService . convertEntitiesToFeedItems (
237
- realmPublicKey ,
238
- entities ,
239
- requestingUser ,
240
- environment ,
253
+ TE . tryCatch (
254
+ ( ) =>
255
+ this . realmFeedItemService . convertMixedFeedEntitiesToFeedItem (
256
+ entities ,
257
+ requestingUser ,
258
+ environment ,
259
+ ) ,
260
+ ( e ) => new errors . Exception ( e ) ,
241
261
) ,
242
262
) ,
243
263
TE . map ( ( { entities, feedItems } ) => {
@@ -270,11 +290,14 @@ export class RealmFeedItemGQLService {
270
290
) ,
271
291
TE . bindTo ( 'entities' ) ,
272
292
TE . bindW ( 'feedItems' , ( { entities } ) =>
273
- this . realmFeedItemService . convertEntitiesToFeedItems (
274
- realmPublicKey ,
275
- entities ,
276
- requestingUser ,
277
- environment ,
293
+ TE . tryCatch (
294
+ ( ) =>
295
+ this . realmFeedItemService . convertMixedFeedEntitiesToFeedItem (
296
+ entities ,
297
+ requestingUser ,
298
+ environment ,
299
+ ) ,
300
+ ( e ) => new errors . Exception ( e ) ,
278
301
) ,
279
302
) ,
280
303
TE . map ( ( { entities, feedItems } ) => {
@@ -307,11 +330,14 @@ export class RealmFeedItemGQLService {
307
330
) ,
308
331
TE . bindTo ( 'entities' ) ,
309
332
TE . bindW ( 'feedItems' , ( { entities } ) =>
310
- this . realmFeedItemService . convertEntitiesToFeedItems (
311
- realmPublicKey ,
312
- entities ,
313
- requestingUser ,
314
- environment ,
333
+ TE . tryCatch (
334
+ ( ) =>
335
+ this . realmFeedItemService . convertMixedFeedEntitiesToFeedItem (
336
+ entities ,
337
+ requestingUser ,
338
+ environment ,
339
+ ) ,
340
+ ( e ) => new errors . Exception ( e ) ,
315
341
) ,
316
342
) ,
317
343
TE . map ( ( { entities, feedItems } ) => {
0 commit comments