@soundx/services 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/cjs/album.d.ts +25 -0
  2. package/dist/cjs/album.js +98 -0
  3. package/dist/cjs/artist.d.ts +17 -0
  4. package/dist/cjs/artist.js +66 -0
  5. package/dist/cjs/auth.d.ts +15 -0
  6. package/dist/cjs/auth.js +38 -0
  7. package/dist/cjs/folder.d.ts +12 -0
  8. package/dist/cjs/folder.js +31 -0
  9. package/dist/cjs/import.d.ts +27 -0
  10. package/dist/cjs/import.js +42 -0
  11. package/dist/cjs/index.d.ts +13 -0
  12. package/dist/cjs/index.js +148 -0
  13. package/dist/cjs/models.d.ts +174 -0
  14. package/dist/cjs/models.js +11 -0
  15. package/dist/cjs/playlist.d.ts +9 -0
  16. package/dist/cjs/playlist.js +55 -0
  17. package/dist/cjs/request.d.ts +16 -0
  18. package/dist/cjs/request.js +33 -0
  19. package/dist/cjs/search-record.d.ts +8 -0
  20. package/dist/cjs/search-record.js +26 -0
  21. package/dist/cjs/search.d.ts +10 -0
  22. package/dist/cjs/search.js +47 -0
  23. package/dist/cjs/track.d.ts +21 -0
  24. package/dist/cjs/track.js +72 -0
  25. package/dist/cjs/user.d.ts +13 -0
  26. package/dist/cjs/user.js +115 -0
  27. package/dist/cjs/userAudiobookHistory.d.ts +6 -0
  28. package/dist/cjs/userAudiobookHistory.js +12 -0
  29. package/dist/esm/album.d.ts +25 -0
  30. package/dist/esm/album.js +80 -0
  31. package/dist/esm/artist.d.ts +17 -0
  32. package/dist/esm/artist.js +49 -0
  33. package/dist/esm/auth.d.ts +15 -0
  34. package/dist/esm/auth.js +48 -0
  35. package/dist/esm/folder.d.ts +12 -0
  36. package/dist/esm/folder.js +20 -0
  37. package/dist/esm/import.d.ts +27 -0
  38. package/dist/esm/import.js +33 -0
  39. package/dist/esm/index.d.ts +13 -0
  40. package/dist/esm/index.js +13 -0
  41. package/dist/esm/models.d.ts +174 -0
  42. package/dist/esm/models.js +7 -0
  43. package/dist/esm/playlist.d.ts +9 -0
  44. package/dist/esm/playlist.js +172 -0
  45. package/dist/esm/request.d.ts +16 -0
  46. package/dist/esm/request.js +45 -0
  47. package/dist/esm/search-record.d.ts +8 -0
  48. package/dist/esm/search-record.js +15 -0
  49. package/dist/esm/search.d.ts +10 -0
  50. package/dist/esm/search.js +70 -0
  51. package/dist/esm/track.d.ts +21 -0
  52. package/dist/esm/track.js +55 -0
  53. package/dist/esm/user.d.ts +13 -0
  54. package/dist/esm/user.js +100 -0
  55. package/dist/esm/userAudiobookHistory.d.ts +6 -0
  56. package/dist/esm/userAudiobookHistory.js +4 -0
  57. package/package.json +26 -0
