@amityco/ts-sdk 7.4.1-d23fab2f.0 → 7.4.1-fd0f791a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/@types/core/events.d.ts +7 -3
  2. package/dist/@types/core/events.d.ts.map +1 -1
  3. package/dist/@types/core/model.d.ts +2 -0
  4. package/dist/@types/core/model.d.ts.map +1 -1
  5. package/dist/@types/core/payload.d.ts +30 -1
  6. package/dist/@types/core/payload.d.ts.map +1 -1
  7. package/dist/@types/domains/community.d.ts +32 -2
  8. package/dist/@types/domains/community.d.ts.map +1 -1
  9. package/dist/@types/domains/invitation.d.ts +48 -3
  10. package/dist/@types/domains/invitation.d.ts.map +1 -1
  11. package/dist/@types/domains/joinRequest.d.ts +53 -0
  12. package/dist/@types/domains/joinRequest.d.ts.map +1 -0
  13. package/dist/@types/index.d.ts +1 -0
  14. package/dist/@types/index.d.ts.map +1 -1
  15. package/dist/communityRepository/api/getCommunities.d.ts +1 -1
  16. package/dist/communityRepository/api/getCommunities.d.ts.map +1 -1
  17. package/dist/communityRepository/api/getCommunity.d.ts +1 -1
  18. package/dist/communityRepository/api/getCommunity.d.ts.map +1 -1
  19. package/dist/communityRepository/api/getRecommendedCommunities.d.ts +3 -1
  20. package/dist/communityRepository/api/getRecommendedCommunities.d.ts.map +1 -1
  21. package/dist/communityRepository/api/getTrendingCommunities.d.ts +3 -1
  22. package/dist/communityRepository/api/getTrendingCommunities.d.ts.map +1 -1
  23. package/dist/communityRepository/api/joinCommunity.d.ts +3 -0
  24. package/dist/communityRepository/api/joinCommunity.d.ts.map +1 -1
  25. package/dist/communityRepository/api/updateCommunity.d.ts +2 -2
  26. package/dist/communityRepository/api/updateCommunity.d.ts.map +1 -1
  27. package/dist/communityRepository/internalAPI/getMyJoinRequest.d.ts +16 -0
  28. package/dist/communityRepository/internalAPI/getMyJoinRequest.d.ts.map +1 -0
  29. package/dist/communityRepository/internalAPI/joinCommunity.d.ts +16 -0
  30. package/dist/communityRepository/internalAPI/joinCommunity.d.ts.map +1 -0
  31. package/dist/communityRepository/joinRequest/events/index.d.ts +4 -0
  32. package/dist/communityRepository/joinRequest/events/index.d.ts.map +1 -0
  33. package/dist/communityRepository/joinRequest/events/onJoinRequestCreated.d.ts +17 -0
  34. package/dist/communityRepository/joinRequest/events/onJoinRequestCreated.d.ts.map +1 -0
  35. package/dist/communityRepository/joinRequest/events/onJoinRequestDeleted.d.ts +17 -0
  36. package/dist/communityRepository/joinRequest/events/onJoinRequestDeleted.d.ts.map +1 -0
  37. package/dist/communityRepository/joinRequest/events/onJoinRequestUpdated.d.ts +17 -0
  38. package/dist/communityRepository/joinRequest/events/onJoinRequestUpdated.d.ts.map +1 -0
  39. package/dist/communityRepository/joinRequest/internalAPI/approveJoinRequest.d.ts +16 -0
  40. package/dist/communityRepository/joinRequest/internalAPI/approveJoinRequest.d.ts.map +1 -0
  41. package/dist/communityRepository/joinRequest/internalAPI/cancelJoinRequest.d.ts +16 -0
  42. package/dist/communityRepository/joinRequest/internalAPI/cancelJoinRequest.d.ts.map +1 -0
  43. package/dist/communityRepository/joinRequest/internalAPI/rejectJoinRequest.d.ts +16 -0
  44. package/dist/communityRepository/joinRequest/internalAPI/rejectJoinRequest.d.ts.map +1 -0
  45. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsLiveCollectionController.d.ts +14 -0
  46. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsLiveCollectionController.d.ts.map +1 -0
  47. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsPaginationController.d.ts +9 -0
  48. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsPaginationController.d.ts.map +1 -0
  49. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsQueryStreamController.d.ts +15 -0
  50. package/dist/communityRepository/observers/getJoinRequests/JoinRequestsQueryStreamController.d.ts.map +1 -0
  51. package/dist/communityRepository/observers/getJoinRequests/enum.d.ts +6 -0
  52. package/dist/communityRepository/observers/getJoinRequests/enum.d.ts.map +1 -0
  53. package/dist/communityRepository/observers/getJoinRequests.d.ts +12 -0
  54. package/dist/communityRepository/observers/getJoinRequests.d.ts.map +1 -0
  55. package/dist/communityRepository/observers/getRecommendedCommunities/RecommendedCommunitiesLiveCollectionController.d.ts.map +1 -1
  56. package/dist/communityRepository/observers/getTrendingCommunities/TrendingCommunitiesLiveCollectionController.d.ts.map +1 -1
  57. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesPaginationController.d.ts.map +1 -1
  58. package/dist/communityRepository/utils/payload.d.ts +1 -0
  59. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  60. package/dist/core/events.d.ts +3 -3
  61. package/dist/core/events.d.ts.map +1 -1
  62. package/dist/core/model/idResolvers.d.ts.map +1 -1
  63. package/dist/core/model/index.d.ts.map +1 -1
  64. package/dist/index.cjs.js +2608 -1576
  65. package/dist/index.esm.js +2432 -1400
  66. package/dist/index.umd.js +4 -4
  67. package/dist/invitationRepository/events/index.d.ts +2 -0
  68. package/dist/invitationRepository/events/index.d.ts.map +1 -1
  69. package/dist/invitationRepository/events/onLocalInvitationCreated.d.ts +1 -1
  70. package/dist/invitationRepository/events/onLocalInvitationCreated.d.ts.map +1 -1
  71. package/dist/invitationRepository/events/onLocalInvitationDeleted.d.ts +1 -1
  72. package/dist/invitationRepository/events/onLocalInvitationDeleted.d.ts.map +1 -1
  73. package/dist/invitationRepository/events/onLocalInvitationUpdated.d.ts +1 -1
  74. package/dist/invitationRepository/events/onLocalInvitationUpdated.d.ts.map +1 -1
  75. package/dist/invitationRepository/index.d.ts +1 -0
  76. package/dist/invitationRepository/index.d.ts.map +1 -1
  77. package/dist/invitationRepository/internalApi/createInvitations.d.ts.map +1 -1
  78. package/dist/invitationRepository/internalApi/getInvitation.d.ts +17 -0
  79. package/dist/invitationRepository/internalApi/getInvitation.d.ts.map +1 -0
  80. package/dist/invitationRepository/observers/getInvitations/InvitationsLiveCollectionController.d.ts +14 -0
  81. package/dist/invitationRepository/observers/getInvitations/InvitationsLiveCollectionController.d.ts.map +1 -0
  82. package/dist/invitationRepository/observers/getInvitations/InvitationsPaginationController.d.ts +5 -0
  83. package/dist/invitationRepository/observers/getInvitations/InvitationsPaginationController.d.ts.map +1 -0
  84. package/dist/invitationRepository/observers/getInvitations/InvitationsQueryStreamController.d.ts +15 -0
  85. package/dist/invitationRepository/observers/getInvitations/InvitationsQueryStreamController.d.ts.map +1 -0
  86. package/dist/invitationRepository/observers/getInvitations/enums.d.ts +6 -0
  87. package/dist/invitationRepository/observers/getInvitations/enums.d.ts.map +1 -0
  88. package/dist/invitationRepository/observers/getInvitations.d.ts +12 -0
  89. package/dist/invitationRepository/observers/getInvitations.d.ts.map +1 -0
  90. package/dist/invitationRepository/observers/getMyCommunityInvitations.d.ts +12 -0
  91. package/dist/invitationRepository/observers/getMyCommunityInvitations.d.ts.map +1 -0
  92. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsLiveCollectionController.d.ts +14 -0
  93. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsLiveCollectionController.d.ts.map +1 -0
  94. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsPaginationController.d.ts +5 -0
  95. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsPaginationController.d.ts.map +1 -0
  96. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsQueryStreamController.d.ts +15 -0
  97. package/dist/invitationRepository/observers/getMyInvitations/MyInvitationsQueryStreamController.d.ts.map +1 -0
  98. package/dist/invitationRepository/observers/index.d.ts +2 -0
  99. package/dist/invitationRepository/observers/index.d.ts.map +1 -0
  100. package/dist/invitationRepository/utils/convertRawInvitationToInternalInvitation.d.ts +2 -0
  101. package/dist/invitationRepository/utils/convertRawInvitationToInternalInvitation.d.ts.map +1 -0
  102. package/dist/invitationRepository/utils/index.d.ts +2 -0
  103. package/dist/invitationRepository/utils/index.d.ts.map +1 -0
  104. package/dist/invitationRepository/utils/prepareInvitationPayload.d.ts +2 -0
  105. package/dist/invitationRepository/utils/prepareInvitationPayload.d.ts.map +1 -0
  106. package/dist/invitationRepository/utils/prepareMyInvitationsPayload.d.ts +2 -0
  107. package/dist/invitationRepository/utils/prepareMyInvitationsPayload.d.ts.map +1 -0
  108. package/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostQueryStreamController.d.ts.map +1 -1
  109. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -1
  110. package/dist/subChannelRepository/utils/prepareSubChannelPayload.d.ts.map +1 -1
  111. package/dist/utils/linkedObject/communityLinkedObject.d.ts +1 -1
  112. package/dist/utils/linkedObject/communityLinkedObject.d.ts.map +1 -1
  113. package/dist/utils/linkedObject/index.d.ts +3 -2
  114. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  115. package/dist/utils/linkedObject/invitationLinkedObject.d.ts +1 -1
  116. package/dist/utils/linkedObject/invitationLinkedObject.d.ts.map +1 -1
  117. package/dist/utils/linkedObject/joinRequestLinkedObject.d.ts +2 -0
  118. package/dist/utils/linkedObject/joinRequestLinkedObject.d.ts.map +1 -0
  119. package/dist/utils/tests/dummy/comment.d.ts +1 -1
  120. package/package.json +1 -1
  121. package/src/@types/core/events.ts +10 -4
  122. package/src/@types/core/model.ts +3 -0
  123. package/src/@types/core/payload.ts +39 -1
  124. package/src/@types/domains/community.ts +45 -2
  125. package/src/@types/domains/invitation.ts +67 -3
  126. package/src/@types/domains/joinRequest.ts +66 -0
  127. package/src/@types/index.ts +1 -0
  128. package/src/communityRepository/api/getCommunities.ts +5 -1
  129. package/src/communityRepository/api/getCommunity.ts +9 -1
  130. package/src/communityRepository/api/getRecommendedCommunities.ts +9 -3
  131. package/src/communityRepository/api/getTrendingCommunities.ts +9 -3
  132. package/src/communityRepository/api/joinCommunity.ts +4 -1
  133. package/src/communityRepository/api/updateCommunity.ts +9 -2
  134. package/src/communityRepository/internalAPI/getMyJoinRequest.ts +43 -0
  135. package/src/communityRepository/internalAPI/joinCommunity.ts +51 -0
  136. package/src/communityRepository/joinRequest/events/index.ts +3 -0
  137. package/src/communityRepository/joinRequest/events/onJoinRequestCreated.ts +33 -0
  138. package/src/communityRepository/joinRequest/events/onJoinRequestDeleted.ts +33 -0
  139. package/src/communityRepository/joinRequest/events/onJoinRequestUpdated.ts +33 -0
  140. package/src/communityRepository/joinRequest/internalAPI/approveJoinRequest.ts +52 -0
  141. package/src/communityRepository/joinRequest/internalAPI/cancelJoinRequest.ts +46 -0
  142. package/src/communityRepository/joinRequest/internalAPI/rejectJoinRequest.ts +52 -0
  143. package/src/communityRepository/observers/getJoinRequests/JoinRequestsLiveCollectionController.ts +126 -0
  144. package/src/communityRepository/observers/getJoinRequests/JoinRequestsPaginationController.ts +26 -0
  145. package/src/communityRepository/observers/getJoinRequests/JoinRequestsQueryStreamController.ts +108 -0
  146. package/src/communityRepository/observers/getJoinRequests/enum.ts +5 -0
  147. package/src/communityRepository/observers/getJoinRequests.ts +44 -0
  148. package/src/communityRepository/observers/getRecommendedCommunities/RecommendedCommunitiesLiveCollectionController.ts +2 -1
  149. package/src/communityRepository/observers/getTrendingCommunities/TrendingCommunitiesLiveCollectionController.ts +2 -1
  150. package/src/communityRepository/observers/searchCommunities/SearchCommunitiesPaginationController.ts +1 -0
  151. package/src/communityRepository/utils/communityWithMembership.ts +1 -1
  152. package/src/communityRepository/utils/payload.ts +27 -1
  153. package/src/core/liveCollection/PaginationController.ts +1 -1
  154. package/src/core/liveCollection/PaginationNoPageController.ts +1 -1
  155. package/src/core/model/idResolvers.ts +1 -0
  156. package/src/core/model/index.ts +1 -0
  157. package/src/invitationRepository/events/index.ts +2 -0
  158. package/src/invitationRepository/events/onLocalInvitationCreated.ts +1 -1
  159. package/src/invitationRepository/events/onLocalInvitationDeleted.ts +1 -1
  160. package/src/invitationRepository/events/onLocalInvitationUpdated.ts +1 -1
  161. package/src/invitationRepository/index.ts +1 -0
  162. package/src/invitationRepository/internalApi/acceptInvitation.ts +1 -1
  163. package/src/invitationRepository/internalApi/cancelInvitation.ts +1 -1
  164. package/src/invitationRepository/internalApi/createInvitations.ts +8 -2
  165. package/src/invitationRepository/internalApi/getInvitation.ts +47 -0
  166. package/src/invitationRepository/internalApi/rejectInvitation.ts +1 -1
  167. package/src/invitationRepository/observers/getInvitations/InvitationsLiveCollectionController.ts +148 -0
  168. package/src/invitationRepository/observers/getInvitations/InvitationsPaginationController.ts +19 -0
  169. package/src/invitationRepository/observers/getInvitations/InvitationsQueryStreamController.ts +97 -0
  170. package/src/invitationRepository/observers/getInvitations/enums.ts +5 -0
  171. package/src/invitationRepository/observers/getInvitations.ts +44 -0
  172. package/src/invitationRepository/observers/getMyCommunityInvitations.ts +48 -0
  173. package/src/invitationRepository/observers/getMyInvitations/MyInvitationsLiveCollectionController.ts +148 -0
  174. package/src/invitationRepository/observers/getMyInvitations/MyInvitationsPaginationController.ts +22 -0
  175. package/src/invitationRepository/observers/getMyInvitations/MyInvitationsQueryStreamController.ts +105 -0
  176. package/src/invitationRepository/observers/index.ts +1 -0
  177. package/src/invitationRepository/utils/convertRawInvitationToInternalInvitation.ts +8 -0
  178. package/src/invitationRepository/utils/index.ts +1 -0
  179. package/src/invitationRepository/utils/prepareInvitationPayload.ts +12 -0
  180. package/src/invitationRepository/utils/prepareMyInvitationsPayload.ts +12 -0
  181. package/src/messagePreview/utils/getChannelMessagePreviewWithUser.ts +3 -3
  182. package/src/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostQueryStreamController.ts +7 -1
  183. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +7 -1
  184. package/src/subChannelRepository/utils/prepareSubChannelPayload.ts +4 -0
  185. package/src/utils/linkedObject/communityLinkedObject.ts +43 -1
  186. package/src/utils/linkedObject/index.ts +2 -0
  187. package/src/utils/linkedObject/invitationLinkedObject.ts +25 -1
  188. package/src/utils/linkedObject/joinRequestLinkedObject.ts +31 -0
