video-flow-b/api/checkin.ts

40 lines
950 B
TypeScript

import { get, post } from './request'
import { ApiResponse } from './common'
/**
* 签到数据接口
*/
export interface CheckinData {
hasCheckedInToday: boolean
points: number
lastCheckinDate: string | null
pointsHistory: Array<{ date: string; points: number; expiryDate: string }>
}
/**
* 签到响应接口
*/
export interface CheckinResponse {
success: boolean
points: number
message: string
}
/**
* 获取用户签到状态和积分信息
* @returns Promise<CheckinData>
*/
export const getCheckinStatus = async (): Promise<CheckinData> => {
const response = await get<ApiResponse<CheckinData>>('/api/user/checkin/status')
return response.data
}
/**
* 执行签到操作
* @returns Promise<CheckinResponse>
*/
export const performCheckin = async (): Promise<CheckinResponse> => {
const response = await post<ApiResponse<CheckinResponse>>('/api/user/checkin', {})
return response.data
}