@@ -0,0 +1,174 @@
1
+ export interface ISuccessResponse<T> {
2
+ code: number;
3
+ message: string;
4
+ data: T;
5
+ }
6
+ export declare enum TrackType {
7
+ MUSIC = "MUSIC",
8
+ AUDIOBOOK = "AUDIOBOOK"
9
+ }
10
+ export interface IErrorResponse {
11
+ code: number;
12
+ message: string;
13
+ }
14
+ export interface ITableData<T> {
15
+ pageSize: number;
16
+ current: number;
17
+ list: T;
18
+ total: number;
19
+ }
20
+ export interface ILoadMoreData<T> {
21
+ pageSize: number;
22
+ loadCount: number;
23
+ list: T[];
24
+ total: number;
25
+ hasMore: boolean;
26
+ }
27
+ export interface RecommendedItem {
28
+ title: string;
29
+ id: string;
30
+ items: Album[];
31
+ }
32
+ export interface TimelineItem {
33
+ id: string;
34
+ time: number;
35
+ items: (Album | Track)[];
36
+ }
37
+ export interface Track {
38
+ id: number;
39
+ name: string;
40
+ path: string;
41
+ artist: string;
42
+ artistEntity: Artist;
43
+ album: string;
44
+ albumEntity: Album;
45
+ cover: string | null;
46
+ duration: number | null;
47
+ lyrics: string | null;
48
+ index: number | null;
49
+ type: TrackType;
50
+ createdAt: string | Date;
51
+ artistId?: number;
52
+ albumId?: number;
53
+ folderId?: number;
54
+ likedByUsers?: UserTrackLike[];
55
+ listenedByUsers?: UserTrackHistory[];
56
+ likedAsAudiobookByUsers?: UserAudiobookLike[];
57
+ listenedAsAudiobookByUsers?: UserAudiobookHistory[];
58
+ playlists?: Playlist[];
59
+ progress?: number;
60
+ }
61
+ export interface Album {
62
+ id: number;
63
+ name: string;
64
+ artist: string;
65
+ cover: string | null;
66
+ year: string | null;
67
+ type: TrackType;
68
+ likedByUsers?: UserAlbumLike[];
69
+ listenedByUsers?: UserAlbumHistory[];
70
+ progress?: number;
71
+ resumeTrackId?: number | null;
72
+ resumeProgress?: number | null;
73
+ }
74
+ export interface Artist {
75
+ id: number;
76
+ name: string;
77
+ avatar: string | null;
78
+ type: TrackType;
79
+ bg_cover?: string | null;
80
+ description?: string | null;
81
+ }
82
+ export interface UserTrackLike {
83
+ id: number;
84
+ userId: number;
85
+ trackId: number;
86
+ createdAt: string | Date;
87
+ user?: User;
88
+ track?: Track;
89
+ }
90
+ export interface UserTrackHistory {
91
+ id: number;
92
+ userId: number;
93
+ trackId: number;
94
+ listenedAt: string | Date;
95
+ user?: User;
96
+ track?: Track;
97
+ }
98
+ export interface UserAlbumLike {
99
+ id: number;
100
+ userId: number;
101
+ albumId: number;
102
+ createdAt: string | Date;
103
+ user?: User;
104
+ album?: Album;
105
+ }
106
+ export interface UserAlbumHistory {
107
+ id: number;
108
+ userId: number;
109
+ albumId: number;
110
+ listenedAt: string | Date;
111
+ user?: User;
112
+ album?: Album;
113
+ }
114
+ export interface UserAudiobookLike {
115
+ id: number;
116
+ userId: number;
117
+ trackId: number;
118
+ createdAt: string | Date;
119
+ user?: User;
120
+ track?: Track;
121
+ }
122
+ export interface UserAudiobookHistory {
123
+ id: number;
124
+ userId: number;
125
+ trackId: number;
126
+ listenedAt: string | Date;
127
+ progress: number;
128
+ user?: User;
129
+ track?: Track;
130
+ }
131
+ export interface User {
132
+ id: number;
133
+ username: string;
134
+ password?: string;
135
+ is_admin: boolean;
136
+ likedTracks?: UserTrackLike[];
137
+ listenedTracks?: UserTrackHistory[];
138
+ likedAlbums?: UserAlbumLike[];
139
+ listenedAlbums?: UserAlbumHistory[];
140
+ likedAudiobooks?: UserAudiobookLike[];
141
+ listenedAudiobooks?: UserAudiobookHistory[];
142
+ playlists?: Playlist[];
143
+ }
144
+ export interface Playlist {
145
+ id: number;
146
+ name: string;
147
+ type: TrackType;
148
+ createdAt: string | Date;
149
+ updatedAt: string | Date;
150
+ userId: number;
151
+ user?: User;
152
+ tracks?: Track[];
153
+ _count?: {
154
+ tracks: number;
155
+ };
156
+ }
157
+ export interface Device {
158
+ id: number;
159
+ name: string;
160
+ userId: number;
161
+ isOnline: boolean;
162
+ lastSeen?: string | Date;
163
+ createdAt: Date;
164
+ updatedAt: Date;
165
+ }
166
+ export interface Folder {
167
+ id: number;
168
+ path: string;
169
+ name: string;
170
+ parentId: number | null;
171
+ type: TrackType;
172
+ children?: Folder[];
173
+ tracks?: Track[];
174
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TrackType = void 0;
7
+ let TrackType = exports.TrackType = /*#__PURE__*/function (TrackType) {
8
+ TrackType["MUSIC"] = "MUSIC";
9
+ TrackType["AUDIOBOOK"] = "AUDIOBOOK";
10
+ return TrackType;
11
+ }({}); // Prisma Models
@@ -0,0 +1,9 @@
1
+ import type { ISuccessResponse, Playlist } from "./models";
2
+ export declare const createPlaylist: (name: string, type: "MUSIC" | "AUDIOBOOK", userId: number) => Promise<ISuccessResponse<Playlist>>;
3
+ export declare const getPlaylists: (type?: "MUSIC" | "AUDIOBOOK", userId?: number) => Promise<ISuccessResponse<Playlist[]>>;
4
+ export declare const getPlaylistById: (id: number) => Promise<ISuccessResponse<Playlist>>;
5
+ export declare const updatePlaylist: (id: number, name: string) => Promise<ISuccessResponse<Playlist>>;
6
+ export declare const deletePlaylist: (id: number) => Promise<ISuccessResponse<boolean>>;
7
+ export declare const addTrackToPlaylist: (playlistId: number, trackId: number) => Promise<ISuccessResponse<boolean>>;
8
+ export declare const addTracksToPlaylist: (playlistId: number, trackIds: number[]) => Promise<ISuccessResponse<boolean>>;
9
+ export declare const removeTrackFromPlaylist: (playlistId: number, trackId: number) => Promise<ISuccessResponse<boolean>>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updatePlaylist = exports.removeTrackFromPlaylist = exports.getPlaylists = exports.getPlaylistById = exports.deletePlaylist = exports.createPlaylist = exports.addTracksToPlaylist = exports.addTrackToPlaylist = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const createPlaylist = async (name, type, userId) => {
10
+ return await _request.default.post("/playlists", {
11
+ name,
12
+ type,
13
+ userId
14
+ });
15
+ };
16
+ exports.createPlaylist = createPlaylist;
17
+ const getPlaylists = async (type, userId) => {
18
+ return await _request.default.get("/playlists", {
19
+ params: {
20
+ userId,
21
+ type
22
+ }
23
+ });
24
+ };
25
+ exports.getPlaylists = getPlaylists;
26
+ const getPlaylistById = async id => {
27
+ return await _request.default.get(`/playlists/${id}`);
28
+ };
29
+ exports.getPlaylistById = getPlaylistById;
30
+ const updatePlaylist = async (id, name) => {
31
+ return await _request.default.put(`/playlists/${id}`, {
32
+ name
33
+ });
34
+ };
35
+ exports.updatePlaylist = updatePlaylist;
36
+ const deletePlaylist = async id => {
37
+ return await _request.default.delete(`/playlists/${id}`);
38
+ };
39
+ exports.deletePlaylist = deletePlaylist;
40
+ const addTrackToPlaylist = async (playlistId, trackId) => {
41
+ return await _request.default.post(`/playlists/${playlistId}/tracks`, {
42
+ trackId
43
+ });
44
+ };
45
+ exports.addTrackToPlaylist = addTrackToPlaylist;
46
+ const addTracksToPlaylist = async (playlistId, trackIds) => {
47
+ return await _request.default.post(`/playlists/${playlistId}/tracks/batch`, {
48
+ trackIds
49
+ });
50
+ };
51
+ exports.addTracksToPlaylist = addTracksToPlaylist;
52
+ const removeTrackFromPlaylist = async (playlistId, trackId) => {
53
+ return await _request.default.delete(`/playlists/${playlistId}/tracks/${trackId}`);
54
+ };
55
+ exports.removeTrackFromPlaylist = removeTrackFromPlaylist;
@@ -0,0 +1,16 @@
1
+ import type { AxiosInstance } from "axios";
2
+ export declare const setRequestInstance: (instance: AxiosInstance) => void;
3
+ export declare const getRequestInstance: () => AxiosInstance;
4
+ export declare const request: {
5
+ get: <T = any, R = any, D = any>(url: string, config?: any) => Promise<R>;
6
+ delete: <T_1 = any, R_1 = any, D_1 = any>(url: string, config?: any) => Promise<R_1>;
7
+ head: <T_2 = any, R_2 = any, D_2 = any>(url: string, config?: any) => Promise<R_2>;
8
+ options: <T_3 = any, R_3 = any, D_3 = any>(url: string, config?: any) => Promise<R_3>;
9
+ post: <T_4 = any, R_4 = any, D_4 = any>(url: string, data?: D_4 | undefined, config?: any) => Promise<R_4>;
10
+ put: <T_5 = any, R_5 = any, D_5 = any>(url: string, data?: D_5 | undefined, config?: any) => Promise<R_5>;
11
+ patch: <T_6 = any, R_6 = any, D_6 = any>(url: string, data?: D_6 | undefined, config?: any) => Promise<R_6>;
12
+ postForm: <T_7 = any, R_7 = any, D_7 = any>(url: string, data?: D_7 | undefined, config?: any) => Promise<R_7>;
13
+ putForm: <T_8 = any, R_8 = any, D_8 = any>(url: string, data?: D_8 | undefined, config?: any) => Promise<R_8>;
14
+ patchForm: <T_9 = any, R_9 = any, D_9 = any>(url: string, data?: D_9 | undefined, config?: any) => Promise<R_9>;
15
+ };
16
+ export default request;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setRequestInstance = exports.request = exports.getRequestInstance = exports.default = void 0;
7
+ let requestInstance = null;
8
+ const setRequestInstance = instance => {
9
+ requestInstance = instance;
10
+ };
11
+ exports.setRequestInstance = setRequestInstance;
12
+ const getRequestInstance = () => {
13
+ if (!requestInstance) {
14
+ throw new Error("Request instance not initialized. Please call setRequestInstance first.");
15
+ }
16
+ return requestInstance;
17
+ };
18
+
19
+ // Facade to match typical axios usage: request.get, request.post etc.
20
+ exports.getRequestInstance = getRequestInstance;
21
+ const request = exports.request = {
22
+ get: (url, config) => getRequestInstance().get(url, config),
23
+ delete: (url, config) => getRequestInstance().delete(url, config),
24
+ head: (url, config) => getRequestInstance().head(url, config),
25
+ options: (url, config) => getRequestInstance().options(url, config),
26
+ post: (url, data, config) => getRequestInstance().post(url, data, config),
27
+ put: (url, data, config) => getRequestInstance().put(url, data, config),
28
+ patch: (url, data, config) => getRequestInstance().patch(url, data, config),
29
+ postForm: (url, data, config) => getRequestInstance().postForm(url, data, config),
30
+ putForm: (url, data, config) => getRequestInstance().putForm(url, data, config),
31
+ patchForm: (url, data, config) => getRequestInstance().patchForm(url, data, config)
32
+ };
33
+ var _default = exports.default = request;
@@ -0,0 +1,8 @@
1
+ import type { ISuccessResponse } from "./models";
2
+ export declare const addSearchRecord: (keyword: string) => Promise<ISuccessResponse<any>>;
3
+ export declare const getSearchHistory: () => Promise<ISuccessResponse<string[]>>;
4
+ export declare const getHotSearches: () => Promise<ISuccessResponse<{
5
+ keyword: string;
6
+ count: number;
7
+ }[]>>;
8
+ export declare const clearSearchHistory: () => Promise<ISuccessResponse<any>>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSearchHistory = exports.getHotSearches = exports.clearSearchHistory = exports.addSearchRecord = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const addSearchRecord = keyword => {
10
+ return _request.default.post("/search-record", {
11
+ keyword
12
+ });
13
+ };
14
+ exports.addSearchRecord = addSearchRecord;
15
+ const getSearchHistory = () => {
16
+ return _request.default.get("/search-record/history");
17
+ };
18
+ exports.getSearchHistory = getSearchHistory;
19
+ const getHotSearches = () => {
20
+ return _request.default.get("/search-record/hot");
21
+ };
22
+ exports.getHotSearches = getHotSearches;
23
+ const clearSearchHistory = () => {
24
+ return _request.default.delete("/search-record/history");
25
+ };
26
+ exports.clearSearchHistory = clearSearchHistory;
@@ -0,0 +1,10 @@
1
+ import type { Album, Artist, ISuccessResponse, Track } from "./models";
2
+ export interface SearchResults {
3
+ tracks: Track[];
4
+ artists: Artist[];
5
+ albums: Album[];
6
+ }
7
+ export declare const searchTracks: (keyword: string, type?: string, limit?: number) => Promise<ISuccessResponse<Track[]>>;
8
+ export declare const searchArtists: (keyword: string, type?: string, limit?: number) => Promise<ISuccessResponse<Artist[]>>;
9
+ export declare const searchAlbums: (keyword: string, type?: string, limit?: number) => Promise<ISuccessResponse<Album[]>>;
10
+ export declare const searchAll: (keyword: string, type?: string) => Promise<SearchResults>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.searchTracks = exports.searchArtists = exports.searchAll = exports.searchAlbums = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const searchTracks = (keyword, type, limit = 10) => {
10
+ return _request.default.get("/track/search", {
11
+ params: {
12
+ keyword,
13
+ type,
14
+ limit
15
+ }
16
+ });
17
+ };
18
+ exports.searchTracks = searchTracks;
19
+ const searchArtists = (keyword, type, limit = 10) => {
20
+ return _request.default.get("/artist/search", {
21
+ params: {
22
+ keyword,
23
+ type,
24
+ limit
25
+ }
26
+ });
27
+ };
28
+ exports.searchArtists = searchArtists;
29
+ const searchAlbums = (keyword, type, limit = 10) => {
30
+ return _request.default.get("/album/search", {
31
+ params: {
32
+ keyword,
33
+ type,
34
+ limit
35
+ }
36
+ });
37
+ };
38
+ exports.searchAlbums = searchAlbums;
39
+ const searchAll = async (keyword, type) => {
40
+ const [tracksRes, artistsRes, albumsRes] = await Promise.all([searchTracks(keyword, type, 5), searchArtists(keyword, type, 5), searchAlbums(keyword, type, 5)]);
41
+ return {
42
+ tracks: tracksRes.code === 200 ? tracksRes.data : [],
43
+ artists: artistsRes.code === 200 ? artistsRes.data : [],
44
+ albums: albumsRes.code === 200 ? albumsRes.data : []
45
+ };
46
+ };
47
+ exports.searchAll = searchAll;
@@ -0,0 +1,21 @@
1
+ import type { ILoadMoreData, ISuccessResponse, ITableData, Track } from "./models";
2
+ export declare const getTrackList: () => Promise<ISuccessResponse<Track[]>>;
3
+ export declare const getTrackTableList: (params: {
4
+ pageSize: number;
5
+ current: number;
6
+ }) => Promise<ISuccessResponse<ITableData<Track[]>>>;
7
+ export declare const loadMoreTrack: (params: {
8
+ pageSize: number;
9
+ loadCount: number;
10
+ }) => Promise<ISuccessResponse<ILoadMoreData<Track[]>>>;
11
+ export declare const createTrack: (data: Omit<Track, "id">) => Promise<ISuccessResponse<Track>>;
12
+ export declare const updateTrack: (id: number, data: Partial<Track>) => Promise<ISuccessResponse<Track>>;
13
+ export declare const deleteTrack: (id: number, deleteAlbum?: boolean) => Promise<ISuccessResponse<boolean>>;
14
+ export declare const getDeletionImpact: (id: number) => Promise<ISuccessResponse<{
15
+ isLastTrackInAlbum: boolean;
16
+ albumName: string | null;
17
+ }>>;
18
+ export declare const batchCreateTracks: (data: Omit<Track, "id">[]) => Promise<ISuccessResponse<boolean>>;
19
+ export declare const batchDeleteTracks: (ids: number[]) => Promise<ISuccessResponse<boolean>>;
20
+ export declare const getLatestTracks: (type?: string, random?: boolean, pageSize?: number) => Promise<ISuccessResponse<Track[]>>;
21
+ export declare const getTracksByArtist: (artist: string) => Promise<ISuccessResponse<Track[]>>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateTrack = exports.loadMoreTrack = exports.getTracksByArtist = exports.getTrackTableList = exports.getTrackList = exports.getLatestTracks = exports.getDeletionImpact = exports.deleteTrack = exports.createTrack = exports.batchDeleteTracks = exports.batchCreateTracks = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const getTrackList = () => {
10
+ return _request.default.get("/track/list");
11
+ };
12
+ exports.getTrackList = getTrackList;
13
+ const getTrackTableList = params => {
14
+ return _request.default.get("/table-list", {
15
+ params
16
+ });
17
+ };
18
+ exports.getTrackTableList = getTrackTableList;
19
+ const loadMoreTrack = params => {
20
+ return _request.default.get("/load-more", {
21
+ params
22
+ });
23
+ };
24
+ exports.loadMoreTrack = loadMoreTrack;
25
+ const createTrack = data => {
26
+ return _request.default.post("/track", data);
27
+ };
28
+ exports.createTrack = createTrack;
29
+ const updateTrack = (id, data) => {
30
+ return _request.default.put(`/track/${id}`, data);
31
+ };
32
+ exports.updateTrack = updateTrack;
33
+ const deleteTrack = (id, deleteAlbum = false) => {
34
+ return _request.default.delete(`/track/${id}`, {
35
+ params: {
36
+ deleteAlbum
37
+ }
38
+ });
39
+ };
40
+ exports.deleteTrack = deleteTrack;
41
+ const getDeletionImpact = id => {
42
+ return _request.default.get(`/track/${id}/deletion-impact`);
43
+ };
44
+ exports.getDeletionImpact = getDeletionImpact;
45
+ const batchCreateTracks = data => {
46
+ return _request.default.post("/track/batch-create", data);
47
+ };
48
+ exports.batchCreateTracks = batchCreateTracks;
49
+ const batchDeleteTracks = ids => {
50
+ return _request.default.delete("/track/batch-delete", {
51
+ data: ids
52
+ });
53
+ };
54
+ exports.batchDeleteTracks = batchDeleteTracks;
55
+ const getLatestTracks = (type, random, pageSize) => {
56
+ return _request.default.get("/track/latest", {
57
+ params: {
58
+ type,
59
+ random,
60
+ pageSize
61
+ }
62
+ });
63
+ };
64
+ exports.getLatestTracks = getLatestTracks;
65
+ const getTracksByArtist = artist => {
66
+ return _request.default.get("/track/artist", {
67
+ params: {
68
+ artist
69
+ }
70
+ });
71
+ };
72
+ exports.getTracksByArtist = getTracksByArtist;
@@ -0,0 +1,13 @@
1
+ import { type ILoadMoreData, type ISuccessResponse } from "./models";
2
+ export declare const addToHistory: (trackId: number, userId: number, progress?: number, deviceName?: string, deviceId?: number, isSyncMode?: boolean) => Promise<ISuccessResponse<any>>;
3
+ export declare const getLatestHistory: (userId: number) => Promise<ISuccessResponse<any>>;
4
+ export declare const addAlbumToHistory: (albumId: number, userId: number) => Promise<ISuccessResponse<any>>;
5
+ export declare const getAlbumHistory: (userId: number, loadCount: number, pageSize: number, type?: string) => Promise<ISuccessResponse<ILoadMoreData<any>>>;
6
+ export declare const toggleLike: (trackId: number, userId: number) => Promise<ISuccessResponse<any>>;
7
+ export declare const toggleUnLike: (trackId: number, userId: number) => Promise<ISuccessResponse<any>>;
8
+ export declare const toggleAlbumLike: (albumId: number, userId: number) => Promise<ISuccessResponse<any>>;
9
+ export declare const unlikeAlbum: (albumId: number, userId: number) => Promise<ISuccessResponse<any>>;
10
+ export declare const getFavoriteAlbums: (userId: number, loadCount: number, pageSize: number, type?: string) => Promise<ISuccessResponse<ILoadMoreData<any>>>;
11
+ export declare const getFavoriteTracks: (userId: number, loadCount: number, pageSize: number, type?: string) => Promise<ISuccessResponse<ILoadMoreData<any>>>;
12
+ export declare const getTrackHistory: (userId: number, loadCount: number, pageSize: number, type?: string) => Promise<ISuccessResponse<ILoadMoreData<any>>>;
13
+ export declare const getUserList: () => Promise<ISuccessResponse<any[]>>;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.unlikeAlbum = exports.toggleUnLike = exports.toggleLike = exports.toggleAlbumLike = exports.getUserList = exports.getTrackHistory = exports.getLatestHistory = exports.getFavoriteTracks = exports.getFavoriteAlbums = exports.getAlbumHistory = exports.addToHistory = exports.addAlbumToHistory = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const addToHistory = (trackId, userId, progress = 0, deviceName, deviceId, isSyncMode) => {
10
+ return _request.default.post("/user-track-histories", {
11
+ trackId,
12
+ userId,
13
+ progress,
14
+ deviceName,
15
+ deviceId,
16
+ isSyncMode
17
+ });
18
+ };
19
+ exports.addToHistory = addToHistory;
20
+ const getLatestHistory = userId => {
21
+ return _request.default.get("/user-track-histories/latest", {
22
+ params: {
23
+ userId
24
+ }
25
+ });
26
+ };
27
+ exports.getLatestHistory = getLatestHistory;
28
+ const addAlbumToHistory = (albumId, userId) => {
29
+ return _request.default.post("/user-album-histories", {
30
+ albumId,
31
+ userId
32
+ });
33
+ };
34
+ exports.addAlbumToHistory = addAlbumToHistory;
35
+ const getAlbumHistory = (userId, loadCount, pageSize, type) => {
36
+ return _request.default.get("/user-album-histories/load-more", {
37
+ params: {
38
+ pageSize,
39
+ loadCount,
40
+ userId,
41
+ type
42
+ }
43
+ });
44
+ };
45
+ exports.getAlbumHistory = getAlbumHistory;
46
+ const toggleLike = (trackId, userId) => {
47
+ return _request.default.post("/user-track-likes/create", {
48
+ trackId,
49
+ userId
50
+ });
51
+ };
52
+ exports.toggleLike = toggleLike;
53
+ const toggleUnLike = (trackId, userId) => {
54
+ return _request.default.delete("/user-track-likes/unlike", {
55
+ params: {
56
+ trackId,
57
+ userId
58
+ }
59
+ });
60
+ };
61
+ exports.toggleUnLike = toggleUnLike;
62
+ const toggleAlbumLike = (albumId, userId) => {
63
+ return _request.default.post("/user-album-likes", {
64
+ albumId,
65
+ userId
66
+ });
67
+ };
68
+ exports.toggleAlbumLike = toggleAlbumLike;
69
+ const unlikeAlbum = (albumId, userId) => {
70
+ return _request.default.delete("/user-album-likes/unlike", {
71
+ params: {
72
+ albumId,
73
+ userId
74
+ }
75
+ });
76
+ };
77
+ exports.unlikeAlbum = unlikeAlbum;
78
+ const getFavoriteAlbums = (userId, loadCount, pageSize, type) => {
79
+ return _request.default.get("/user-album-likes/load-more", {
80
+ params: {
81
+ pageSize,
82
+ loadCount,
83
+ userId,
84
+ type
85
+ }
86
+ });
87
+ };
88
+ exports.getFavoriteAlbums = getFavoriteAlbums;
89
+ const getFavoriteTracks = (userId, loadCount, pageSize, type) => {
90
+ return _request.default.get("/user-track-likes/load-more", {
91
+ params: {
92
+ pageSize,
93
+ loadCount: loadCount,
94
+ userId,
95
+ lastId: loadCount,
96
+ type
97
+ }
98
+ });
99
+ };
100
+ exports.getFavoriteTracks = getFavoriteTracks;
101
+ const getTrackHistory = (userId, loadCount, pageSize, type) => {
102
+ return _request.default.get("/user-track-histories/load-more", {
103
+ params: {
104
+ pageSize,
105
+ loadCount: loadCount,
106
+ userId,
107
+ type
108
+ }
109
+ });
110
+ };
111
+ exports.getTrackHistory = getTrackHistory;
112
+ const getUserList = () => {
113
+ return _request.default.get("/user/list");
114
+ };
115
+ exports.getUserList = getUserList;
@@ -0,0 +1,6 @@
1
+ import type { ISuccessResponse } from "./models";
2
+ export declare const reportAudiobookProgress: (data: {
3
+ userId: number;
4
+ trackId: number;
5
+ progress: number;
6
+ }) => Promise<ISuccessResponse<any>>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.reportAudiobookProgress = void 0;
7
+ var _request = _interopRequireDefault(require("./request"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const reportAudiobookProgress = data => {
10
+ return _request.default.post("/user-audiobook-histories", data);
11
+ };
12
+ exports.reportAudiobookProgress = reportAudiobookProgress;
@@ -0,0 +1,25 @@
1
+ import type { Album, ILoadMoreData, ISuccessResponse, ITableData } from "./models";
2
+ export declare const getAlbumList: () => Promise<ISuccessResponse<Album[]>>;
3
+ export declare const getAlbumTableList: (params: {
4
+ pageSize: number;
5
+ current: number;
6
+ }) => Promise<ISuccessResponse<ITableData<Album[]>>>;
7
+ export declare const loadMoreAlbum: (params: {
8
+ pageSize: number;
9
+ loadCount: number;
10
+ type?: string;
11
+ }) => Promise<ISuccessResponse<ILoadMoreData<Album>>>;
12
+ export declare const createAlbum: (data: Omit<Album, "id">) => Promise<ISuccessResponse<Album>>;
13
+ export declare const updateAlbum: (id: number, data: Partial<Album>) => Promise<ISuccessResponse<Album>>;
14
+ export declare const deleteAlbum: (id: number) => Promise<ISuccessResponse<boolean>>;
15
+ export declare const batchCreateAlbums: (data: Omit<Album, "id">[]) => Promise<ISuccessResponse<boolean>>;
16
+ export declare const batchDeleteAlbums: (ids: number[]) => Promise<ISuccessResponse<boolean>>;
17
+ export declare const getRecommendedAlbums: (type?: string, random?: boolean, pageSize?: number) => Promise<ISuccessResponse<Album[]>>;
18
+ export declare const getRecentAlbums: (type?: string, random?: boolean, pageSize?: number) => Promise<ISuccessResponse<Album[]>>;
19
+ export declare const getAlbumById: (id: number) => Promise<ISuccessResponse<Album>>;
20
+ export declare const getAlbumTracks: (id: number, pageSize: number, skip: number, sort?: "asc" | "desc", keyword?: string, userId?: number) => Promise<ISuccessResponse<{
21
+ list: any[];
22
+ total: number;
23
+ }>>;
24
+ export declare const getAlbumsByArtist: (artist: string) => Promise<ISuccessResponse<Album[]>>;
25
+ export declare const getCollaborativeAlbumsByArtist: (artist: string) => Promise<ISuccessResponse<Album[]>>;