ertonglianxibiao/utils/api.js

141 lines
2.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* API 接口定义
* 所有业务 API 接口的统一管理
*/
const { get, post } = require('./request.js')
/**
* ===============================
* 首页相关接口
* ===============================
*/
/**
* 获取首页数据(分类 + 最新工作表)
*/
function getHomeData() {
return get('/api/home')
}
/**
* 获取所有分类
*/
function getCategories() {
return get('/api/categories')
}
/**
* ===============================
* 工作表相关接口
* ===============================
*/
/**
* 获取工作表列表
* @param {Object} params
* @param {Number} params.category_id - 分类ID可选
* @param {Number} params.page - 页码
* @param {Number} params.pageSize - 每页数量
* @param {String} params.keyword - 搜索关键词
*/
function getWorksheets(params = {}) {
return get('/api/worksheets', params)
}
/**
* 获取工作表详情
* @param {Number} id - 工作表ID
*/
function getWorksheetDetail(id) {
return get(`/api/worksheets/${id}`)
}
/**
* 记录下载次数
* @param {Number} id - 工作表ID
*/
function recordDownload(id) {
return post(`/api/worksheets/${id}/download`)
}
/**
* 搜索工作表
* @param {Object} params
* @param {String} params.keyword - 搜索关键词
* @param {Number} params.page - 页码
* @param {Number} params.pageSize - 每页数量
*/
function searchWorksheets(params = {}) {
return get('/api/search', params)
}
/**
* ===============================
* 用户相关接口
* ===============================
*/
/**
* 用户登录/注册
* @param {String} openid - 微信 openid
* @param {String} nickname - 昵称
* @param {String} avatar - 头像URL
* @param {Number} inviter_id - 邀请人ID可选
*/
function userLogin(openid, nickname, avatar, inviter_id) {
return post('/api/user/login', { openid, nickname, avatar, inviter_id })
}
/**
* 获取用户信息
* @param {Number} user_id - 用户ID
*/
function getUserInfo(user_id) {
return get('/api/user/info', { user_id })
}
/**
* 检查积分是否足够下载
* @param {Number} user_id - 用户ID
*/
function checkPoints(user_id) {
return get('/api/user/check-points', { user_id })
}
/**
* 扣除积分(下载时调用)
* @param {Number} user_id - 用户ID
* @param {Number} worksheet_id - 工作表ID
*/
function deductPoints(user_id, worksheet_id) {
return post('/api/user/deduct-points', { user_id, worksheet_id })
}
/**
* 获取积分记录
* @param {Number} user_id - 用户ID
* @param {Number} page - 页码
* @param {Number} pageSize - 每页数量
*/
function getPointsLog(user_id, page = 1, pageSize = 20) {
return get('/api/user/points-log', { user_id, page, pageSize })
}
module.exports = {
// 首页
getHomeData,
getCategories,
// 工作表
getWorksheets,
getWorksheetDetail,
recordDownload,
searchWorksheets,
// 用户
userLogin,
getUserInfo,
checkPoints,
deductPoints,
getPointsLog
}