Files
danyang-match/miniapp/services/recommendationService.js
T
WorkBuddy 69ebf33e18
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
release: freeze demo v1.1.0 2026-10-19
2026-10-19 20:36:22 +08:00

53 lines
1.7 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_INVENTORY 行 36-37, 41-43)
*
* 封装:今日推荐列表、推荐详情、Discover 搜索、用户公开主页。
* Required 不可自动放宽(AGENTS 第 2 条)——本层不实现任何"放宽条件后再查"的逻辑,
* 仅把请求透传给后端,由后端按 PartnerPreference 做硬约束过滤。
*/
const api = require('../utils/api');
/**
* 获取今日推荐列表(API_INVENTORY 行 36)
* @param {{ cursor?: string, pageSize?: number }} params
* @returns {Promise<{ items: Array<import('../types').Recommendation>, nextCursor: string|null, dailyRemaining: number }>}
*/
function getRecommendations(params = {}) {
return api.get('/recommendations', params);
}
/**
* 获取推荐详情(API_INVENTORY 行 37)
* @param {string} userId
* @returns {Promise<import('../types').Recommendation>}
*/
function getRecommendationDetail(userId) {
return api.get(`/recommendations/${encodeURIComponent(userId)}`);
}
/**
* Discover 搜索(API_INVENTORY 行 42)
* @param {{ keyword?: string, region?: string, ageMin?: number, ageMax?: number, cursor?: string, pageSize?: number }} params
* @returns {Promise<{ items: Array<import('../types').User>, nextCursor: string|null }>}
*/
function discover(params = {}) {
return api.get('/discover', params);
}
/**
* 查看用户公开主页(API_INVENTORY 行 43)
* @param {string} userId
* @returns {Promise<import('../types').User & { relationStatus: import('../types').RelationStatus }>}
*/
function getUserDetail(userId) {
// 后端公开资料路由挂在 discover 控制器下
return api.get(`/discover/users/${encodeURIComponent(userId)}`);
}
module.exports = {
getRecommendations,
getRecommendationDetail,
discover,
getUserDetail,
};