@@ -1,6 +1,6 @@
1
- import { pullFromCache } from '~/cache/api';
1
+ import { pullFromCache } from '~/cache/api/pullFromCache';
2
2
  import { getChannelMessagePreview } from './getChannelMessagePreview';
3
- import { LinkedObject } from '~/utils/linkedObject';
3
+ import { userLinkedObject } from '~/utils/linkedObject/userLinkedObject';
4
4
 
5
5
  export const getChannelMessagePreviewWithUser = (
6
6
  channel: Amity.StaticInternalChannel,
@@ -20,7 +20,7 @@ export const getChannelMessagePreviewWithUser = (
20
20
  const messagePreviewWithUser = messagePreview
21
21
  ? {
22
22
  ...messagePreview,
23
- user: internalUser ? LinkedObject.user(internalUser) : undefined,
23
+ user: internalUser ? userLinkedObject(internalUser) : undefined,
24
24
  }
25
25
  : null;
26
26
 
@@ -4,6 +4,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
  import { getResolver } from '~/core/model';
5
5
  import { getActiveClient } from '~/client';
6
6
  import { EnumPostActions } from '../enums';
7
+ import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
7
8
 
8
9
  export class GlobalPinnedPostQueryStreamController extends QueryStreamController<
9
10
  Amity.PinnedPostPayload,
@@ -30,7 +31,12 @@ export class GlobalPinnedPostQueryStreamController extends QueryStreamController
30
31
  const cachedAt = client.cache && Date.now();
31
32
 
32
33
  if (client.cache) {
33
- ingestInCache(response, { cachedAt });
34
+ const processedPayload = {
35
+ ...response,
36
+ users: response.users.map(convertRawUserToInternalUser),
37
+ };
38
+
39
+ ingestInCache(processedPayload, { cachedAt });
34
40
  }
35
41
  }
36
42
 
@@ -3,6 +3,7 @@ import { pullFromCache, pushToCache } from '~/cache/api';
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
  import { getResolver } from '~/core/model';
5
5
  import { getActiveClient } from '~/client';
6
+ import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
6
7
 
7
8
  export class PinnedPostQueryStreamController extends QueryStreamController<
8
9
  Amity.PinnedPostPayload,
@@ -29,7 +30,12 @@ export class PinnedPostQueryStreamController extends QueryStreamController<
29
30
  const cachedAt = client.cache && Date.now();
30
31
 
31
32
  if (client.cache) {
32
- ingestInCache(response, { cachedAt });
33
+ const processedPayload = {
34
+ ...response,
35
+ users: response.users ? response.users.map(convertRawUserToInternalUser) : [],
36
+ };
37
+
38
+ ingestInCache(processedPayload, { cachedAt });
33
39
  }
34
40
  }
