272 lines
6.1 KiB
TypeScript
Raw Normal View History

2022-03-13 14:40:38 +08:00
import request from '@/utils/request'
export enum UserApiNames {
FETCH_USER_ACCOUNT = 'fetchUserAccount',
2022-04-05 02:30:07 +08:00
FETCH_USER_LIKED_TRACKS_IDS = 'fetchUserLikedTracksIDs',
2022-03-13 14:40:38 +08:00
FETCH_USER_PLAYLISTS = 'fetchUserPlaylists',
}
2020-10-10 19:54:44 +08:00
/**
*
* 说明 : 登录后调用此接口 , id,
* - uid : 用户 id
* @param {number} uid
*/
2022-03-17 14:45:04 +08:00
export function userDetail(uid: number) {
2020-10-10 19:54:44 +08:00
return request({
2021-04-26 15:29:47 +08:00
url: '/user/detail',
method: 'get',
2020-10-10 19:54:44 +08:00
params: {
uid,
2021-04-26 15:29:47 +08:00
timestamp: new Date().getTime(),
2020-10-10 19:54:44 +08:00
},
2022-03-13 14:40:38 +08:00
})
2020-10-10 19:54:44 +08:00
}
2022-03-13 14:40:38 +08:00
// 获取账号详情
export interface fetchUserAccountResponse {
code: number
account: {
anonimousUser: boolean
ban: number
baoyueVersion: number
createTime: number
donateVersion: number
id: number
paidFee: boolean
status: number
tokenVersion: number
type: number
userName: string
vipType: number
whitelistAuthority: number
} | null
profile: {
userId: number
userType: number
nickname: string
avatarImgId: number
avatarUrl: string
backgroundImgId: number
backgroundUrl: string
signature: string
createTime: number
userName: string
accountType: number
shortUserName: string
birthday: number
authority: number
gender: number
accountStatus: number
province: number
city: number
authStatus: number
description: string | null
detailDescription: string | null
defaultAvatar: boolean
expertTags: [] | null
experts: [] | null
djStatus: number
locationStatus: number
vipType: number
followed: boolean
mutual: boolean
authenticated: boolean
lastLoginTime: number
lastLoginIP: string
remarkName: string | null
viptypeVersion: number
authenticationTypes: number
avatarDetail: string | null
anchor: boolean
} | null
}
export function fetchUserAccount(): Promise<fetchUserAccountResponse> {
2021-03-06 18:48:53 +08:00
return request({
2021-04-26 15:29:47 +08:00
url: '/user/account',
method: 'get',
2021-03-06 18:48:53 +08:00
params: {
timestamp: new Date().getTime(),
},
2022-03-13 14:40:38 +08:00
})
2021-03-06 18:48:53 +08:00
}
2022-03-13 14:40:38 +08:00
// 获取用户歌单
export interface FetchUserPlaylistsParams {
uid: number
offset: number
limit?: number // default 30
}
2022-03-19 17:03:29 +08:00
export interface FetchUserPlaylistsResponse {
2022-03-13 14:40:38 +08:00
code: number
more: false
version: string
playlist: Playlist[]
}
export function fetchUserPlaylists(
params: FetchUserPlaylistsParams
): Promise<FetchUserPlaylistsResponse> {
2020-10-10 19:54:44 +08:00
return request({
2021-04-26 15:29:47 +08:00
url: '/user/playlist',
method: 'get',
2020-10-10 19:54:44 +08:00
params,
2022-03-13 14:40:38 +08:00
})
2020-10-10 19:54:44 +08:00
}
2022-04-05 02:30:07 +08:00
export interface FetchUserLikedTracksIDsParams {
2022-03-13 14:40:38 +08:00
uid: number
}
2022-04-05 02:30:07 +08:00
export interface FetchUserLikedTracksIDsResponse {
2022-03-13 14:40:38 +08:00
code: number
checkPoint: number
ids: number[]
}
2022-04-05 02:30:07 +08:00
export function fetchUserLikedTracksIDs(
params: FetchUserLikedTracksIDsParams
): Promise<FetchUserLikedTracksIDsResponse> {
2020-10-10 19:54:44 +08:00
return request({
2021-04-26 15:29:47 +08:00
url: '/likelist',
method: 'get',
params: {
2022-03-13 14:40:38 +08:00
uid: params.uid,
timestamp: new Date().getTime(),
},
2022-03-13 14:40:38 +08:00
})
2020-10-10 19:54:44 +08:00
}
2020-10-25 14:12:31 +08:00
/**
*
* 说明 : 调用此接口可签到获取积分
* - type: , 0, 0 ,1 web/PC
* @param {number} type
*/
2020-10-25 14:12:31 +08:00
export function dailySignin(type = 0) {
return request({
2021-04-26 15:29:47 +08:00
url: '/daily_signin',
method: 'post',
2020-10-25 14:12:31 +08:00
params: {
type,
2020-10-30 14:58:02 +08:00
timestamp: new Date().getTime(),
2020-10-25 14:12:31 +08:00
},
2022-03-13 14:40:38 +08:00
})
2020-10-25 14:12:31 +08:00
}
/**
*
* 说明 : 调用此接口可获取到用户收藏的专辑
* - limit : 返回数量 , 25
* - offset : 偏移数量 , :( -1)*25, 25 limit , 0
* @param {Object} params
* @param {number} params.limit
* @param {number=} params.offset
*/
2022-03-17 14:45:04 +08:00
// export function likedAlbums(params) {
// return request({
// url: '/album/sublist',
// method: 'get',
// params: {
// limit: params.limit,
// timestamp: new Date().getTime(),
// },
// })
// }
/**
*
* 说明 : 调用此接口可获取到用户收藏的歌手
*/
2022-03-17 14:45:04 +08:00
// export function likedArtists(params) {
// return request({
// url: '/artist/sublist',
// method: 'get',
// params: {
// limit: params.limit,
// timestamp: new Date().getTime(),
// },
// })
// }
/**
* MV
* 说明 : 调用此接口可获取到用户收藏的MV
*/
2022-03-17 14:45:04 +08:00
// export function likedMVs(params) {
// return request({
// url: '/mv/sublist',
// method: 'get',
// params: {
// limit: params.limit,
// timestamp: new Date().getTime(),
// },
// })
// }
2021-06-05 21:14:06 +08:00
/**
*
*/
2022-03-17 14:45:04 +08:00
// export function uploadSong(file) {
// let formData = new FormData()
// formData.append('songFile', file)
// return request({
// url: '/cloud',
// method: 'post',
// params: {
// timestamp: new Date().getTime(),
// },
// data: formData,
// headers: {
// 'Content-Type': 'multipart/form-data',
// },
// timeout: 200000,
// }).catch(error => {
// alert(`上传失败,Error: ${error}`)
// })
// }
2021-06-05 21:14:06 +08:00
/**
*
* 说明 : 登录后调用此接口 , , url, /song/url url
* - limit : 返回数量 , 200
* - offset : 偏移数量 , :( -1)*200, 200 limit , 0
* @param {Object} params
* @param {number} params.limit
* @param {number=} params.offset
*/
2022-03-17 14:45:04 +08:00
// export function cloudDisk(params = {}) {
// params.timestamp = new Date().getTime()
// return request({
// url: '/user/cloud',
// method: 'get',
// params,
// })
// }
2021-06-05 21:14:06 +08:00
/**
*
*/
2022-03-17 14:45:04 +08:00
// export function cloudDiskTrackDetail(id) {
// return request({
// url: '/user/cloud/detail',
// method: 'get',
// params: {
// timestamp: new Date().getTime(),
// id,
// },
// })
// }
2021-06-05 21:14:06 +08:00
/**
*
* @param {Array} id
*/
2022-03-17 14:45:04 +08:00
// export function cloudDiskTrackDelete(id) {
// return request({
// url: '/user/cloud/del',
// method: 'get',
// params: {
// timestamp: new Date().getTime(),
// id,
// },
// })
// }