@nlabs/metropolisjs 0.1.2 → 0.3.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.
- package/.github/copilot-instructions.md +167 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +112 -0
- package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
- package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
- package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
- package/README.md +1123 -112
- package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
- package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
- package/docs/ACTIONS.md +63 -0
- package/docs/COLLECTIONS.md +1038 -0
- package/docs/CONNECTIONS.md +1367 -0
- package/docs/CRUD_INTEGRATION.md +702 -0
- package/examples/connections-usage.tsx +909 -0
- package/examples/content-actions-usage.ts +144 -0
- package/examples/crud-usage.tsx +847 -0
- package/examples/extensibility-usage.tsx +889 -0
- package/examples/i18n-import-examples.ts +86 -0
- package/examples/i18n-namespace-usage.ts +118 -0
- package/examples/i18next-singleton-demo.ts +187 -0
- package/examples/permission-system-usage.tsx +415 -0
- package/examples/project-details.tsx +397 -0
- package/examples/shared-i18n-usage.tsx +203 -0
- package/examples/signup-error-handling.ts +100 -0
- package/examples/translation-types.ts +86 -0
- package/examples/translation-usage.tsx +336 -0
- package/index.js +1 -0
- package/jest.config.mjs +28 -0
- package/lex.config.mjs +11 -2
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
- package/lib/actions/appActions/appActions.d.ts +29 -0
- package/lib/actions/appActions/appActions.d.ts.map +1 -0
- package/lib/actions/appActions/appActions.js +159 -0
- package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
- package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
- package/lib/actions/connectionActions/connectionActions.js +131 -0
- package/lib/actions/contentActions/contentActions.d.ts +34 -0
- package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
- package/lib/actions/contentActions/contentActions.js +314 -0
- package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
- package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
- package/lib/actions/conversationActions/conversationActions.js +225 -0
- package/lib/actions/eventActions/eventActions.d.ts +27 -7
- package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
- package/lib/actions/eventActions/eventActions.js +436 -2
- package/lib/actions/groupActions/groupActions.d.ts +30 -0
- package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
- package/lib/actions/groupActions/groupActions.js +229 -0
- package/lib/actions/imageActions/imageActions.d.ts +16 -10
- package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
- package/lib/actions/imageActions/imageActions.js +593 -2
- package/lib/actions/index.d.ts +21 -9
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +22 -2
- package/lib/actions/locationActions/locationActions.d.ts +11 -9
- package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
- package/lib/actions/locationActions/locationActions.js +388 -2
- package/lib/actions/messageActions/messageActions.d.ts +16 -32
- package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
- package/lib/actions/messageActions/messageActions.js +235 -2
- package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
- package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
- package/lib/actions/permissionActions/permissionActions.js +330 -0
- package/lib/actions/personaActions/personaActions.d.ts +65 -0
- package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
- package/lib/actions/personaActions/personaActions.js +572 -0
- package/lib/actions/postActions/postActions.d.ts +12 -32
- package/lib/actions/postActions/postActions.d.ts.map +1 -0
- package/lib/actions/postActions/postActions.js +447 -2
- package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
- package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
- package/lib/actions/reactionActions/reactionActions.js +413 -2
- package/lib/actions/sseActions/sseActions.d.ts +1 -0
- package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
- package/lib/actions/sseActions/sseActions.js +148 -2
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
- package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
- package/lib/actions/tagActions/tagActions.d.ts +13 -31
- package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
- package/lib/actions/tagActions/tagActions.js +347 -2
- package/lib/actions/translationActions/translationActions.d.ts +38 -0
- package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
- package/lib/actions/translationActions/translationActions.js +189 -0
- package/lib/actions/userActions/userActions.d.ts +44 -95
- package/lib/actions/userActions/userActions.d.ts.map +1 -0
- package/lib/actions/userActions/userActions.js +870 -2
- package/lib/actions/videoActions/videoActions.d.ts +41 -0
- package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
- package/lib/actions/videoActions/videoActions.js +532 -0
- package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
- package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
- package/lib/actions/websocketActions/websocketActions.js +377 -2
- package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
- package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
- package/lib/adapters/appAdapter/appAdapter.js +90 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
- package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
- package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
- package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
- package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
- package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
- package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
- package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
- package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
- package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
- package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
- package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
- package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
- package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
- package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
- package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
- package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
- package/lib/adapters/index.d.ts +34 -16
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +19 -2
- package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
- package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
- package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
- package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
- package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
- package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
- package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
- package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
- package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
- package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
- package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
- package/lib/adapters/postAdapter/postAdapter.js +115 -2
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
- package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
- package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
- package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
- package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
- package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
- package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
- package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
- package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
- package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
- package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
- package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
- package/lib/adapters/userAdapter/userAdapter.js +302 -2
- package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
- package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
- package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
- package/lib/config/index.d.ts +19 -6
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +97 -2
- package/lib/constants/Collections.d.ts +44 -0
- package/lib/constants/Collections.d.ts.map +1 -0
- package/lib/constants/Collections.js +40 -0
- package/lib/constants/MetropolisConstants.d.ts +1 -0
- package/lib/constants/MetropolisConstants.d.ts.map +1 -0
- package/lib/constants/MetropolisConstants.js +15 -2
- package/lib/graphql/message.d.ts +1 -0
- package/lib/graphql/message.d.ts.map +1 -0
- package/lib/graphql/message.js +6 -4
- package/lib/graphql/notification.d.ts +1 -0
- package/lib/graphql/notification.d.ts.map +1 -0
- package/lib/graphql/notification.js +6 -4
- package/lib/graphql/session.d.ts +1 -0
- package/lib/graphql/session.d.ts.map +1 -0
- package/lib/graphql/session.js +4 -3
- package/lib/index.d.ts +45 -22
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +248 -2
- package/lib/stores/appStore.d.ts +1 -0
- package/lib/stores/appStore.d.ts.map +1 -0
- package/lib/stores/appStore.js +23 -2
- package/lib/stores/contentStore.d.ts +36 -0
- package/lib/stores/contentStore.d.ts.map +1 -0
- package/lib/stores/contentStore.js +139 -0
- package/lib/stores/conversationStore.d.ts +38 -0
- package/lib/stores/conversationStore.d.ts.map +1 -0
- package/lib/stores/conversationStore.js +117 -0
- package/lib/stores/eventStore.d.ts +4 -1
- package/lib/stores/eventStore.d.ts.map +1 -0
- package/lib/stores/eventStore.js +47 -2
- package/lib/stores/groupStore.d.ts +37 -0
- package/lib/stores/groupStore.d.ts.map +1 -0
- package/lib/stores/groupStore.js +68 -0
- package/lib/stores/imageStore.d.ts +6 -1
- package/lib/stores/imageStore.d.ts.map +1 -0
- package/lib/stores/imageStore.js +53 -2
- package/lib/stores/index.d.ts +20 -11
- package/lib/stores/index.d.ts.map +1 -0
- package/lib/stores/index.js +24 -2
- package/lib/stores/locationStore.d.ts +2 -1
- package/lib/stores/locationStore.d.ts.map +1 -0
- package/lib/stores/locationStore.js +42 -2
- package/lib/stores/messageStore.d.ts +19 -4
- package/lib/stores/messageStore.d.ts.map +1 -0
- package/lib/stores/messageStore.js +137 -2
- package/lib/stores/notificationStore.d.ts +33 -0
- package/lib/stores/notificationStore.d.ts.map +1 -0
- package/lib/stores/notificationStore.js +55 -0
- package/lib/stores/permissionStore.d.ts +37 -0
- package/lib/stores/permissionStore.d.ts.map +1 -0
- package/lib/stores/permissionStore.js +117 -0
- package/lib/stores/personaStore.d.ts +26 -0
- package/lib/stores/personaStore.d.ts.map +1 -0
- package/lib/stores/personaStore.js +118 -0
- package/lib/stores/postStore.d.ts +2 -1
- package/lib/stores/postStore.d.ts.map +1 -0
- package/lib/stores/postStore.js +53 -2
- package/lib/stores/reactionStore.d.ts +1 -0
- package/lib/stores/reactionStore.d.ts.map +1 -0
- package/lib/stores/reactionStore.js +28 -2
- package/lib/stores/subscriptionStore.d.ts +41 -0
- package/lib/stores/subscriptionStore.d.ts.map +1 -0
- package/lib/stores/subscriptionStore.js +85 -0
- package/lib/stores/tagStore.d.ts +8 -5
- package/lib/stores/tagStore.d.ts.map +1 -0
- package/lib/stores/tagStore.js +87 -2
- package/lib/stores/translationStore.d.ts +42 -0
- package/lib/stores/translationStore.d.ts.map +1 -0
- package/lib/stores/translationStore.js +122 -0
- package/lib/stores/userStore.d.ts +5 -4
- package/lib/stores/userStore.d.ts.map +1 -0
- package/lib/stores/userStore.js +319 -2
- package/lib/stores/videoStore.d.ts +39 -0
- package/lib/stores/videoStore.d.ts.map +1 -0
- package/lib/stores/videoStore.js +132 -0
- package/lib/stores/websocketStore.d.ts +1 -0
- package/lib/stores/websocketStore.d.ts.map +1 -0
- package/lib/stores/websocketStore.js +51 -2
- package/lib/types/apps.types.d.ts +17 -0
- package/lib/types/apps.types.d.ts.map +1 -0
- package/lib/types/apps.types.js +6 -0
- package/lib/types/common.types.d.ts +31 -0
- package/lib/types/common.types.d.ts.map +1 -0
- package/lib/types/common.types.js +6 -0
- package/lib/types/conversations.types.d.ts +17 -0
- package/lib/types/conversations.types.d.ts.map +1 -0
- package/lib/types/conversations.types.js +6 -0
- package/lib/types/edges.types.d.ts +38 -0
- package/lib/types/edges.types.d.ts.map +1 -0
- package/lib/types/edges.types.js +6 -0
- package/lib/types/groups.types.d.ts +19 -0
- package/lib/types/groups.types.d.ts.map +1 -0
- package/lib/types/groups.types.js +6 -0
- package/lib/types/index.d.ts +12 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +12 -0
- package/lib/types/subscriptions.types.d.ts +32 -0
- package/lib/types/subscriptions.types.d.ts.map +1 -0
- package/lib/types/subscriptions.types.js +6 -0
- package/lib/types/videos.types.d.ts +61 -0
- package/lib/types/videos.types.d.ts.map +1 -0
- package/lib/types/videos.types.js +6 -0
- package/lib/utils/MetropolisProvider.d.ts +39 -15
- package/lib/utils/MetropolisProvider.d.ts.map +1 -0
- package/lib/utils/MetropolisProvider.js +31 -2
- package/lib/utils/actionFactory.d.ts +21 -19
- package/lib/utils/actionFactory.d.ts.map +1 -0
- package/lib/utils/actionFactory.js +95 -2
- package/lib/utils/api.d.ts +5 -4
- package/lib/utils/api.d.ts.map +1 -0
- package/lib/utils/api.js +252 -6
- package/lib/utils/app.d.ts +1 -0
- package/lib/utils/app.d.ts.map +1 -0
- package/lib/utils/app.js +15 -2
- package/lib/utils/baseActionFactory.d.ts +5 -23
- package/lib/utils/baseActionFactory.d.ts.map +1 -0
- package/lib/utils/baseActionFactory.js +72 -2
- package/lib/utils/configUtils.d.ts +11 -0
- package/lib/utils/configUtils.d.ts.map +1 -0
- package/lib/utils/configUtils.js +20 -0
- package/lib/utils/dateUtils.d.ts +1 -0
- package/lib/utils/dateUtils.d.ts.map +1 -0
- package/lib/utils/dateUtils.js +11 -2
- package/lib/utils/file.d.ts +3 -1
- package/lib/utils/file.d.ts.map +1 -0
- package/lib/utils/file.js +156 -2
- package/lib/utils/i18n.d.ts +7 -0
- package/lib/utils/i18n.d.ts.map +1 -0
- package/lib/utils/i18n.js +96 -0
- package/lib/utils/index.d.ts +20 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/location.d.ts +4 -3
- package/lib/utils/location.d.ts.map +1 -0
- package/lib/utils/location.js +82 -2
- package/lib/utils/permissionUtils.d.ts +22 -0
- package/lib/utils/permissionUtils.d.ts.map +1 -0
- package/lib/utils/permissionUtils.js +72 -0
- package/lib/utils/requestCache.d.ts +8 -0
- package/lib/utils/requestCache.d.ts.map +1 -0
- package/lib/utils/requestCache.js +53 -0
- package/lib/utils/session.d.ts +14 -0
- package/lib/utils/session.d.ts.map +1 -0
- package/lib/utils/session.js +107 -0
- package/lib/utils/useConversationTyping.d.ts +26 -0
- package/lib/utils/useConversationTyping.d.ts.map +1 -0
- package/lib/utils/useConversationTyping.js +117 -0
- package/lib/utils/useMetropolis.d.ts +67 -12
- package/lib/utils/useMetropolis.d.ts.map +1 -0
- package/lib/utils/useMetropolis.js +311 -2
- package/lib/utils/useTranslations.d.ts +16 -0
- package/lib/utils/useTranslations.d.ts.map +1 -0
- package/lib/utils/useTranslations.js +105 -0
- package/lib/utils/validatorFactory.d.ts +3 -2
- package/lib/utils/validatorFactory.d.ts.map +1 -0
- package/lib/utils/validatorFactory.js +95 -2
- package/package.json +58 -17
- package/temp_signin.ts +73 -0
- package/lib/actions/profileActions/profileActions.d.ts +0 -50
- package/lib/actions/profileActions/profileActions.js +0 -2
- package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
- package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
- package/lib/stores/profileStore.d.ts +0 -24
- package/lib/stores/profileStore.js +0 -2
- /package/{FACTORY_PATTERN_GUIDE.md → factoryPatternGuide.md} +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { parseId, parseNum } from '@nlabs/utils';
|
|
5
|
+
import { validateConversationInput } from '../../adapters/conversationAdapter/conversationAdapter.js';
|
|
6
|
+
import { CONVERSATION_CONSTANTS } from '../../stores/conversationStore.js';
|
|
7
|
+
import { appMutation, appQuery } from '../../utils/api.js';
|
|
8
|
+
import { createBaseActions } from '../../utils/baseActionFactory.js';
|
|
9
|
+
import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
|
|
10
|
+
const DATA_TYPE = 'conversations';
|
|
11
|
+
const defaultConversationValidator = (input, options)=>validateConversationInput(input);
|
|
12
|
+
export const createConversationActions = (flux, options)=>{
|
|
13
|
+
const conversationBase = createBaseActions(flux, defaultConversationValidator, {
|
|
14
|
+
adapter: options?.conversationAdapter,
|
|
15
|
+
adapterOptions: options?.conversationAdapterOptions
|
|
16
|
+
});
|
|
17
|
+
const add = async (conversationData, conversationProps = [], requestOptions = {})=>{
|
|
18
|
+
try {
|
|
19
|
+
const queryVariables = {
|
|
20
|
+
conversation: {
|
|
21
|
+
type: 'ConversationInput!',
|
|
22
|
+
value: conversationBase.validator(conversationData)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const onSuccess = (data)=>{
|
|
26
|
+
const conversation = data?.conversations?.add || {};
|
|
27
|
+
return flux.dispatch({
|
|
28
|
+
conversation,
|
|
29
|
+
type: CONVERSATION_CONSTANTS.ADD_ITEM_SUCCESS
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return await appMutation(flux, 'add', DATA_TYPE, queryVariables, [
|
|
33
|
+
'conversationId',
|
|
34
|
+
...conversationProps
|
|
35
|
+
], {
|
|
36
|
+
onSuccess
|
|
37
|
+
});
|
|
38
|
+
} catch (error) {
|
|
39
|
+
flux.dispatch({
|
|
40
|
+
error,
|
|
41
|
+
type: CONVERSATION_CONSTANTS.ADD_ITEM_ERROR
|
|
42
|
+
});
|
|
43
|
+
throw error;
|
|
44
|
+
} finally{
|
|
45
|
+
await clearCachedRequest(flux, 'conversation.list');
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const itemById = async (conversationId, conversationProps = [], requestOptions = {})=>{
|
|
49
|
+
try {
|
|
50
|
+
const cachedResult = getCachedRequest(flux, `conversation.itemById:${conversationId}`, {
|
|
51
|
+
conversationId,
|
|
52
|
+
conversationProps
|
|
53
|
+
}, requestOptions);
|
|
54
|
+
if (cachedResult !== undefined) {
|
|
55
|
+
return cachedResult;
|
|
56
|
+
}
|
|
57
|
+
const queryVariables = {
|
|
58
|
+
conversationId: {
|
|
59
|
+
type: 'ID!',
|
|
60
|
+
value: parseId(conversationId)
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const onSuccess = (data)=>{
|
|
64
|
+
const conversation = data?.conversations?.itemById || {};
|
|
65
|
+
return flux.dispatch({
|
|
66
|
+
conversation,
|
|
67
|
+
type: CONVERSATION_CONSTANTS.GET_ITEM_SUCCESS
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const result = await appQuery(flux, 'itemById', DATA_TYPE, queryVariables, [
|
|
71
|
+
'conversationId',
|
|
72
|
+
'isGroup',
|
|
73
|
+
'lastMessageAt',
|
|
74
|
+
'memberCount',
|
|
75
|
+
'members',
|
|
76
|
+
'name',
|
|
77
|
+
'ownerId',
|
|
78
|
+
'settings',
|
|
79
|
+
'userId',
|
|
80
|
+
...conversationProps
|
|
81
|
+
], {
|
|
82
|
+
onSuccess
|
|
83
|
+
});
|
|
84
|
+
return await setCachedRequest(flux, `conversation.itemById:${conversationId}`, {
|
|
85
|
+
conversationId,
|
|
86
|
+
conversationProps
|
|
87
|
+
}, result, requestOptions);
|
|
88
|
+
} catch (error) {
|
|
89
|
+
flux.dispatch({
|
|
90
|
+
error,
|
|
91
|
+
type: CONVERSATION_CONSTANTS.GET_ITEM_ERROR
|
|
92
|
+
});
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const list = async (from = 0, to = 10, conversationProps = [], requestOptions = {})=>{
|
|
97
|
+
try {
|
|
98
|
+
const cachedResult = getCachedRequest(flux, 'conversation.list', {
|
|
99
|
+
from,
|
|
100
|
+
to,
|
|
101
|
+
conversationProps
|
|
102
|
+
}, requestOptions);
|
|
103
|
+
if (cachedResult !== undefined) {
|
|
104
|
+
return cachedResult;
|
|
105
|
+
}
|
|
106
|
+
const queryVariables = {
|
|
107
|
+
from: {
|
|
108
|
+
type: 'Int',
|
|
109
|
+
value: parseNum(from)
|
|
110
|
+
},
|
|
111
|
+
to: {
|
|
112
|
+
type: 'Int',
|
|
113
|
+
value: parseNum(to)
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const onSuccess = (data)=>{
|
|
117
|
+
const list = data?.conversations?.list || [];
|
|
118
|
+
return flux.dispatch({
|
|
119
|
+
list,
|
|
120
|
+
type: CONVERSATION_CONSTANTS.GET_LIST_SUCCESS
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
const result = await appQuery(flux, 'list', DATA_TYPE, queryVariables, [
|
|
124
|
+
'conversationId',
|
|
125
|
+
'isGroup',
|
|
126
|
+
'lastMessageAt',
|
|
127
|
+
'memberCount',
|
|
128
|
+
'members',
|
|
129
|
+
'name',
|
|
130
|
+
'ownerId',
|
|
131
|
+
'settings',
|
|
132
|
+
'userId',
|
|
133
|
+
...conversationProps
|
|
134
|
+
], {
|
|
135
|
+
onSuccess
|
|
136
|
+
});
|
|
137
|
+
return await setCachedRequest(flux, 'conversation.list', {
|
|
138
|
+
from,
|
|
139
|
+
to,
|
|
140
|
+
conversationProps
|
|
141
|
+
}, result, requestOptions);
|
|
142
|
+
} catch (error) {
|
|
143
|
+
flux.dispatch({
|
|
144
|
+
error,
|
|
145
|
+
type: CONVERSATION_CONSTANTS.GET_LIST_ERROR
|
|
146
|
+
});
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const deleteConversation = async (conversationId, conversationProps = [], requestOptions = {})=>{
|
|
151
|
+
try {
|
|
152
|
+
const queryVariables = {
|
|
153
|
+
conversationId: {
|
|
154
|
+
type: 'ID!',
|
|
155
|
+
value: parseId(conversationId)
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
const onSuccess = (data)=>{
|
|
159
|
+
const conversation = data?.conversations?.remove || {};
|
|
160
|
+
return flux.dispatch({
|
|
161
|
+
conversation,
|
|
162
|
+
type: CONVERSATION_CONSTANTS.REMOVE_ITEM_SUCCESS
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
return await appMutation(flux, 'remove', DATA_TYPE, queryVariables, [
|
|
166
|
+
'conversationId',
|
|
167
|
+
...conversationProps
|
|
168
|
+
], {
|
|
169
|
+
onSuccess
|
|
170
|
+
});
|
|
171
|
+
} catch (error) {
|
|
172
|
+
flux.dispatch({
|
|
173
|
+
error,
|
|
174
|
+
type: CONVERSATION_CONSTANTS.REMOVE_ITEM_ERROR
|
|
175
|
+
});
|
|
176
|
+
throw error;
|
|
177
|
+
} finally{
|
|
178
|
+
await clearCachedRequest(flux, `conversation.itemById:${conversationId}`);
|
|
179
|
+
await clearCachedRequest(flux, 'conversation.list');
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
const update = async (conversation, conversationProps = [], requestOptions = {})=>{
|
|
183
|
+
try {
|
|
184
|
+
const queryVariables = {
|
|
185
|
+
conversation: {
|
|
186
|
+
type: 'ConversationUpdateInput!',
|
|
187
|
+
value: conversationBase.validator(conversation)
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
const onSuccess = (data)=>{
|
|
191
|
+
const conversation = data?.conversations?.update || {};
|
|
192
|
+
return flux.dispatch({
|
|
193
|
+
conversation,
|
|
194
|
+
type: CONVERSATION_CONSTANTS.UPDATE_ITEM_SUCCESS
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
return await appMutation(flux, 'update', DATA_TYPE, queryVariables, [
|
|
198
|
+
'conversationId',
|
|
199
|
+
...conversationProps
|
|
200
|
+
], {
|
|
201
|
+
onSuccess
|
|
202
|
+
});
|
|
203
|
+
} catch (error) {
|
|
204
|
+
flux.dispatch({
|
|
205
|
+
error,
|
|
206
|
+
type: CONVERSATION_CONSTANTS.UPDATE_ITEM_ERROR
|
|
207
|
+
});
|
|
208
|
+
throw error;
|
|
209
|
+
} finally{
|
|
210
|
+
await clearCachedRequest(flux, `conversation.itemById:${String(conversation?.conversationId || '')}`);
|
|
211
|
+
await clearCachedRequest(flux, 'conversation.list');
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
return {
|
|
215
|
+
add,
|
|
216
|
+
delete: deleteConversation,
|
|
217
|
+
itemById,
|
|
218
|
+
list,
|
|
219
|
+
update,
|
|
220
|
+
updateConversationAdapter: conversationBase.updateAdapter,
|
|
221
|
+
updateConversationAdapterOptions: conversationBase.updateOptions
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGVDb252ZXJzYXRpb25JbnB1dH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvY29udmVyc2F0aW9uQWRhcHRlci9jb252ZXJzYXRpb25BZGFwdGVyLmpzJztcbmltcG9ydCB7Q09OVkVSU0FUSU9OX0NPTlNUQU5UU30gZnJvbSAnLi4vLi4vc3RvcmVzL2NvbnZlcnNhdGlvblN0b3JlLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7QmFzZUFkYXB0ZXJPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JGYWN0b3J5LmpzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25SZXF1ZXN0T3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zIGV4dGVuZHMgQmFzZUFkYXB0ZXJPcHRpb25zIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25BY3Rpb25zT3B0aW9ucyB7XG4gIGNvbnZlcnNhdGlvbkFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBDb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucykgPT4gYW55O1xuICBjb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucz86IENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25BcGlSZXN1bHRzVHlwZSA9IHtcbiAgY29udmVyc2F0aW9uczoge1xuICAgIGFkZD86IENvbnZlcnNhdGlvblR5cGU7XG4gICAgaXRlbUJ5SWQ/OiBDb252ZXJzYXRpb25UeXBlO1xuICAgIGxpc3Q/OiBDb252ZXJzYXRpb25UeXBlW107XG4gICAgcmVtb3ZlPzogQ29udmVyc2F0aW9uVHlwZTtcbiAgICB1cGRhdGU/OiBDb252ZXJzYXRpb25UeXBlO1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25BY3Rpb25zIHtcbiAgYWRkOiAoY29udmVyc2F0aW9uRGF0YTogUGFydGlhbDxDb252ZXJzYXRpb25UeXBlPiwgY29udmVyc2F0aW9uUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPjtcbiAgZGVsZXRlOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgY29udmVyc2F0aW9uUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPjtcbiAgaXRlbUJ5SWQ6IChjb252ZXJzYXRpb25JZDogc3RyaW5nLCBjb252ZXJzYXRpb25Qcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+O1xuICBsaXN0OiAoZnJvbT86IG51bWJlciwgdG8/OiBudW1iZXIsIGNvbnZlcnNhdGlvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPjtcbiAgdXBkYXRlOiAoY29udmVyc2F0aW9uOiBQYXJ0aWFsPENvbnZlcnNhdGlvblR5cGU+LCBjb252ZXJzYXRpb25Qcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+O1xuICB1cGRhdGVDb252ZXJzYXRpb25BZGFwdGVyOiAoYWRhcHRlcjogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnMpID0+IGFueSkgPT4gdm9pZDtcbiAgdXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBDb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucykgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVmYXVsdENvbnZlcnNhdGlvblZhbGlkYXRvciA9IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zKSA9PlxuICB2YWxpZGF0ZUNvbnZlcnNhdGlvbklucHV0KGlucHV0KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbnZlcnNhdGlvbkFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBDb252ZXJzYXRpb25BY3Rpb25zT3B0aW9uc1xuKTogQ29udmVyc2F0aW9uQWN0aW9ucyA9PiB7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkJhc2UgPSBjcmVhdGVCYXNlQWN0aW9ucyhmbHV4LCBkZWZhdWx0Q29udmVyc2F0aW9uVmFsaWRhdG9yLCB7XG4gICAgYWRhcHRlcjogb3B0aW9ucz8uY29udmVyc2F0aW9uQWRhcHRlcixcbiAgICBhZGFwdGVyT3B0aW9uczogb3B0aW9ucz8uY29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnNcbiAgfSk7XG5cbiAgY29uc3QgYWRkID0gYXN5bmMgKFxuICAgIGNvbnZlcnNhdGlvbkRhdGE6IFBhcnRpYWw8Q29udmVyc2F0aW9uVHlwZT4sXG4gICAgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBjb252ZXJzYXRpb246IHtcbiAgICAgICAgICB0eXBlOiAnQ29udmVyc2F0aW9uSW5wdXQhJyxcbiAgICAgICAgICB2YWx1ZTogY29udmVyc2F0aW9uQmFzZS52YWxpZGF0b3IoY29udmVyc2F0aW9uRGF0YSlcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnZlcnNhdGlvbkFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/LmFkZCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbiwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdhZGQnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2NvbnZlcnNhdGlvbklkJywgLi4uY29udmVyc2F0aW9uUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5BRERfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnY29udmVyc2F0aW9uLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaXRlbUJ5SWQgPSBhc3luYyAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8Q29udmVyc2F0aW9uVHlwZT4oZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWAsIHtjb252ZXJzYXRpb25JZCwgY29udmVyc2F0aW9uUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBjb252ZXJzYXRpb25JZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udmVyc2F0aW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgY29udmVyc2F0aW9uID0gZGF0YT8uY29udmVyc2F0aW9ucz8uaXRlbUJ5SWQgfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdpdGVtQnlJZCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAnY29udmVyc2F0aW9uSWQnLFxuICAgICAgICAgICdpc0dyb3VwJyxcbiAgICAgICAgICAnbGFzdE1lc3NhZ2VBdCcsXG4gICAgICAgICAgJ21lbWJlckNvdW50JyxcbiAgICAgICAgICAnbWVtYmVycycsXG4gICAgICAgICAgJ25hbWUnLFxuICAgICAgICAgICdvd25lcklkJyxcbiAgICAgICAgICAnc2V0dGluZ3MnLFxuICAgICAgICAgICd1c2VySWQnLFxuICAgICAgICAgIC4uLmNvbnZlcnNhdGlvblByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWAsIHtjb252ZXJzYXRpb25JZCwgY29udmVyc2F0aW9uUHJvcHN9LCByZXN1bHQsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxpc3QgPSBhc3luYyAoXG4gICAgZnJvbTogbnVtYmVyID0gMCxcbiAgICB0bzogbnVtYmVyID0gMTAsXG4gICAgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb252ZXJzYXRpb25UeXBlW10+KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcsIHtmcm9tLCB0bywgY29udmVyc2F0aW9uUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBmcm9tOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKGZyb20pXG4gICAgICAgIH0sXG4gICAgICAgIHRvOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKHRvKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udmVyc2F0aW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/Lmxpc3QgfHwgW107XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtcbiAgICAgICAgICBsaXN0LFxuICAgICAgICAgIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0xJU1RfU1VDQ0VTU1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PENvbnZlcnNhdGlvblR5cGVbXT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdsaXN0JyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgW1xuICAgICAgICAgICdjb252ZXJzYXRpb25JZCcsXG4gICAgICAgICAgJ2lzR3JvdXAnLFxuICAgICAgICAgICdsYXN0TWVzc2FnZUF0JyxcbiAgICAgICAgICAnbWVtYmVyQ291bnQnLFxuICAgICAgICAgICdtZW1iZXJzJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ293bmVySWQnLFxuICAgICAgICAgICdzZXR0aW5ncycsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgLi4uY29udmVyc2F0aW9uUHJvcHNcbiAgICAgICAgXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCAnY29udmVyc2F0aW9uLmxpc3QnLCB7ZnJvbSwgdG8sIGNvbnZlcnNhdGlvblByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWxldGVDb252ZXJzYXRpb24gPSBhc3luYyAoXG4gICAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgICBjb252ZXJzYXRpb25Qcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoY29udmVyc2F0aW9uSWQpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBDb252ZXJzYXRpb25BcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJzYXRpb24gPSBkYXRhPy5jb252ZXJzYXRpb25zPy5yZW1vdmUgfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPENvbnZlcnNhdGlvblR5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAncmVtb3ZlJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydjb252ZXJzYXRpb25JZCcsIC4uLmNvbnZlcnNhdGlvblByb3BzXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBhc3luYyAoXG4gICAgY29udmVyc2F0aW9uOiBQYXJ0aWFsPENvbnZlcnNhdGlvblR5cGU+LFxuICAgIGNvbnZlcnNhdGlvblByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uOiB7XG4gICAgICAgICAgdHlwZTogJ0NvbnZlcnNhdGlvblVwZGF0ZUlucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGNvbnZlcnNhdGlvbkJhc2UudmFsaWRhdG9yKGNvbnZlcnNhdGlvbilcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnZlcnNhdGlvbkFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/LnVwZGF0ZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbiwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICd1cGRhdGUnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2NvbnZlcnNhdGlvbklkJywgLi4uY29udmVyc2F0aW9uUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgY29udmVyc2F0aW9uLml0ZW1CeUlkOiR7U3RyaW5nKGNvbnZlcnNhdGlvbj8uY29udmVyc2F0aW9uSWQgfHwgJycpfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFkZCxcbiAgICBkZWxldGU6IGRlbGV0ZUNvbnZlcnNhdGlvbixcbiAgICBpdGVtQnlJZCxcbiAgICBsaXN0LFxuICAgIHVwZGF0ZSxcbiAgICB1cGRhdGVDb252ZXJzYXRpb25BZGFwdGVyOiBjb252ZXJzYXRpb25CYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnM6IGNvbnZlcnNhdGlvbkJhc2UudXBkYXRlT3B0aW9uc1xuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUlkIiwicGFyc2VOdW0iLCJ2YWxpZGF0ZUNvbnZlcnNhdGlvbklucHV0IiwiQ09OVkVSU0FUSU9OX0NPTlNUQU5UUyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJjcmVhdGVCYXNlQWN0aW9ucyIsImNsZWFyQ2FjaGVkUmVxdWVzdCIsImdldENhY2hlZFJlcXVlc3QiLCJzZXRDYWNoZWRSZXF1ZXN0IiwiREFUQV9UWVBFIiwiZGVmYXVsdENvbnZlcnNhdGlvblZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZUNvbnZlcnNhdGlvbkFjdGlvbnMiLCJmbHV4IiwiY29udmVyc2F0aW9uQmFzZSIsImFkYXB0ZXIiLCJjb252ZXJzYXRpb25BZGFwdGVyIiwiYWRhcHRlck9wdGlvbnMiLCJjb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucyIsImFkZCIsImNvbnZlcnNhdGlvbkRhdGEiLCJjb252ZXJzYXRpb25Qcm9wcyIsInJlcXVlc3RPcHRpb25zIiwicXVlcnlWYXJpYWJsZXMiLCJjb252ZXJzYXRpb24iLCJ0eXBlIiwidmFsdWUiLCJ2YWxpZGF0b3IiLCJvblN1Y2Nlc3MiLCJkYXRhIiwiY29udmVyc2F0aW9ucyIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsImVycm9yIiwiQUREX0lURU1fRVJST1IiLCJpdGVtQnlJZCIsImNvbnZlcnNhdGlvbklkIiwiY2FjaGVkUmVzdWx0IiwidW5kZWZpbmVkIiwiR0VUX0lURU1fU1VDQ0VTUyIsInJlc3VsdCIsIkdFVF9JVEVNX0VSUk9SIiwibGlzdCIsImZyb20iLCJ0byIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImRlbGV0ZUNvbnZlcnNhdGlvbiIsInJlbW92ZSIsIlJFTU9WRV9JVEVNX1NVQ0NFU1MiLCJSRU1PVkVfSVRFTV9FUlJPUiIsInVwZGF0ZSIsIlVQREFURV9JVEVNX1NVQ0NFU1MiLCJVUERBVEVfSVRFTV9FUlJPUiIsIlN0cmluZyIsImRlbGV0ZSIsInVwZGF0ZUNvbnZlcnNhdGlvbkFkYXB0ZXIiLCJ1cGRhdGVBZGFwdGVyIiwidXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnMiLCJ1cGRhdGVPcHRpb25zIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxPQUFPLEVBQUVDLFFBQVEsUUFBTyxlQUFlO0FBRS9DLFNBQVFDLHlCQUF5QixRQUFPLDREQUE0RDtBQUNwRyxTQUFRQyxzQkFBc0IsUUFBTyxvQ0FBb0M7QUFDekUsU0FBUUMsV0FBVyxFQUFFQyxRQUFR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
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
-
import type { EventType } from '../../adapters/eventAdapter/eventAdapter';
|
|
2
|
+
import type { EventType } from '../../adapters/eventAdapter/eventAdapter.js';
|
|
3
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
4
|
+
export interface EventRsvpType {
|
|
5
|
+
readonly added?: number;
|
|
6
|
+
readonly eventId?: string;
|
|
7
|
+
readonly feeCents?: number;
|
|
8
|
+
readonly numberOfGuests?: number;
|
|
9
|
+
readonly paymentId?: string;
|
|
10
|
+
readonly subtotalCents?: number;
|
|
11
|
+
readonly taxCents?: number;
|
|
12
|
+
readonly ticketCostCents?: number;
|
|
13
|
+
readonly totalCents?: number;
|
|
14
|
+
readonly type?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface EventRsvpInput {
|
|
17
|
+
readonly eventId: string;
|
|
18
|
+
readonly numberOfGuests?: number;
|
|
19
|
+
readonly paymentType?: string;
|
|
20
|
+
}
|
|
3
21
|
export interface EventAdapterOptions {
|
|
4
22
|
readonly strict?: boolean;
|
|
5
23
|
readonly allowPartial?: boolean;
|
|
@@ -11,12 +29,13 @@ export interface EventActionsOptions {
|
|
|
11
29
|
readonly eventAdapterOptions?: EventAdapterOptions;
|
|
12
30
|
}
|
|
13
31
|
export interface EventActions {
|
|
14
|
-
readonly addEvent: (eventData: Partial<EventType>, eventProps?: string[]) => Promise<EventType>;
|
|
15
|
-
readonly getEvent: (eventId: string, eventProps?: string[]) => Promise<EventType>;
|
|
16
|
-
readonly getEventsByTags: (tags: string[], latitude: number, longitude: number, eventProps?: string[]) => Promise<EventType[]>;
|
|
17
|
-
readonly getEventsByReactions: (reactions: string[], latitude: number, longitude: number, eventProps?: string[]) => Promise<EventType[]>;
|
|
18
|
-
readonly
|
|
19
|
-
readonly
|
|
32
|
+
readonly addEvent: (eventData: Partial<EventType>, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
|
|
33
|
+
readonly getEvent: (eventId: string, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
|
|
34
|
+
readonly getEventsByTags: (tags: string[], latitude: number, longitude: number, from?: number, to?: number, startDate?: number, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType[]>;
|
|
35
|
+
readonly getEventsByReactions: (reactions: string[], latitude: number, longitude: number, from?: number, to?: number, startDate?: number, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType[]>;
|
|
36
|
+
readonly rsvpEvent: (rsvp: EventRsvpInput, rsvpProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventRsvpType>;
|
|
37
|
+
readonly deleteEvent: (eventId: string, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
|
|
38
|
+
readonly updateEvent: (event: Partial<EventType>, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
|
|
20
39
|
readonly updateEventAdapter: (adapter: (input: unknown, options?: EventAdapterOptions) => any) => void;
|
|
21
40
|
readonly updateEventAdapterOptions: (options: EventAdapterOptions) => void;
|
|
22
41
|
}
|
|
@@ -43,3 +62,4 @@ export interface EventActions {
|
|
|
43
62
|
* });
|
|
44
63
|
*/
|
|
45
64
|
export declare const createEventActions: (flux: FluxFramework, options?: EventActionsOptions) => EventActions;
|
|
65
|
+
//# sourceMappingURL=eventActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventActions.d.ts","sourceRoot":"","sources":["../../../src/actions/eventActions/eventActions.ts"],"names":[],"mappings":"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"}
|