35
41
 
@@ -4,6 +4,7 @@ import { convertFromRaw as convertMessageFromRaw } from '~/messageRepository/uti
4
4
  import { convertFromRaw as convertSubChannelFromRaw } from './convertSubChannelFromRaw';
5
5
 
6
6
  import { updateSubChannelMessagePreviewCache } from '../../messagePreview/utils/updateSubChannelMessagePreviewCache';
7
+ import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
7
8
 
8
9
  export const MARKER_INCLUDED_SUB_CHANNEL_TYPE = ['broadcast', 'conversation', 'community'];
9
10
 
@@ -44,10 +45,13 @@ export const prepareSubChannelPayload = async (
44
45
 
45
46
  const messages = rawPayload.messages.map(m => convertMessageFromRaw(m));
46
47
 
48
+ const user = rawPayload.users.map(convertRawUserToInternalUser);
49
+
47
50
  return {
48
51
  ...rawPayload,
49
52
  messageFeeds,
50
53
  messages,
54
+ users: user,
51
55
  };
52
56
  };
53
57
 
@@ -1,7 +1,12 @@
1
1
  import { InvitationTypeEnum } from '~/@types';
2
+ import { getMyJoinRequest } from '~/communityRepository/internalAPI/getMyJoinRequest';
3
+ import { joinRequest } from '~/communityRepository/internalAPI/joinCommunity';
4
+ import { getJoinRequests } from '~/communityRepository/observers/getJoinRequests';
2
5
  import { createInvitations } from '~/invitationRepository/internalApi';
