qs_xinchun2026_h5/api/api.js

87 lines
2.2 KiB
JavaScript
Raw 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 函数都从此文件导入
*/
import { post, get } from './request.js'
/**
* 保存用户信息
* @param {Object} data - 用户数据
* @param {string} data.name - 用户姓名
* @param {string} data.phone - 用户手机号码
* @param {string} data.address - 用户地址
* @param {string} data.msg - 用户留言
* @param {string} data.page_visit_uuid - 页面访问UUID
* @returns {Promise}
*/
export const saveUserInfo = (data) => {
return post('/api/user-info', data)
}
/**
* 生成对联海报
* @param {Object} data - 请求数据
* @param {string} data.title - 两个汉字,用于生成对联(如"新春"
* @param {string} data.page_visit_uuid - 页面访问UUID用于关联页面访问记录
* @returns {Promise} - 返回包含 share_url, poster_id, image_url 的 Promise
*/
export const generateCoupletPoster = (data) => {
return post('/api/couplets', data)
}
/**
* 记录页面访问
* @param {Object} data - 访问数据
* @param {string} data.page - 页面标识
* @param {string} data.source - 访问来源
* @param {Object} data.extra - 额外数据
* @returns {Promise} - 返回包含uuid和scenes数据的Promise
*/
export const recordPageVisit = (data = {}) => {
const defaultData = {
page: 'index',
timestamp: Date.now(),
...data
}
return post('/api/page-visit', defaultData)
}
/**
* 获取场景列表
* @returns {Promise} - 返回场景列表数据
*/
export const getScenes = () => {
return get('/api/scenes')
}
/**
* 获取单个场景详情
* @param {number} id - 场景ID
* @returns {Promise} - 返回场景详情数据
*/
export const getSceneById = (id) => {
return get(`/api/scenes/${id}`)
}
/**
* 记录用户交互
* @param {Object} data - 交互数据
* @param {string} data.page_visit_uuid - 页面访问UUID
* @param {string} data.scene_id - 场景ID
* @param {string} data.interaction_type - 交互类型 (click 或 video_play)
* @returns {Promise}
*/
export const recordInteraction = (data) => {
return post('/api/interactions', data)
}
export default {
saveUserInfo,
generateCoupletPoster,
recordPageVisit,
getScenes,
getSceneById,
recordInteraction
}