@nlabs/metropolisjs 0.1.2 → 0.2.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 +42 -95
- package/lib/actions/userActions/userActions.d.ts.map +1 -0
- package/lib/actions/userActions/userActions.js +844 -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,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-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 { validateGroupInput } from '../../adapters/groupAdapter/groupAdapter.js';
|
|
6
|
+
import { GROUP_CONSTANTS } from '../../stores/groupStore.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 = 'groups';
|
|
11
|
+
const defaultGroupValidator = (input, options)=>validateGroupInput(input);
|
|
12
|
+
export const createGroupActions = (flux, options)=>{
|
|
13
|
+
const groupBase = createBaseActions(flux, defaultGroupValidator, {
|
|
14
|
+
adapter: options?.groupAdapter,
|
|
15
|
+
adapterOptions: options?.groupAdapterOptions
|
|
16
|
+
});
|
|
17
|
+
const add = async (groupData, groupProps = [], requestOptions = {})=>{
|
|
18
|
+
try {
|
|
19
|
+
const queryVariables = {
|
|
20
|
+
group: {
|
|
21
|
+
type: 'GroupInput!',
|
|
22
|
+
value: groupBase.validator(groupData)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const onSuccess = (data)=>{
|
|
26
|
+
const addGroup = data?.groups?.addGroup || {};
|
|
27
|
+
return flux.dispatch({
|
|
28
|
+
group: addGroup,
|
|
29
|
+
type: GROUP_CONSTANTS.ADD_ITEM_SUCCESS
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return await appMutation(flux, 'addGroup', DATA_TYPE, queryVariables, [
|
|
33
|
+
'groupId',
|
|
34
|
+
...groupProps
|
|
35
|
+
], {
|
|
36
|
+
onSuccess
|
|
37
|
+
});
|
|
38
|
+
} catch (error) {
|
|
39
|
+
flux.dispatch({
|
|
40
|
+
error,
|
|
41
|
+
type: GROUP_CONSTANTS.ADD_ITEM_ERROR
|
|
42
|
+
});
|
|
43
|
+
throw error;
|
|
44
|
+
} finally{
|
|
45
|
+
await clearCachedRequest(flux, 'group.listByLatest');
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const itemById = async (groupId, groupProps = [], requestOptions = {})=>{
|
|
49
|
+
try {
|
|
50
|
+
const cachedResult = getCachedRequest(flux, `group.itemById:${groupId}`, {
|
|
51
|
+
groupId,
|
|
52
|
+
groupProps
|
|
53
|
+
}, requestOptions);
|
|
54
|
+
if (cachedResult) {
|
|
55
|
+
return cachedResult;
|
|
56
|
+
}
|
|
57
|
+
const queryVariables = {
|
|
58
|
+
groupId: {
|
|
59
|
+
type: 'ID!',
|
|
60
|
+
value: parseId(groupId)
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const onSuccess = (data)=>{
|
|
64
|
+
const group = data?.groups?.getGroup || {};
|
|
65
|
+
return flux.dispatch({
|
|
66
|
+
group,
|
|
67
|
+
type: GROUP_CONSTANTS.GET_ITEM_SUCCESS
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const result = await appQuery(flux, 'group', DATA_TYPE, queryVariables, [
|
|
71
|
+
'description',
|
|
72
|
+
'groupId',
|
|
73
|
+
'imageUrl',
|
|
74
|
+
'isPrivate',
|
|
75
|
+
'memberCount',
|
|
76
|
+
'name',
|
|
77
|
+
'ownerId',
|
|
78
|
+
'settings',
|
|
79
|
+
'tags {name, tagId}',
|
|
80
|
+
'thumbUrl',
|
|
81
|
+
'type',
|
|
82
|
+
...groupProps
|
|
83
|
+
], {
|
|
84
|
+
onSuccess
|
|
85
|
+
});
|
|
86
|
+
return await setCachedRequest(flux, `group.itemById:${groupId}`, {
|
|
87
|
+
groupId,
|
|
88
|
+
groupProps
|
|
89
|
+
}, result, requestOptions);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
flux.dispatch({
|
|
92
|
+
error,
|
|
93
|
+
type: GROUP_CONSTANTS.GET_ITEM_ERROR
|
|
94
|
+
});
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const listByLatest = async (from = 0, to = 0, groupProps = [], requestOptions = {})=>{
|
|
99
|
+
try {
|
|
100
|
+
const cachedResult = getCachedRequest(flux, 'group.listByLatest', {
|
|
101
|
+
from,
|
|
102
|
+
to,
|
|
103
|
+
groupProps
|
|
104
|
+
}, requestOptions);
|
|
105
|
+
if (cachedResult) {
|
|
106
|
+
return cachedResult;
|
|
107
|
+
}
|
|
108
|
+
const queryVariables = {
|
|
109
|
+
from: {
|
|
110
|
+
type: 'Int',
|
|
111
|
+
value: parseNum(from)
|
|
112
|
+
},
|
|
113
|
+
to: {
|
|
114
|
+
type: 'Int',
|
|
115
|
+
value: parseNum(to)
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const onSuccess = (data)=>{
|
|
119
|
+
const groupsByLatest = data?.groups?.getGroupsByLatest || [];
|
|
120
|
+
return flux.dispatch({
|
|
121
|
+
list: groupsByLatest,
|
|
122
|
+
type: GROUP_CONSTANTS.GET_LIST_SUCCESS
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
const result = await appQuery(flux, 'groupsByLatest', DATA_TYPE, queryVariables, [
|
|
126
|
+
'description',
|
|
127
|
+
'groupId',
|
|
128
|
+
'imageUrl',
|
|
129
|
+
'isPrivate',
|
|
130
|
+
'memberCount',
|
|
131
|
+
'name',
|
|
132
|
+
'ownerId',
|
|
133
|
+
'settings',
|
|
134
|
+
'tags {name, tagId}',
|
|
135
|
+
'thumbUrl',
|
|
136
|
+
'type',
|
|
137
|
+
...groupProps
|
|
138
|
+
], {
|
|
139
|
+
onSuccess
|
|
140
|
+
});
|
|
141
|
+
return await setCachedRequest(flux, 'group.listByLatest', {
|
|
142
|
+
from,
|
|
143
|
+
to,
|
|
144
|
+
groupProps
|
|
145
|
+
}, result, requestOptions);
|
|
146
|
+
} catch (error) {
|
|
147
|
+
flux.dispatch({
|
|
148
|
+
error,
|
|
149
|
+
type: GROUP_CONSTANTS.GET_LIST_ERROR
|
|
150
|
+
});
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const deleteGroup = async (groupId, groupProps = [], requestOptions = {})=>{
|
|
155
|
+
try {
|
|
156
|
+
const queryVariables = {
|
|
157
|
+
groupId: {
|
|
158
|
+
type: 'ID!',
|
|
159
|
+
value: parseId(groupId)
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
const onSuccess = (data)=>{
|
|
163
|
+
const deleteGroup = data?.groups?.deleteGroup || {};
|
|
164
|
+
return flux.dispatch({
|
|
165
|
+
group: deleteGroup,
|
|
166
|
+
type: GROUP_CONSTANTS.REMOVE_ITEM_SUCCESS
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
return await appMutation(flux, 'deleteGroup', DATA_TYPE, queryVariables, [
|
|
170
|
+
'groupId',
|
|
171
|
+
...groupProps
|
|
172
|
+
], {
|
|
173
|
+
onSuccess
|
|
174
|
+
});
|
|
175
|
+
} catch (error) {
|
|
176
|
+
flux.dispatch({
|
|
177
|
+
error,
|
|
178
|
+
type: GROUP_CONSTANTS.REMOVE_ITEM_ERROR
|
|
179
|
+
});
|
|
180
|
+
throw error;
|
|
181
|
+
} finally{
|
|
182
|
+
await clearCachedRequest(flux, `group.itemById:${groupId}`);
|
|
183
|
+
await clearCachedRequest(flux, 'group.listByLatest');
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
const update = async (group, groupProps = [], requestOptions = {})=>{
|
|
187
|
+
try {
|
|
188
|
+
const queryVariables = {
|
|
189
|
+
group: {
|
|
190
|
+
type: 'GroupUpdateInput!',
|
|
191
|
+
value: groupBase.validator(group)
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const onSuccess = (data)=>{
|
|
195
|
+
const updateGroup = data?.groups?.updateGroup || {};
|
|
196
|
+
return flux.dispatch({
|
|
197
|
+
group: updateGroup,
|
|
198
|
+
type: GROUP_CONSTANTS.UPDATE_ITEM_SUCCESS
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
return await appMutation(flux, 'updateGroup', DATA_TYPE, queryVariables, [
|
|
202
|
+
'groupId',
|
|
203
|
+
...groupProps
|
|
204
|
+
], {
|
|
205
|
+
onSuccess
|
|
206
|
+
});
|
|
207
|
+
} catch (error) {
|
|
208
|
+
flux.dispatch({
|
|
209
|
+
error,
|
|
210
|
+
type: GROUP_CONSTANTS.UPDATE_ITEM_ERROR
|
|
211
|
+
});
|
|
212
|
+
throw error;
|
|
213
|
+
} finally{
|
|
214
|
+
await clearCachedRequest(flux, `group.itemById:${String(group?.groupId || '')}`);
|
|
215
|
+
await clearCachedRequest(flux, 'group.listByLatest');
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
return {
|
|
219
|
+
add,
|
|
220
|
+
itemById,
|
|
221
|
+
listByLatest,
|
|
222
|
+
delete: deleteGroup,
|
|
223
|
+
update,
|
|
224
|
+
updateGroupAdapter: groupBase.updateAdapter,
|
|
225
|
+
updateGroupAdapterOptions: groupBase.updateOptions
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9ncm91cEFjdGlvbnMvZ3JvdXBBY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgeyBwYXJzZUlkLCBwYXJzZU51bSB9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7IHZhbGlkYXRlR3JvdXBJbnB1dCB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2dyb3VwQWRhcHRlci9ncm91cEFkYXB0ZXIuanMnO1xuaW1wb3J0IHsgR1JPVVBfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3RvcmVzL2dyb3VwU3RvcmUuanMnO1xuaW1wb3J0IHsgYXBwTXV0YXRpb24sIGFwcFF1ZXJ5IH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLmpzJztcbmltcG9ydCB7IGNyZWF0ZUJhc2VBY3Rpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuaW1wb3J0IHsgY2xlYXJDYWNoZWRSZXF1ZXN0LCBnZXRDYWNoZWRSZXF1ZXN0LCBzZXRDYWNoZWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuaW1wb3J0IHR5cGUgeyBGbHV4RnJhbWV3b3JrIH0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzJztcbmltcG9ydCB0eXBlIHsgR3JvdXBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMvZ3JvdXBzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgQmFzZUFkYXB0ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ2dyb3Vwcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBBZGFwdGVyT3B0aW9ucyBleHRlbmRzIEJhc2VBZGFwdGVyT3B0aW9ucyB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBBY3Rpb25zT3B0aW9ucyB7XG4gIGdyb3VwQWRhcHRlcj86IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IEdyb3VwQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgZ3JvdXBBZGFwdGVyT3B0aW9ucz86IEdyb3VwQWRhcHRlck9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIEdyb3VwQXBpUmVzdWx0c1R5cGUgPSB7XG4gIGdyb3Vwczoge1xuICAgIGFkZEdyb3VwOiBHcm91cFR5cGU7XG4gICAgZ2V0R3JvdXA6IEdyb3VwVHlwZTtcbiAgICBnZXRHcm91cHNCeUxhdGVzdDogR3JvdXBUeXBlW107XG4gICAgZGVsZXRlR3JvdXA6IEdyb3VwVHlwZTtcbiAgICB1cGRhdGVHcm91cDogR3JvdXBUeXBlO1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEFjdGlvbnMge1xuICBhZGQ6IChncm91cERhdGE6IFBhcnRpYWw8R3JvdXBUeXBlPiwgZ3JvdXBQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPEdyb3VwVHlwZT47XG4gIGl0ZW1CeUlkOiAoZ3JvdXBJZDogc3RyaW5nLCBncm91cFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8R3JvdXBUeXBlPjtcbiAgbGlzdEJ5TGF0ZXN0OiAoZnJvbT86IG51bWJlciwgdG8/OiBudW1iZXIsIGdyb3VwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxHcm91cFR5cGVbXT47XG4gIGRlbGV0ZTogKGdyb3VwSWQ6IHN0cmluZywgZ3JvdXBQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPEdyb3VwVHlwZT47XG4gIHVwZGF0ZTogKGdyb3VwOiBQYXJ0aWFsPEdyb3VwVHlwZT4sIGdyb3VwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxHcm91cFR5cGU+O1xuICB1cGRhdGVHcm91cEFkYXB0ZXI6IChhZGFwdGVyOiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBHcm91cEFkYXB0ZXJPcHRpb25zKSA9PiBhbnkpID0+IHZvaWQ7XG4gIHVwZGF0ZUdyb3VwQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBHcm91cEFkYXB0ZXJPcHRpb25zKSA9PiB2b2lkO1xufVxuXG5jb25zdCBkZWZhdWx0R3JvdXBWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBHcm91cEFkYXB0ZXJPcHRpb25zKSA9PiB2YWxpZGF0ZUdyb3VwSW5wdXQoaW5wdXQpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlR3JvdXBBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogR3JvdXBBY3Rpb25zT3B0aW9uc1xuKTogR3JvdXBBY3Rpb25zID0+IHtcbiAgY29uc3QgZ3JvdXBCYXNlID0gY3JlYXRlQmFzZUFjdGlvbnMoZmx1eCwgZGVmYXVsdEdyb3VwVmFsaWRhdG9yLCB7XG4gICAgYWRhcHRlcjogb3B0aW9ucz8uZ3JvdXBBZGFwdGVyLFxuICAgIGFkYXB0ZXJPcHRpb25zOiBvcHRpb25zPy5ncm91cEFkYXB0ZXJPcHRpb25zXG4gIH0pO1xuXG4gIGNvbnN0IGFkZCA9IGFzeW5jIChcbiAgICBncm91cERhdGE6IFBhcnRpYWw8R3JvdXBUeXBlPixcbiAgICBncm91cFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8R3JvdXBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBncm91cDoge1xuICAgICAgICAgIHR5cGU6ICdHcm91cElucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGdyb3VwQmFzZS52YWxpZGF0b3IoZ3JvdXBEYXRhKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogR3JvdXBBcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBhZGRHcm91cCA9IGRhdGE/Lmdyb3Vwcz8uYWRkR3JvdXAgfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtncm91cDogYWRkR3JvdXAsIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248R3JvdXBUeXBlPihmbHV4LCAnYWRkR3JvdXAnLCBEQVRBX1RZUEUsIHF1ZXJ5VmFyaWFibGVzLCBbJ2dyb3VwSWQnLCAuLi5ncm91cFByb3BzXSwge29uU3VjY2Vzc30pO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBHUk9VUF9DT05TVEFOVFMuQUREX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ2dyb3VwLmxpc3RCeUxhdGVzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpdGVtQnlJZCA9IGFzeW5jIChcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgZ3JvdXBQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEdyb3VwVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PEdyb3VwVHlwZT4oZmx1eCwgYGdyb3VwLml0ZW1CeUlkOiR7Z3JvdXBJZH1gLCB7Z3JvdXBJZCwgZ3JvdXBQcm9wc30sIHJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBncm91cElkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoZ3JvdXBJZClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEdyb3VwQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBkYXRhPy5ncm91cHM/LmdldEdyb3VwIHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7Z3JvdXAsIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5HRVRfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxHcm91cFR5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnZ3JvdXAnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnZ3JvdXBJZCcsXG4gICAgICAgICAgJ2ltYWdlVXJsJyxcbiAgICAgICAgICAnaXNQcml2YXRlJyxcbiAgICAgICAgICAnbWVtYmVyQ291bnQnLFxuICAgICAgICAgICduYW1lJyxcbiAgICAgICAgICAnb3duZXJJZCcsXG4gICAgICAgICAgJ3NldHRpbmdzJyxcbiAgICAgICAgICAndGFncyB7bmFtZSwgdGFnSWR9JyxcbiAgICAgICAgICAndGh1bWJVcmwnLFxuICAgICAgICAgICd0eXBlJyxcbiAgICAgICAgICAuLi5ncm91cFByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCBgZ3JvdXAuaXRlbUJ5SWQ6JHtncm91cElkfWAsIHtncm91cElkLCBncm91cFByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxpc3RCeUxhdGVzdCA9IGFzeW5jIChcbiAgICBmcm9tOiBudW1iZXIgPSAwLFxuICAgIHRvOiBudW1iZXIgPSAwLFxuICAgIGdyb3VwUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxHcm91cFR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PEdyb3VwVHlwZVtdPihmbHV4LCAnZ3JvdXAubGlzdEJ5TGF0ZXN0Jywge2Zyb20sIHRvLCBncm91cFByb3BzfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0oZnJvbSlcbiAgICAgICAgfSxcbiAgICAgICAgdG86IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0odG8pXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBHcm91cEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3Vwc0J5TGF0ZXN0ID0gZGF0YT8uZ3JvdXBzPy5nZXRHcm91cHNCeUxhdGVzdCB8fCBbXTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe1xuICAgICAgICAgIGxpc3Q6IGdyb3Vwc0J5TGF0ZXN0LFxuICAgICAgICAgIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5HRVRfTElTVF9TVUNDRVNTXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8R3JvdXBUeXBlW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnZ3JvdXBzQnlMYXRlc3QnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnZ3JvdXBJZCcsXG4gICAgICAgICAgJ2ltYWdlVXJsJyxcbiAgICAgICAgICAnaXNQcml2YXRlJyxcbiAgICAgICAgICAnbWVtYmVyQ291bnQnLFxuICAgICAgICAgICduYW1lJyxcbiAgICAgICAgICAnb3duZXJJZCcsXG4gICAgICAgICAgJ3NldHRpbmdzJyxcbiAgICAgICAgICAndGFncyB7bmFtZSwgdGFnSWR9JyxcbiAgICAgICAgICAndGh1bWJVcmwnLFxuICAgICAgICAgICd0eXBlJyxcbiAgICAgICAgICAuLi5ncm91cFByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCAnZ3JvdXAubGlzdEJ5TGF0ZXN0Jywge2Zyb20sIHRvLCBncm91cFByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5HRVRfTElTVF9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRlbGV0ZUdyb3VwID0gYXN5bmMgKFxuICAgIGdyb3VwSWQ6IHN0cmluZyxcbiAgICBncm91cFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8R3JvdXBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBncm91cElkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoZ3JvdXBJZClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEdyb3VwQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgZGVsZXRlR3JvdXAgPSBkYXRhPy5ncm91cHM/LmRlbGV0ZUdyb3VwIHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7Z3JvdXA6IGRlbGV0ZUdyb3VwLCB0eXBlOiBHUk9VUF9DT05TVEFOVFMuUkVNT1ZFX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPEdyb3VwVHlwZT4oZmx1eCwgJ2RlbGV0ZUdyb3VwJywgREFUQV9UWVBFLCBxdWVyeVZhcmlhYmxlcywgWydncm91cElkJywgLi4uZ3JvdXBQcm9wc10sIHtvblN1Y2Nlc3N9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogR1JPVVBfQ09OU1RBTlRTLlJFTU9WRV9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBncm91cC5pdGVtQnlJZDoke2dyb3VwSWR9YCk7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ2dyb3VwLmxpc3RCeUxhdGVzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBhc3luYyAoXG4gICAgZ3JvdXA6IFBhcnRpYWw8R3JvdXBUeXBlPixcbiAgICBncm91cFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8R3JvdXBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBncm91cDoge1xuICAgICAgICAgIHR5cGU6ICdHcm91cFVwZGF0ZUlucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGdyb3VwQmFzZS52YWxpZGF0b3IoZ3JvdXApXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBHcm91cEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUdyb3VwID0gZGF0YT8uZ3JvdXBzPy51cGRhdGVHcm91cCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2dyb3VwOiB1cGRhdGVHcm91cCwgdHlwZTogR1JPVVBfQ09OU1RBTlRTLlVQREFURV9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxHcm91cFR5cGU+KGZsdXgsICd1cGRhdGVHcm91cCcsIERBVEFfVFlQRSwgcXVlcnlWYXJpYWJsZXMsIFsnZ3JvdXBJZCcsIC4uLmdyb3VwUHJvcHNdLCB7b25TdWNjZXNzfSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IEdST1VQX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgZ3JvdXAuaXRlbUJ5SWQ6JHtTdHJpbmcoZ3JvdXA/Lmdyb3VwSWQgfHwgJycpfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdncm91cC5saXN0QnlMYXRlc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhZGQsXG4gICAgaXRlbUJ5SWQsXG4gICAgbGlzdEJ5TGF0ZXN0LFxuICAgIGRlbGV0ZTogZGVsZXRlR3JvdXAsXG4gICAgdXBkYXRlLFxuICAgIHVwZGF0ZUdyb3VwQWRhcHRlcjogZ3JvdXBCYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlR3JvdXBBZGFwdGVyT3B0aW9uczogZ3JvdXBCYXNlLnVwZGF0ZU9wdGlvbnNcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VJZCIsInBhcnNlTnVtIiwidmFsaWRhdGVHcm91cElucHV0IiwiR1JPVVBfQ09OU1RBTlRTIiwiYXBwTXV0YXRpb24iLCJhcHBRdWVyeSIsImNyZWF0ZUJhc2VBY3Rpb25zIiwiY2xlYXJDYWNoZWRSZXF1ZXN0IiwiZ2V0Q2FjaGVkUmVxdWVzdCIsInNldENhY2hlZFJlcXVlc3QiLCJEQVRBX1RZUEUiLCJkZWZhdWx0R3JvdXBWYWxpZGF0b3IiLCJpbnB1dCIsIm9wdGlvbnMiLCJjcmVhdGVHcm91cEFjdGlvbnMiLCJmbHV4IiwiZ3JvdXBCYXNlIiwiYWRhcHRlciIsImdyb3VwQWRhcHRlciIsImFkYXB0ZXJPcHRpb25zIiwiZ3JvdXBBZGFwdGVyT3B0aW9ucyIsImFkZCIsImdyb3VwRGF0YSIsImdyb3VwUHJvcHMiLCJyZXF1ZXN0T3B0aW9ucyIsInF1ZXJ5VmFyaWFibGVzIiwiZ3JvdXAiLCJ0eXBlIiwidmFsdWUiLCJ2YWxpZGF0b3IiLCJvblN1Y2Nlc3MiLCJkYXRhIiwiYWRkR3JvdXAiLCJncm91cHMiLCJkaXNwYXRjaCIsIkFERF9JVEVNX1NVQ0NFU1MiLCJlcnJvciIsIkFERF9JVEVNX0VSUk9SIiwiaXRlbUJ5SWQiLCJncm91cElkIiwiY2FjaGVkUmVzdWx0IiwiZ2V0R3JvdXAiLCJHRVRfSVRFTV9TVUNDRVNTIiwicmVzdWx0IiwiR0VUX0lURU1fRVJST1IiLCJsaXN0QnlMYXRlc3QiLCJmcm9tIiwidG8iLCJncm91cHNCeUxhdGVzdCIsImdldEdyb3Vwc0J5TGF0ZXN0IiwibGlzdCIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImRlbGV0ZUdyb3VwIiwiUkVNT1ZFX0lURU1fU1VDQ0VTUyIsIlJFTU9WRV9JVEVNX0VSUk9SIiwidXBkYXRlIiwidXBkYXRlR3JvdXAiLCJVUERBVEVfSVRFTV9TVUNDRVNTIiwiVVBEQVRFX0lURU1fRVJST1IiLCJTdHJpbmciLCJkZWxldGUiLCJ1cGRhdGVHcm91cEFkYXB0ZXIiLCJ1cGRhdGVBZGFwdGVyIiwidXBkYXRlR3JvdXBBZGFwdGVyT3B0aW9ucyIsInVwZGF0ZU9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVNBLE9BQU8sRUFBRUMsUUFBUSxRQUFRLGVBQWU7QUFFakQsU0FBU0Msa0JBQWtCLFFBQVEsOENBQThDO0FBQ2pGLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsV0FBVyxFQUFFQyxRQUFRLFFBQVEscUJBQXFCO0FBQzNELFNBQVNDLGlCQUFpQixRQUFRLG1DQUFtQztBQUNyRSxTQUFTQyxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQUVDLGdCQUFn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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
-
import type { ImageType } from '../../adapters/imageAdapter/imageAdapter';
|
|
2
|
+
import type { ImageType } from '../../adapters/imageAdapter/imageAdapter.js';
|
|
3
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
3
4
|
export interface ImageAdapterOptions {
|
|
4
5
|
strict?: boolean;
|
|
5
6
|
allowPartial?: boolean;
|
|
@@ -14,20 +15,24 @@ export type ImageApiResultsType = {
|
|
|
14
15
|
addImage: ImageType;
|
|
15
16
|
deleteImage: ImageType;
|
|
16
17
|
image: ImageType;
|
|
18
|
+
getImageById: ImageType;
|
|
19
|
+
getImageListByItem: ImageType[];
|
|
20
|
+
imagesByPersonaReactions: ImageType[];
|
|
21
|
+
getImageListByReactions: ImageType[];
|
|
17
22
|
updateImage: ImageType;
|
|
18
23
|
uploadFileImages: ImageType[];
|
|
19
24
|
getImageCount: number;
|
|
20
|
-
getImagesByItem: ImageType[];
|
|
21
|
-
getImagesByReactions: ImageType[];
|
|
22
25
|
};
|
|
23
26
|
export interface ImageActions {
|
|
24
|
-
add: (image: Partial<ImageType>, type?: string) => Promise<ImageType>;
|
|
25
|
-
delete: (imageId: string, imageProps?: string[]) => Promise<ImageType>;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
add: (image: Partial<ImageType>, type?: string, requestOptions?: ActionRequestOptions) => Promise<ImageType>;
|
|
28
|
+
delete: (imageId: string, imageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ImageType>;
|
|
29
|
+
getImageById: (imageId: string, imageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ImageType>;
|
|
30
|
+
update: (image: Partial<ImageType>, type?: string, requestOptions?: ActionRequestOptions) => Promise<ImageType>;
|
|
31
|
+
upload: (imageFiles: File[], itemId: string, itemType?: string, requestOptions?: ActionRequestOptions) => Promise<ImageType[]>;
|
|
32
|
+
countByItem: (itemId: string, requestOptions?: ActionRequestOptions) => Promise<number>;
|
|
33
|
+
listByItem: (itemId: string, itemType?: string, from?: number, to?: number, imageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ImageType[]>;
|
|
34
|
+
listByPersonaReactions: (personaId: string, reactions: string[], from?: number, to?: number, imageProps?: string[], listKey?: string, requestOptions?: ActionRequestOptions) => Promise<ImageType[]>;
|
|
35
|
+
listByReactions: (reactions: string[], from?: number, to?: number, imageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ImageType[]>;
|
|
31
36
|
updateImageAdapter: (adapter: (input: unknown, options?: ImageAdapterOptions) => any) => void;
|
|
32
37
|
updateImageAdapterOptions: (options: ImageAdapterOptions) => void;
|
|
33
38
|
}
|
|
@@ -54,3 +59,4 @@ export interface ImageActions {
|
|
|
54
59
|
* });
|
|
55
60
|
*/
|
|
56
61
|
export declare const createImageActions: (flux: FluxFramework, options?: ImageActionsOptions) => ImageActions;
|
|
62
|
+
//# sourceMappingURL=imageActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageActions.d.ts","sourceRoot":"","sources":["../../../src/actions/imageActions/imageActions.ts"],"names":[],"mappings":"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"}
|