6
+ import { getInvitation } from '~/invitationRepository/internalApi/getInvitation';
7
+ import { getInvitations } from '~/invitationRepository/observers/getInvitations';
3
8
 
4
- export const communityLinkedObject = (community: Amity.RawCommunity): Amity.Community => {
9
+ export const communityLinkedObject = (community: Amity.InternalCommunity): Amity.Community => {
5
10
  return {
6
11
  ...community,
7
12
  createInvitations: async (userIds: string[]): Promise<void> => {
@@ -12,5 +17,42 @@ export const communityLinkedObject = (community: Amity.RawCommunity): Amity.Comm
12
17
  userIds,
13
18
  });
14
19
  },
20
+ getMemberInvitations: (
21
+ params: Pick<Amity.InvitationLiveCollection, 'limit' | 'sortBy' | 'statuses'>,
22
+ callback: Amity.LiveCollectionCallback<Amity.Invitation>,
23
+ ): Amity.Unsubscriber => {
24
+ return getInvitations(
25
+ {
26
+ ...params,
27
+ targetId: community.communityId,
28
+ targetType: 'community',
29
+ type: InvitationTypeEnum.CommunityMemberInvite,
30
+ },
31
+ callback,
32
+ );
33
+ },
34
+ getInvitation: async () => {
35
+ const { data } = await getInvitation('community', community.communityId);
36
+ return data;
37
+ },
38
+ join: async (): Promise<Amity.JoinResult> => {
39
+ return joinRequest(community.communityId);
40
+ },
41
+ getJoinRequests: (
42
+ params: Omit<Amity.QueryJoinRequest, 'communityId'>,
43
+ callback: Amity.LiveCollectionCallback<Amity.JoinRequest>,
44
+ ): Amity.Unsubscriber => {
45
+ return getJoinRequests(
46
+ {
47
+ ...params,
48
+ communityId: community.communityId,
49
+ },
50
+ callback,
51
+ );
52
+ },
53
+ getMyJoinRequest: async () => {
54
+ const { data } = await getMyJoinRequest(community.communityId);
55
+ return data;
56
+ },
15
57
  };
