map_activity.js 4.11 KB
import { fn, fetch } from '@/api/fn'

const Api = {
  Checkin: '/srv/?a=map_activity&t=checkin',
  Detail: '/srv/?a=map_activity&t=detail',
  IsChecked: '/srv/?a=map_activity&t=is_checked',
  List: '/srv/?a=map_activity&t=list',
  Poster: '/srv/?a=map_activity&t=poster',
  SavePosterBackground: '/srv/?a=map_activity&t=save_poster_background',
}

/**
 * @description 打卡
 * @remark
 * @param {Object} params 请求参数
 * @param {string} params.activity_id (可选) 活动ID
 * @param {string} params.detail_id (可选) 打卡点ID
 * @param {string} params.openid (可选)
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: any;
 * }>}
 */
export const checkinAPI = params => fn(fetch.post(Api.Checkin, params))

/**
 * @description 地图活动详情
 * @remark 
 * @param {Object} params 请求参数
 * @param {string} params.id (可选) 活动ID
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
    url: string; // 地图网址
    id: string; // 活动ID
    cover: string; // 封面图
    tittle: string; // 标题
    begin_date: string; // 开始时间
    end_date: string; // 结束时间
    is_ended: boolean; // 活动是否已经结束
    is_begin: boolean; // 活动是否开始
    first_checkin_points: integer; // 首次打卡获得积分
    required_checkin_count: integer; // 需要打卡几次,才能完成活动
    complete_points: integer; // 完成活动获得多少积分
    discount_title: string; // 打卡点底部优惠标题
 *   };
 * }>}
 */
export const detailAPI = params => fn(fetch.get(Api.Detail, params))

/**
 * @description 是否已经打卡
 * @remark 
 * @param {Object} params 请求参数
 * @param {string} params.detail_id (可选) 打卡点ID
 * @param {string} params.openid (可选) 
 * @param {string} params.activity_id (可选) 活动ID
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
    is_checked: boolean; // 是否已经打卡
 *   };
 * }>}
 */
export const isCheckedAPI = params => fn(fetch.get(Api.IsChecked, params))

/**
 * @description 地图活动列表
 * @remark 
 * @param {Object} params 请求参数
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: Array<{
    url: string; // 地图网址
    id: string; // 活动ID
    cover: string; // 封面图
    tittle: string; // 标题
    begin_date: string; // 开始时间
    end_date: string; // 结束时间
 *   }>;
 * }>}
 */
export const listAPI = params => fn(fetch.get(Api.List, params))

/**
 * @description 获取海报
 * @remark 
 * @param {Object} params 请求参数
 * @param {string} params.activity_id (可选) 活动ID
 * @param {string} params.detail_id (可选) 关卡ID
 * @param {string} params.env_version (可选) 小程序版本。正式版为 "release",体验版为 "trial"。默认是正式版
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
    details: Array<{
      id: integer; // 关卡ID
      name: string; // 关卡名称
      background_url: string; // 关卡背景图
      main_slogan: string; // 
      sub_slogan: string; // 
      is_checked: boolean; // 是否已经打卡
    }>;
    family: {
      id: integer; // 家庭ID
      name: string; // 家庭名称
      avatar_url: string; // 家庭头像
    };
    show_detail_index: integer; // 从 0 开始计数
    end_date: string; // 活动截止时间
    qrcode_url: string; // 小程序码
    title: string; // 海报标题
    begin_date: string; // 活动开始日期
 *   };
 * }>}
 */
export const posterAPI = params => fn(fetch.get(Api.Poster, params))

/**
 * @description 上传海报背景
 * @remark
 * @param {Object} params 请求参数
 * @param {string} params.activity_id (可选) 活动ID
 * @param {string} params.detail_id (可选) 打卡点ID
 * @param {string} params.poster_background_url (可选) 关卡海报背景
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: any;
 * }>}
 */
export const savePosterBackgroundAPI = params => fn(fetch.post(Api.SavePosterBackground, params))