feat: 完成前端业务闭环与后端联调
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import { listPreviewFamilyFeeds } from '@/data/preview/family-content.js'
|
||||
import { hasRemoteConfig } from '@/utils/runtime-config.js'
|
||||
import {
|
||||
FEED_COMMENT_LEVEL,
|
||||
normalizeDirectFeedReplies,
|
||||
@@ -15,11 +13,6 @@ import { normalizeGenealogyPathId } from './genealogy-contract.js'
|
||||
import { normalizeResourcePathId } from './request-normalizers.js'
|
||||
import { createRequestError, requestStrict } from './request-client.js'
|
||||
|
||||
const requireRemoteFeed = (message, code) => {
|
||||
if (hasRemoteConfig()) return
|
||||
throw createRequestError(message, code)
|
||||
}
|
||||
|
||||
const normalizePageQuery = (pageNum, pageSize, label) => {
|
||||
if (!Number.isSafeInteger(pageNum) || pageNum < 1 || !Number.isSafeInteger(pageSize) || pageSize < 1) {
|
||||
throw new TypeError(`${label}分页参数无效`)
|
||||
@@ -35,7 +28,6 @@ const assertPageResponse = (page, label) => {
|
||||
|
||||
export const familyFeedApi = {
|
||||
async createFeedComment(genealogyId, feedId, payload, requestOptions = {}) {
|
||||
requireRemoteFeed('动态评论需要真实服务,当前本地预览不会伪造提交成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeFeedResourceId(feedId, '动态标识')
|
||||
return requestStrict({
|
||||
@@ -49,12 +41,6 @@ export const familyFeedApi = {
|
||||
|
||||
async getFeedRecommendations(genealogyId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
if (!hasRemoteConfig()) {
|
||||
return normalizeFamilyFeedRows(
|
||||
listPreviewFamilyFeeds(normalizedGenealogyId),
|
||||
normalizedGenealogyId
|
||||
).map((feed) => ({ ...feed, recommendationReason: '家谱内最新动态' }))
|
||||
}
|
||||
const recommendations = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feed-recommendations`,
|
||||
method: 'GET'
|
||||
@@ -67,7 +53,6 @@ export const familyFeedApi = {
|
||||
async getFeedDetail(genealogyId, feedId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeFeedResourceId(feedId, '动态标识')
|
||||
requireRemoteFeed('动态详情需要真实读取服务,当前本地预览不会伪造详情', 'REMOTE_READ_REQUIRED')
|
||||
const feed = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}`,
|
||||
method: 'GET'
|
||||
@@ -80,7 +65,6 @@ export const familyFeedApi = {
|
||||
async updateFeed(genealogyId, feedId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeFeedResourceId(feedId, '动态标识')
|
||||
requireRemoteFeed('修改动态需要真实服务,当前本地预览不会伪造保存成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const feed = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}`,
|
||||
method: 'PUT',
|
||||
@@ -94,7 +78,6 @@ export const familyFeedApi = {
|
||||
async deleteFeed(genealogyId, feedId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeFeedResourceId(feedId, '动态标识')
|
||||
requireRemoteFeed('删除动态需要真实服务,当前本地预览不会伪造删除成功', 'REMOTE_WRITE_REQUIRED')
|
||||
await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}`,
|
||||
method: 'DELETE'
|
||||
@@ -109,7 +92,6 @@ export const familyFeedApi = {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeFeedResourceId(feedId, '动态标识')
|
||||
if (typeof liked !== 'boolean') throw new TypeError('动态点赞状态必须是布尔值')
|
||||
requireRemoteFeed('动态点赞需要真实服务,当前本地预览不会伪造操作成功', 'REMOTE_WRITE_REQUIRED')
|
||||
await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}/likes`,
|
||||
method: liked ? 'POST' : 'DELETE'
|
||||
@@ -121,7 +103,6 @@ export const familyFeedApi = {
|
||||
},
|
||||
|
||||
async createFeed(genealogyId, payload, requestOptions = {}) {
|
||||
requireRemoteFeed('动态发布需要真实服务,当前本地预览不会伪造发布成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const createdFeed = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds`,
|
||||
@@ -136,7 +117,6 @@ export const familyFeedApi = {
|
||||
async getFeedPage(genealogyId, { pageNum = 1, pageSize = 20 } = {}, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const pageQuery = normalizePageQuery(pageNum, pageSize, '动态')
|
||||
requireRemoteFeed('家族动态读取需要真实服务,当前本地预览不会伪造结果', 'REMOTE_READ_REQUIRED')
|
||||
const feedPage = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/page`,
|
||||
method: 'GET',
|
||||
@@ -156,7 +136,6 @@ export const familyFeedApi = {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeResourcePathId(feedId, '动态标识')
|
||||
const pageQuery = normalizePageQuery(pageNum, pageSize, '评论')
|
||||
requireRemoteFeed('动态评论读取需要真实服务,当前本地预览不会伪造结果', 'REMOTE_READ_REQUIRED')
|
||||
const commentPage = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}/comments/page`,
|
||||
method: 'GET',
|
||||
@@ -182,7 +161,6 @@ export const familyFeedApi = {
|
||||
const normalizedFeedId = normalizeResourcePathId(feedId, '动态标识')
|
||||
const normalizedCommentId = normalizeResourcePathId(commentId, '评论标识')
|
||||
const pageQuery = normalizePageQuery(pageNum, pageSize, '回复')
|
||||
requireRemoteFeed('评论回复读取需要真实服务,当前本地预览不会伪造结果', 'REMOTE_READ_REQUIRED')
|
||||
const replyPage = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}/comments/${normalizedCommentId}/replies/page`,
|
||||
method: 'GET',
|
||||
@@ -207,7 +185,6 @@ export const familyFeedApi = {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedFeedId = normalizeResourcePathId(feedId, '动态标识')
|
||||
const normalizedCommentId = normalizeResourcePathId(commentId, '评论标识')
|
||||
requireRemoteFeed('动态评论写入需要真实服务,当前本地预览不会伪造结果', 'REMOTE_WRITE_REQUIRED')
|
||||
await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/feeds/${normalizedFeedId}/comments/${normalizedCommentId}`,
|
||||
method: 'DELETE'
|
||||
|
||||
Reference in New Issue
Block a user