import { Article, ArticleView, axios, Page, PageResult } from "timi-web";
import { ArticleRanking } from "@/types/Article.ts";

async function page(page: Page): Promise<PageResult<Article<any>>> {
	return axios.post("/article/list", page);
}

/**
 * 获取文章
 *
 * @param id 文章 ID
 * @returns 文章数据
 */
async function view(id: number): Promise<ArticleView<any>> {
	return axios.get(`/article/${id}`);
}

/**
 * 喜欢文章，后端有限调用，1240ms 一次
 *
 * @param id 文章 ID
 * @returns 最新喜欢数量
 */
async function like(id: number): Promise<number> {
	return axios.get(`/article/like/${id}`);
}

async function listRanking(): Promise<ArticleRanking[]> {
	return axios.get("/article/list/ranking");
}

export default {
	view,
	like,
	page,
	listRanking
};
