@amityco/ts-sdk 7.9.3-3043b851.0 → 7.9.3-9d4caef6.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/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/channel.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js +2 -6
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/api/unmuteChannel.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js +20 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/internalApi/getMembership.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts +8 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js +58 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/observers/getMembership.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsBot.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/loginAsVisitor.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/utils/setVisitorClientToken.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js +8 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/channelLinkedObject.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/@types/domains/channel.d.ts +1 -0
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/channelRepository/api/unmuteChannel.d.ts +0 -14
- package/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -1
- package/dist/channelRepository/internalApi/getMembership.d.ts +16 -0
- package/dist/channelRepository/internalApi/getMembership.d.ts.map +1 -0
- package/dist/channelRepository/observers/getMembership.d.ts +8 -0
- package/dist/channelRepository/observers/getMembership.d.ts.map +1 -0
- package/dist/client/api/loginAsBot.d.ts.map +1 -1
- package/dist/client/api/loginAsVisitor.d.ts.map +1 -1
- package/dist/client/utils/setVisitorClientToken.d.ts.map +1 -1
- package/dist/index.cjs.js +75 -6
- package/dist/index.esm.js +75 -6
- package/dist/index.umd.js +1 -1
- package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/domains/channel.ts +4 -0
- package/src/channelRepository/api/unmuteChannel.ts +2 -4
- package/src/channelRepository/internalApi/getMembership.ts +45 -0
- package/src/channelRepository/observers/getMembership.ts +89 -0
- package/src/client/api/loginAsBot.ts +0 -1
- package/src/client/api/loginAsVisitor.ts +0 -2
- package/src/client/utils/setVisitorClientToken.ts +0 -1
- package/src/utils/linkedObject/channelLinkedObject.ts +11 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAmC1E,CAAC"}
|
package/package.json
CHANGED
|
@@ -103,6 +103,10 @@ declare global {
|
|
|
103
103
|
myMembership: (
|
|
104
104
|
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
105
105
|
) => Amity.Unsubscriber;
|
|
106
|
+
getMembership: (
|
|
107
|
+
userId: Amity.User['userId'],
|
|
108
|
+
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
109
|
+
) => Amity.Unsubscriber;
|
|
106
110
|
};
|
|
107
111
|
|
|
108
112
|
type QueryChannels = {
|
|
@@ -3,7 +3,6 @@ import { getActiveClient } from '~/client/api';
|
|
|
3
3
|
/* begin_public_function
|
|
4
4
|
id: channel.unmute
|
|
5
5
|
*/
|
|
6
|
-
const CHANNEL_UNMUTE_PERIOD = 0;
|
|
7
6
|
/**
|
|
8
7
|
* ```js
|
|
9
8
|
* import { ChannelRepository } from '@amityco/ts-sdk'
|
|
@@ -18,15 +17,14 @@ const CHANNEL_UNMUTE_PERIOD = 0;
|
|
|
18
17
|
* @category Channel API
|
|
19
18
|
* @async
|
|
20
19
|
*/
|
|
20
|
+
const CHANNEL_UNMUTE_PERIOD = 0; // Setting mute period as 0 is the same as unmuting the channel
|
|
21
|
+
|
|
21
22
|
export const unmuteChannel = async (channelId: Amity.Channel['channelId']): Promise<boolean> => {
|
|
22
23
|
const client = getActiveClient();
|
|
23
24
|
client.log('channel/unmuteChannel', channelId);
|
|
24
25
|
|
|
25
26
|
const { data } = await client.http.put<{ success: boolean }>(
|
|
26
27
|
`/api/v2/channel/${encodeURIComponent(channelId)}/mute`,
|
|
27
|
-
/*
|
|
28
|
-
* Setting mute period as 0 is the same as unmuting the channel
|
|
29
|
-
*/
|
|
30
28
|
{ mutePeriod: CHANNEL_UNMUTE_PERIOD },
|
|
31
29
|
);
|
|
32
30
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ASCApiError } from '~/core/errors';
|
|
2
|
+
import { pullFromCache } from '~/cache/api/pullFromCache';
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* get membership of user in a channel from cache
|
|
8
|
+
*
|
|
9
|
+
* @returns the {@link Amity.Membership<'channel'>} objects
|
|
10
|
+
*
|
|
11
|
+
* @category Channel API
|
|
12
|
+
* @async
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
type GetMembershipParams = {
|
|
16
|
+
channelId: string;
|
|
17
|
+
userId: Amity.User['userId'];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getMembership = ({
|
|
21
|
+
channelId,
|
|
22
|
+
userId,
|
|
23
|
+
}: GetMembershipParams): Amity.Cached<Amity.Membership<'channel'>> => {
|
|
24
|
+
const client = getActiveClient();
|
|
25
|
+
client.log('channel/getMembership.locally');
|
|
26
|
+
|
|
27
|
+
const cacheChannelUser = pullFromCache<Amity.Membership<'channel'>>([
|
|
28
|
+
'channelUsers',
|
|
29
|
+
'get',
|
|
30
|
+
`${channelId}#${userId}`,
|
|
31
|
+
]);
|
|
32
|
+
|
|
33
|
+
if (!cacheChannelUser) {
|
|
34
|
+
throw new ASCApiError(
|
|
35
|
+
'Item not found!',
|
|
36
|
+
Amity.ServerError.ITEM_NOT_FOUND,
|
|
37
|
+
Amity.ErrorLevel.ERROR,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
data: cacheChannelUser.data,
|
|
43
|
+
cachedAt: cacheChannelUser.cachedAt,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { getMembership as _getMembership } from '../internalApi/getMembership';
|
|
2
|
+
import { ASCApiError } from '~/core/errors';
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
|
+
import { isEqual } from '~/utils/isEqual';
|
|
5
|
+
import { createQuery, runQuery } from '~/core/query';
|
|
6
|
+
import {
|
|
7
|
+
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
8
|
+
UNSYNCED_OBJECT_CACHED_AT_VALUE,
|
|
9
|
+
} from '~/utils/constants';
|
|
10
|
+
import { channelMemberLinkedObject } from '~/utils/linkedObject/channelMemberLinkedObject';
|
|
11
|
+
import { onChannelMemberBanned, onChannelMemberUnbanned } from '../events';
|
|
12
|
+
import { onChannelSetUserMuted } from '../events/onChannelSetUserMuted';
|
|
13
|
+
|
|
14
|
+
type GetMembership = {
|
|
15
|
+
channelId: string;
|
|
16
|
+
userId: Amity.User['userId'];
|
|
17
|
+
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const getMembership = ({
|
|
21
|
+
channelId,
|
|
22
|
+
userId,
|
|
23
|
+
callback,
|
|
24
|
+
}: GetMembership): Amity.Unsubscriber => {
|
|
25
|
+
const { log, cache } = getActiveClient();
|
|
26
|
+
|
|
27
|
+
if (!cache) {
|
|
28
|
+
console.log('This observable object need the cache data!');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const timestamp = Date.now();
|
|
32
|
+
log(`liveMembership(tmpid: ${timestamp}) > listen`);
|
|
33
|
+
|
|
34
|
+
const disposers: Amity.Unsubscriber[] = [];
|
|
35
|
+
|
|
36
|
+
let isUnsyncedModel = false;
|
|
37
|
+
|
|
38
|
+
let model: Amity.Membership<'channel'> | undefined;
|
|
39
|
+
|
|
40
|
+
const dispatcher = (data: Amity.LiveObject<Amity.Membership<'channel'> | undefined>) => {
|
|
41
|
+
callback({ ...data, data: data.data ? channelMemberLinkedObject(data.data) : data.data });
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const realtimeRouter = (_: Amity.StaticInternalChannel, __: Amity.RawMembership<'channel'>) => {
|
|
45
|
+
const { data } = _getMembership({ channelId, userId });
|
|
46
|
+
|
|
47
|
+
if (isEqual(model, data)) return;
|
|
48
|
+
|
|
49
|
+
dispatcher({ loading: false, data });
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const onFetch = () => {
|
|
53
|
+
const query = createQuery(async () => _getMembership({ channelId, userId }));
|
|
54
|
+
|
|
55
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
56
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
57
|
+
dispatcher({
|
|
58
|
+
data,
|
|
59
|
+
origin,
|
|
60
|
+
loading: false,
|
|
61
|
+
error: new ASCApiError(
|
|
62
|
+
UNSYNCED_OBJECT_CACHED_AT_MESSAGE,
|
|
63
|
+
Amity.ClientError.DISALOOW_UNSYNCED_OBJECT,
|
|
64
|
+
Amity.ErrorLevel.ERROR,
|
|
65
|
+
),
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
isUnsyncedModel = true;
|
|
69
|
+
disposers.forEach(fn => fn());
|
|
70
|
+
} else if (!isUnsyncedModel) {
|
|
71
|
+
dispatcher({ loading, data, origin, error });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (error) {
|
|
75
|
+
disposers.forEach(fn => fn());
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
disposers.push(onChannelMemberBanned(realtimeRouter));
|
|
81
|
+
disposers.push(onChannelMemberUnbanned(realtimeRouter));
|
|
82
|
+
disposers.push(onChannelSetUserMuted(realtimeRouter));
|
|
83
|
+
|
|
84
|
+
onFetch();
|
|
85
|
+
|
|
86
|
+
return () => {
|
|
87
|
+
disposers.forEach(fn => fn());
|
|
88
|
+
};
|
|
89
|
+
};
|
|
@@ -14,7 +14,6 @@ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
|
|
|
14
14
|
|
|
15
15
|
import SessionWatcher from '../utils/SessionWatcher';
|
|
16
16
|
import { setBotClientToken } from '../utils/setBotClientToken';
|
|
17
|
-
import { setCurrentUserType } from './getCurrentUserType';
|
|
18
17
|
import { setCurrentUser } from '../utils/setCurrentUser';
|
|
19
18
|
|
|
20
19
|
/*
|
|
@@ -6,7 +6,6 @@ import { logout } from './logout';
|
|
|
6
6
|
|
|
7
7
|
import { getActiveClient } from './activeClient';
|
|
8
8
|
import { terminateClient } from './terminateClient';
|
|
9
|
-
import { setActiveUser } from './activeUser';
|
|
10
9
|
|
|
11
10
|
import { onTokenExpired } from '../events/onTokenExpired';
|
|
12
11
|
import { onTokenTerminated } from '../events/onTokenTerminated';
|
|
@@ -14,7 +13,6 @@ import { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';
|
|
|
14
13
|
|
|
15
14
|
import SessionWatcher from '../utils/SessionWatcher';
|
|
16
15
|
import { setVisitorClientToken } from '../utils/setVisitorClientToken';
|
|
17
|
-
import { setCurrentUserType } from './getCurrentUserType';
|
|
18
16
|
import { setCurrentUser } from '../utils/setCurrentUser';
|
|
19
17
|
|
|
20
18
|
/*
|
|
@@ -3,6 +3,7 @@ import { shallowClone } from '../shallowClone';
|
|
|
3
3
|
import { queryCache } from '~/cache/api';
|
|
4
4
|
import { channelMemberLinkedObject } from './channelMemberLinkedObject';
|
|
5
5
|
import { getMyMembership } from '~/channelRepository/observers/getMyMembership';
|
|
6
|
+
import { getMembership } from '~/channelRepository/observers/getMembership';
|
|
6
7
|
|
|
7
8
|
export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {
|
|
8
9
|
let previewMembers: Amity.Membership<'channel'>[] = [];
|
|
@@ -28,5 +29,15 @@ export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Chann
|
|
|
28
29
|
previewMembers,
|
|
29
30
|
myMembership: (callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>) =>
|
|
30
31
|
getMyMembership(channel.channelId, callback),
|
|
32
|
+
getMembership: (
|
|
33
|
+
userId: Amity.User['userId'],
|
|
34
|
+
callback: Amity.LiveObjectCallback<Amity.Membership<'channel'> | undefined>,
|
|
35
|
+
) => {
|
|
36
|
+
getMembership({
|
|
37
|
+
channelId: channel.channelId,
|
|
38
|
+
userId,
|
|
39
|
+
callback,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
31
42
|
});
|
|
32
43
|
};
|