16
58
  };
@@ -13,6 +13,7 @@ import { pinnedPostLinkedObject } from './pinnedPostLinkedObject';
13
13
  import { notificationTrayLinkedObject } from './notificationTrayLinkedObject';
14
14
  import { communityLinkedObject } from './communityLinkedObject';
15
15
  import { invitationLinkedObject } from './invitationLinkedObject';
16
+ import { joinRequestLinkedObject } from './joinRequestLinkedObject';
16
17
 
17
18
  export const LinkedObject = {
18
19
  ad: adLinkedObject,
@@ -30,4 +31,5 @@ export const LinkedObject = {
30
31
  notificationTray: notificationTrayLinkedObject,
31
32
  community: communityLinkedObject,
32
33
  invitation: invitationLinkedObject,
34
+ joinRequest: joinRequestLinkedObject,
33
35
  };
@@ -1,12 +1,36 @@
1
+ import { pullFromCache } from '~/cache/api';
2
+ import { userLinkedObject } from './userLinkedObject';
1
3
  import {
2
4
  acceptInvitation,
3
5
  cancelInvitation,
4
6
  rejectInvitation,
5
7
  } from '~/invitationRepository/internalApi';
6
8
 
7
- export const invitationLinkedObject = (invitation: Amity.RawInvitation): Amity.Invitation => {
9
+ export const invitationLinkedObject = (invitation: Amity.InternalInvitation): Amity.Invitation => {
8
10
  return {
9
11
  ...invitation,
12
+ get user(): Amity.User | undefined {
13
+ const cacheData = pullFromCache<Amity.User>(['user', 'get', invitation.invitedUserPublicId]);
14
+ if (cacheData?.data) return userLinkedObject(cacheData.data);
15
+ return undefined;
16
+ },
17
+ get createdBy(): Amity.User | undefined {
18
+ const cacheData = pullFromCache<Amity.User>(['user', 'get', invitation.inviterUserPublicId]);
19
+ if (cacheData?.data) return userLinkedObject(cacheData.data);
20
+ return undefined;
21
+ },
22
+ get target(): Amity.InvitationTarget<Amity.InvitationTargetType> | undefined {
23
+ if (invitation.targetType === 'community') {
24
+ const cacheData = pullFromCache<Amity.InternalCommunity>([
25
+ 'community',
26
+ 'get',
27
+ invitation.targetId,
28
+ ]);
29
+ if (cacheData?.data) return cacheData.data;
30
+ return undefined;
31
+ }
32
+ return undefined;
33
+ },
10
34
  accept: async () => {
11
35
  await acceptInvitation(invitation._id);
12
36
  },
@@ -0,0 +1,31 @@
1
+ import { pullFromCache } from '~/cache/api';
2
+ import { userLinkedObject } from './userLinkedObject';
3
+ import { approveJoinRequest } from '~/communityRepository/joinRequest/internalAPI/approveJoinRequest';
4
+ import { cancelJoinRequest } from '~/communityRepository/joinRequest/internalAPI/cancelJoinRequest';
5
+ import { rejectJoinRequest } from '~/communityRepository/joinRequest/internalAPI/rejectJoinRequest';
6
+
7
+ export const joinRequestLinkedObject = (
8
+ joinRequest: Amity.InternalJoinRequest,
9
+ ): Amity.JoinRequest => {
10
+ return {
11
+ ...joinRequest,
12
+ get user(): Amity.User | undefined {
13
+ const user = pullFromCache<Amity.InternalUser>([
14
+ 'user',
15
+ 'get',
16
+ joinRequest.requestorPublicId,
17
+ ])?.data;
18
+ if (!user) return undefined;
19
+ return userLinkedObject(user);
20
+ },
21
+ cancel: async () => {
22
+ await cancelJoinRequest(joinRequest);
23
+ },
24
+ approve: async () => {
25
+ await approveJoinRequest(joinRequest);
26
+ },
27
+ reject: async () => {
28
+ await rejectJoinRequest(joinRequest);
29
+ },
30
+ };
31
+ };