Skip to content

Commit 6b3f9dc

Browse files
authored
Merge pull request #414 from bakaphp/feat-add-user-app-preferences-function
Improve user authentication flow
2 parents 22ccceb + 1bf8e80 commit 6b3f9dc

File tree

5 files changed

+181
-2
lines changed

5 files changed

+181
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "0.32.0",
2+
"version": "0.32.1",
33
"license": "MIT",
44
"main": "dist/index.js",
55
"typings": "dist/index.d.ts",

src/modules/messages/index.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
MessageSearchSuggestions,
1616
AllLikedMessagesByUser,
1717
AllForYouMessages,
18+
AllFollowingFeedMessages,
1819
AllChannelMessages,
1920
MessageWithFileInputInterface,
2021
} from '../../types';
@@ -42,6 +43,7 @@ import {
4243
GET_MESSAGES_GROUP_BY_DATE_QUERY,
4344
GET_MESSAGES_LIKED_BY_USER,
4445
GET_MESSAGES_QUERY,
46+
GET_FOLLOWING_FEED_QUERY
4547
} from '../../queries';
4648

4749
import { MessagesComments } from '../messages-comments';
@@ -264,6 +266,52 @@ export class Messages {
264266
return response.data;
265267
}
266268

269+
public async getFollowingFeedMessages(
270+
options: {
271+
where?: WhereCondition;
272+
orderBy?: Array<OrderByMessage>;
273+
search?: string;
274+
first?: number;
275+
page?: number;
276+
hasTags?: WhereCondition;
277+
hasType?: WhereCondition;
278+
childrenOptions?: {
279+
alias?: string; // Alias for the children field
280+
first?: number; // Limit for children
281+
};
282+
} = {}
283+
): Promise<AllFollowingFeedMessages> {
284+
const {
285+
search,
286+
hasTags,
287+
hasType,
288+
where,
289+
orderBy,
290+
first = 25,
291+
page,
292+
childrenOptions = {},
293+
} = options;
294+
295+
const { alias = 'children', first: childrenFirst } = childrenOptions;
296+
297+
const response = await this.client.query({
298+
query: GET_FOLLOWING_FEED_QUERY(childrenFirst !== undefined, alias),
299+
variables: {
300+
where,
301+
hasTags,
302+
hasType,
303+
orderBy,
304+
search,
305+
first,
306+
page,
307+
...(childrenFirst !== undefined && { childrenFirst }),
308+
},
309+
fetchPolicy: 'no-cache',
310+
});
311+
312+
return response.data;
313+
}
314+
267315
public async getChannelMessages(
268316
options: {
269317
channel_uuid?: string;

src/queries/messages.query.ts

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,3 +520,105 @@ export const GET_MESSAGES_LIKED_BY_USER = gql`
520520
}
521521
}
522522
`;
523+
524+
export const GET_FOLLOWING_FEED_QUERY = (includeChildren: boolean, alias: string) => gql`
525+
query followingFeedMessages(
526+
$where: QueryFollowingFeedMessagesWhereWhereConditions
527+
$hasTags: QueryFollowingFeedMessagesHasTagsWhereHasConditions
528+
$hasType: QueryFollowingFeedMessagesHasTypeWhereHasConditions
529+
$orderBy: [QueryFollowingFeedMessagesOrderByOrderByClause!]
530+
$first: Int! = 25
531+
$page: Int
532+
${includeChildren ? `$childrenFirst: Int!` : ''}
533+
) {
534+
followingFeedMessages(
535+
where: $where
536+
hasTags: $hasTags
537+
hasType: $hasType
538+
orderBy: $orderBy
539+
first: $first
540+
page: $page
541+
) {
542+
data {
543+
id
544+
uuid
545+
message
546+
parent_id
547+
slug
548+
user {
549+
id
550+
firstname
551+
lastname
552+
displayname
553+
photo {
554+
url
555+
}
556+
social {
557+
is_blocked
558+
is_following
559+
}
560+
}
561+
appModuleMessage {
562+
entity_id
563+
system_modules
564+
}
565+
message_types_id
566+
message
567+
reactions_count
568+
comment_count
569+
total_liked
570+
total_disliked
571+
total_saved
572+
total_shared
573+
total_view
574+
total_children
575+
is_public
576+
tags {
577+
data {
578+
id
579+
name
580+
slug
581+
}
582+
}
583+
parent {
584+
id
585+
uuid
586+
},
587+
myInteraction {
588+
is_liked
589+
is_disliked
590+
is_saved
591+
is_shared
592+
is_reported
593+
is_purchased
594+
}
595+
${includeChildren ? `${alias}: children(first: $childrenFirst) {
596+
data {
597+
id
598+
uuid
599+
message
600+
slug
601+
user {
602+
id
603+
firstname
604+
lastname
605+
displayname
606+
photo {
607+
url
608+
}
609+
social {
610+
is_blocked
611+
is_following
612+
}
613+
}
614+
}
615+
}` : ''}
616+
created_at
617+
}
618+
paginatorInfo {
619+
currentPage
620+
lastPage
621+
}
622+
}
623+
}
624+
`;

src/types/messages.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ export interface AllForYouMessages {
5252
paginatorInfo?: PaginatorInfo;
5353
};
5454
}
55+
56+
export interface AllFollowingFeedMessages {
57+
followingFeedMessages: {
58+
data: MessagesInterface[];
59+
paginatorInfo?: PaginatorInfo;
60+
};
61+
}
5562
export interface AllChannelMessages {
5663
channelMessages: {
5764
data: MessagesInterface[];
@@ -141,6 +148,7 @@ export interface HasAppModuleMessageWhereConditions {
141148
value: string;
142149
}
143150

151+
144152
export interface OrderByMessage {
145153
column: string;
146154
order: string;

test/message.test.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,13 +379,34 @@ describe('Test the Social Messages', () => {
379379
const recentMessages = await messages.getForYouMessages({
380380
orderBy: [{ column: 'CREATED_AT', order: 'DESC' }],
381381
first: 25,
382-
page: 1
382+
page: 1,
383+
childrenOptions: {
384+
alias: "children",
385+
first: 10,
386+
}
383387
});
384388
expect(recentMessages).toBeDefined();
385389
expect(recentMessages.forYouMessages.data).toBeDefined();
386390
expect(recentMessages.forYouMessages.data.length).toBeGreaterThan(0);
387391
});
388392

393+
it('get following feed messages', async () => {
394+
const client = getClient();
395+
const messages = client.messages;
396+
const recentMessages = await messages.getFollowingFeedMessages({
397+
orderBy: [{ column: 'CREATED_AT', order: 'DESC' }],
398+
first: 25,
399+
page: 1,
400+
childrenOptions: {
401+
alias: "children",
402+
first: 10,
403+
}
404+
});
405+
expect(recentMessages).toBeDefined();
406+
expect(recentMessages.followingFeedMessages.data).toBeDefined();
407+
expect(recentMessages.followingFeedMessages.data.length).toBeGreaterThan(0);
408+
});
409+
389410
it('get message from channel', async () => {
390411
const client = getClient();
391412
const messages = client.messages;

0 commit comments

Comments
 (0)