@amityco/ts-sdk 7.9.2-5367a1e.0 → 7.9.2-9906a74f.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/content.d.ts +11 -2
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/file.d.ts +3 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/file.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/file.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/file.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/uploadAudio.d.ts +17 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/uploadAudio.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/uploadAudio.js +47 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/uploadAudio.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createAudioPost.d.ts +30 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createAudioPost.d.ts.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createAudioPost.js +43 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createAudioPost.js.map +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/index.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.js +7 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/postTypePredicate.d.ts +1 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/postTypePredicate.d.ts.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/postTypePredicate.js +6 -0
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/postTypePredicate.js.map +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/tests/dummy/comment.d.ts +1 -1
- package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
- package/dist/@types/domains/content.d.ts +11 -2
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/file.d.ts +3 -1
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +1 -0
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/fileRepository/api/index.d.ts +1 -0
- package/dist/fileRepository/api/index.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadAudio.d.ts +17 -0
- package/dist/fileRepository/api/uploadAudio.d.ts.map +1 -0
- package/dist/index.cjs.js +98 -1
- package/dist/index.esm.js +98 -1
- package/dist/index.umd.js +2 -2
- package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -1
- package/dist/postRepository/api/createAudioPost.d.ts +30 -0
- package/dist/postRepository/api/createAudioPost.d.ts.map +1 -0
- package/dist/postRepository/api/index.d.ts +1 -0
- package/dist/postRepository/api/index.d.ts.map +1 -1
- package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
- package/dist/utils/postTypePredicate.d.ts +1 -0
- package/dist/utils/postTypePredicate.d.ts.map +1 -1
- package/dist/utils/tests/dummy/comment.d.ts +1 -1
- package/package.json +1 -1
- package/src/@types/domains/content.ts +11 -0
- package/src/@types/domains/file.ts +5 -0
- package/src/@types/domains/post.ts +1 -0
- package/src/fileRepository/api/index.ts +1 -0
- package/src/fileRepository/api/uploadAudio.ts +61 -0
- package/src/postRepository/api/createAudioPost.ts +60 -0
- package/src/postRepository/api/index.ts +1 -0
- package/src/utils/linkedObject/postLinkedObject.ts +7 -0
- package/src/utils/postTypePredicate.ts +9 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -3,7 +3,7 @@ export declare const getSubChannelMessagePreviewWithUser: (subChannel: Amity.Sub
|
|
|
3
3
|
user: Amity.InternalUser | undefined;
|
|
4
4
|
messagePreviewId: string;
|
|
5
5
|
subChannelName: string;
|
|
6
|
-
data?: string | Record<string, unknown> | Amity.ContentDataText | Amity.ContentDataFile | Amity.ContentDataImage | Amity.ContentDataVideo | Amity.ContentDataPoll | Amity.ContentDataStream | Amity.ContentDataClip | undefined;
|
|
6
|
+
data?: string | Record<string, unknown> | Amity.ContentDataText | Amity.ContentDataFile | Amity.ContentDataImage | Amity.ContentDataVideo | Amity.ContentDataAudio | Amity.ContentDataPoll | Amity.ContentDataStream | Amity.ContentDataClip | undefined;
|
|
7
7
|
dataType?: any;
|
|
8
8
|
channelId: string;
|
|
9
9
|
subChannelId: string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ```js
|
|
3
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
4
|
+
* const created = await PostRepository.createAudioPost({
|
|
5
|
+
* targetType: 'user',
|
|
6
|
+
* targetId: 'foobar',
|
|
7
|
+
* data: { text: 'Audio Post', title: 'Audio Post Title' },
|
|
8
|
+
* attachments: [{ type: 'audio', fileId: 'fileId123'}]
|
|
9
|
+
* }))
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Creates an {@link Amity.Post}
|
|
13
|
+
*
|
|
14
|
+
* @param bundle The data necessary to create a new {@link Amity.Post}
|
|
15
|
+
* @returns The newly created {@link Amity.Post}
|
|
16
|
+
*
|
|
17
|
+
* @category Post API
|
|
18
|
+
* @async
|
|
19
|
+
*/
|
|
20
|
+
export declare const createAudioPost: <T extends string = "audio">(bundle: Pick<Amity.Post<T>, "targetId" | "targetType"> & Partial<Pick<Amity.Post<T>, "tags" | "metadata" | "mentionees" | "hashtags">> & {
|
|
21
|
+
data: {
|
|
22
|
+
text?: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
};
|
|
25
|
+
attachments: {
|
|
26
|
+
type: T;
|
|
27
|
+
fileId: Amity.File['fileId'];
|
|
28
|
+
}[];
|
|
29
|
+
}) => Promise<Amity.Cached<Amity.Post>>;
|
|
30
|
+
//# sourceMappingURL=createAudioPost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAudioPost.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/createAudioPost.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe;UAGhB;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;;;gBAGS,UAAU,CAAC,QAAQ,CAAC;;MAGjC,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAkBlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/postLinkedObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/postLinkedObject.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gBAAgB,SAAU,MAAM,YAAY,KAAG,MAAM,IA8FjE,CAAC"}
|
|
@@ -4,4 +4,5 @@ export declare function isAmityVideoPost(post: Amity.InternalPost): post is Amit
|
|
|
4
4
|
export declare function isAmityLivestreamPost(post: Amity.InternalPost): post is Amity.Post<'liveStream'>;
|
|
5
5
|
export declare function isAmityPollPost(post: Amity.InternalPost): post is Amity.Post<'poll'>;
|
|
6
6
|
export declare function isAmityClipPost(post: Amity.InternalPost): post is Amity.Post<'clip'>;
|
|
7
|
+
export declare function isAmityAudioPost(post: Amity.InternalPost): post is Amity.Post<'audio'>;
|
|
7
8
|
//# sourceMappingURL=postTypePredicate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postTypePredicate.d.ts","sourceRoot":"","sources":["../../src/utils/postTypePredicate.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAOtF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAQtF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAOhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF"}
|
|
1
|
+
{"version":3,"file":"postTypePredicate.d.ts","sourceRoot":"","sources":["../../src/utils/postTypePredicate.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAOtF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAQtF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAOhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAOtF"}
|
|
@@ -23,7 +23,7 @@ export declare const generateComment: (params?: Partial<Amity.InternalComment>)
|
|
|
23
23
|
referenceType: Amity.CommentReferenceType;
|
|
24
24
|
dataType?: any;
|
|
25
25
|
dataTypes?: any[] | undefined;
|
|
26
|
-
data?: string | Record<string, unknown> | Amity.ContentDataText | Amity.ContentDataFile | Amity.ContentDataImage | Amity.ContentDataVideo | Amity.ContentDataPoll | Amity.ContentDataStream | Amity.ContentDataClip | undefined;
|
|
26
|
+
data?: string | Record<string, unknown> | Amity.ContentDataText | Amity.ContentDataFile | Amity.ContentDataImage | Amity.ContentDataVideo | Amity.ContentDataAudio | Amity.ContentDataPoll | Amity.ContentDataStream | Amity.ContentDataClip | undefined;
|
|
27
27
|
metadata?: Record<string, any> | undefined;
|
|
28
28
|
flagCount: number;
|
|
29
29
|
hashFlag: {
|
package/package.json
CHANGED
|
@@ -33,6 +33,7 @@ declare global {
|
|
|
33
33
|
| 'json'
|
|
34
34
|
| 'liveStream'
|
|
35
35
|
| 'clip'
|
|
36
|
+
| 'audio'
|
|
36
37
|
| string;
|
|
37
38
|
|
|
38
39
|
type ContentFeedType = ValueOf<typeof ContentFeedType>;
|
|
@@ -71,6 +72,14 @@ declare global {
|
|
|
71
72
|
displayMode?: Amity.ClipDisplayMode;
|
|
72
73
|
};
|
|
73
74
|
|
|
75
|
+
type ContentDataAudio = {
|
|
76
|
+
fileId: Amity.File<'audio'>['fileId'];
|
|
77
|
+
fileURL: URL;
|
|
78
|
+
accessType: Amity.FileAccessType;
|
|
79
|
+
altText?: string;
|
|
80
|
+
attributes: { [key: string]: any };
|
|
81
|
+
};
|
|
82
|
+
|
|
74
83
|
type ContentDataPoll = {
|
|
75
84
|
pollId: Amity.Poll['pollId'];
|
|
76
85
|
};
|
|
@@ -87,6 +96,8 @@ declare global {
|
|
|
87
96
|
? ContentDataImage
|
|
88
97
|
: T extends 'video'
|
|
89
98
|
? ContentDataVideo
|
|
99
|
+
: T extends 'audio'
|
|
100
|
+
? ContentDataAudio
|
|
90
101
|
: T extends 'poll'
|
|
91
102
|
? ContentDataPoll
|
|
92
103
|
: T extends 'liveStream'
|
|
@@ -3,6 +3,7 @@ export const FileType = Object.freeze({
|
|
|
3
3
|
IMAGE: 'image',
|
|
4
4
|
VIDEO: 'video',
|
|
5
5
|
CLIP: 'clip',
|
|
6
|
+
AUDIO: 'audio',
|
|
6
7
|
});
|
|
7
8
|
|
|
8
9
|
export const VideoResolution = Object.freeze({
|
|
@@ -58,6 +59,8 @@ declare global {
|
|
|
58
59
|
|
|
59
60
|
type ClipMetadata = Record<string, never>;
|
|
60
61
|
|
|
62
|
+
type AudioMetadata = Record<string, never>;
|
|
63
|
+
|
|
61
64
|
type MetadataFor<T extends FileType> = T extends 'file'
|
|
62
65
|
? FileMetadata
|
|
63
66
|
: T extends 'image'
|
|
@@ -66,6 +69,8 @@ declare global {
|
|
|
66
69
|
? VideoMetadata
|
|
67
70
|
: T extends 'clip'
|
|
68
71
|
? ClipMetadata
|
|
72
|
+
: T extends 'audio'
|
|
73
|
+
? AudioMetadata
|
|
69
74
|
: never;
|
|
70
75
|
|
|
71
76
|
type File<T extends FileType = any> = Amity.FilePayload<T>;
|
|
@@ -88,6 +88,7 @@ declare global {
|
|
|
88
88
|
getPollInfo: () => Amity.Poll | undefined;
|
|
89
89
|
getLivestreamInfo: () => Amity.Stream | undefined;
|
|
90
90
|
getClipInfo: () => Amity.File<'clip'> | undefined;
|
|
91
|
+
getAudioInfo: () => Amity.File<'audio'> | undefined;
|
|
91
92
|
};
|
|
92
93
|
|
|
93
94
|
type Post<T extends PostContentType = any> = Amity.InternalPost<T> & Amity.PostLinkObject;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
|
+
import GlobalFileAccessType from '~/client/utils/GlobalFileAccessType';
|
|
4
|
+
|
|
5
|
+
/* begin_public_function
|
|
6
|
+
id: file.upload.audio
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* ```js
|
|
10
|
+
* import { FileRepository } from '@amityco/ts-sdk'
|
|
11
|
+
* const uploaded = await FileRepository.uploadAudio(formData, onProgress)
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Creates an {@link Amity.File<'audio'>}
|
|
15
|
+
*
|
|
16
|
+
* @param formData The data necessary to create a new {@link Amity.File<'audio'>}
|
|
17
|
+
* @param onProgress The callback to track the upload progress
|
|
18
|
+
* @returns The newly created {@link Amity.File<'audio'>}
|
|
19
|
+
*
|
|
20
|
+
* @category File API
|
|
21
|
+
* @async
|
|
22
|
+
*/
|
|
23
|
+
export const uploadAudio = async (
|
|
24
|
+
formData: FormData,
|
|
25
|
+
onProgress?: (percent: number) => void,
|
|
26
|
+
): Promise<Amity.Cached<Amity.File<'audio'>[]>> => {
|
|
27
|
+
const client = getActiveClient();
|
|
28
|
+
client.log('file/uploadAudio', formData);
|
|
29
|
+
|
|
30
|
+
const file = formData.get('file') as File;
|
|
31
|
+
|
|
32
|
+
if (!file) throw new Error('The formData object must have a `file` key with audio file.');
|
|
33
|
+
|
|
34
|
+
const accessType = GlobalFileAccessType.getInstance().getFileAccessType();
|
|
35
|
+
|
|
36
|
+
formData.append('accessType', accessType);
|
|
37
|
+
|
|
38
|
+
formData.append('preferredFilename', file.name);
|
|
39
|
+
|
|
40
|
+
const headers = { 'content-type': 'multipart/form-data' };
|
|
41
|
+
|
|
42
|
+
const { data } = await client.http.post<Amity.CreateFilePayload<'audio'>>(
|
|
43
|
+
'/api/v4/audios',
|
|
44
|
+
formData,
|
|
45
|
+
{
|
|
46
|
+
headers,
|
|
47
|
+
onUploadProgress({ loaded, total = 100 }) {
|
|
48
|
+
onProgress?.(Math.round((loaded * 100) / total));
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
const cachedAt = client.cache && Date.now();
|
|
54
|
+
if (client.cache) ingestInCache({ files: data }, { cachedAt });
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
data,
|
|
58
|
+
cachedAt,
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/* end_public_function */
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { fireEvent } from '~/core/events';
|
|
2
|
+
import { postLinkedObject } from '~/utils/linkedObject/postLinkedObject';
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
|
+
import { preparePostPayload } from '../utils/payload';
|
|
6
|
+
|
|
7
|
+
/* begin_public_function
|
|
8
|
+
id: post.create.audio_post
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* ```js
|
|
12
|
+
* import { PostRepository } from '@amityco/ts-sdk'
|
|
13
|
+
* const created = await PostRepository.createAudioPost({
|
|
14
|
+
* targetType: 'user',
|
|
15
|
+
* targetId: 'foobar',
|
|
16
|
+
* data: { text: 'Audio Post', title: 'Audio Post Title' },
|
|
17
|
+
* attachments: [{ type: 'audio', fileId: 'fileId123'}]
|
|
18
|
+
* }))
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Creates an {@link Amity.Post}
|
|
22
|
+
*
|
|
23
|
+
* @param bundle The data necessary to create a new {@link Amity.Post}
|
|
24
|
+
* @returns The newly created {@link Amity.Post}
|
|
25
|
+
*
|
|
26
|
+
* @category Post API
|
|
27
|
+
* @async
|
|
28
|
+
*/
|
|
29
|
+
export const createAudioPost = async <T extends Amity.PostContentType = 'audio'>(
|
|
30
|
+
bundle: Pick<Amity.Post<T>, 'targetType' | 'targetId'> &
|
|
31
|
+
Partial<Pick<Amity.Post<T>, 'metadata' | 'mentionees' | 'tags' | 'hashtags'>> & {
|
|
32
|
+
data: {
|
|
33
|
+
text?: string;
|
|
34
|
+
title?: string;
|
|
35
|
+
};
|
|
36
|
+
attachments: {
|
|
37
|
+
type: T;
|
|
38
|
+
fileId: Amity.File['fileId'];
|
|
39
|
+
}[];
|
|
40
|
+
},
|
|
41
|
+
): Promise<Amity.Cached<Amity.Post>> => {
|
|
42
|
+
const client = getActiveClient();
|
|
43
|
+
client.log('post/createAudioPost', bundle);
|
|
44
|
+
|
|
45
|
+
const { data: payload } = await client.http.post<Amity.PostPayload>('/api/v4/posts', bundle);
|
|
46
|
+
|
|
47
|
+
fireEvent('post.created', payload);
|
|
48
|
+
|
|
49
|
+
const data = preparePostPayload(payload);
|
|
50
|
+
|
|
51
|
+
const cachedAt = client.cache && Date.now();
|
|
52
|
+
|
|
53
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
data: postLinkedObject(data?.posts[0]),
|
|
57
|
+
cachedAt,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/* end_public_function */
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
isAmityPollPost,
|
|
10
10
|
isAmityVideoPost,
|
|
11
11
|
isAmityClipPost,
|
|
12
|
+
isAmityAudioPost,
|
|
12
13
|
} from '../postTypePredicate';
|
|
13
14
|
import { shallowClone } from '../shallowClone';
|
|
14
15
|
import { streamLinkedObject } from './streamLinkedObject';
|
|
@@ -101,5 +102,11 @@ export const postLinkedObject = (post: Amity.InternalPost): Amity.Post => {
|
|
|
101
102
|
? pullFromCache<Amity.File<'clip'>>(['file', 'get', post?.data?.fileId])?.data
|
|
102
103
|
: undefined;
|
|
103
104
|
},
|
|
105
|
+
|
|
106
|
+
getAudioInfo(): Amity.File<'audio'> | undefined {
|
|
107
|
+
return isAmityAudioPost(post)
|
|
108
|
+
? pullFromCache<Amity.File<'audio'>>(['file', 'get', post?.data?.fileId])?.data
|
|
109
|
+
: undefined;
|
|
110
|
+
},
|
|
104
111
|
});
|
|
105
112
|
};
|
|
@@ -52,3 +52,12 @@ export function isAmityClipPost(post: Amity.InternalPost): post is Amity.Post<'c
|
|
|
52
52
|
post.dataType === 'clip'
|
|
53
53
|
);
|
|
54
54
|
}
|
|
55
|
+
|
|
56
|
+
export function isAmityAudioPost(post: Amity.InternalPost): post is Amity.Post<'audio'> {
|
|
57
|
+
return !!(
|
|
58
|
+
post.data &&
|
|
59
|
+
typeof post.data !== 'string' &&
|
|
60
|
+
'fileId' in post.data &&
|
|
61
|
+
post.dataType === 'audio'
|
|
62
|
+
);
|
|
63
|
+
}
|