4 changed files with 148 additions and 11 deletions
@ -0,0 +1,119 @@ |
|||||
|
import tui from './httpRequest' |
||||
|
|
||||
|
function unwrap(res) { |
||||
|
if (!res) return null |
||||
|
if (res.success === false) { |
||||
|
uni.showToast({ title: res.message || '请求失败', icon: 'none', duration: 2000 }) |
||||
|
return null |
||||
|
} |
||||
|
return res.result !== undefined ? res.result : res |
||||
|
} |
||||
|
|
||||
|
function extractUploadUrl(fileObj) { |
||||
|
if (!fileObj) return '' |
||||
|
if (typeof fileObj === 'string') return fileObj |
||||
|
return fileObj.url || fileObj.fileUrl || fileObj.path || fileObj.fullPath || '' |
||||
|
} |
||||
|
|
||||
|
function buildQuery(data = {}) { |
||||
|
const query = Object.keys(data) |
||||
|
.filter(key => data[key] !== undefined && data[key] !== null && data[key] !== '') |
||||
|
.map(key => encodeURIComponent(key) + '=' + encodeURIComponent(data[key])) |
||||
|
.join('&') |
||||
|
return query ? '?' + query : '' |
||||
|
} |
||||
|
|
||||
|
export function uploadCampusImage(path) { |
||||
|
return tui.uploadFile('/upload/file', path).then(extractUploadUrl) |
||||
|
} |
||||
|
|
||||
|
export async function uploadCampusReleaseImage(path) { |
||||
|
const url = await tui.uploadFile('/upload/file', path).then(extractUploadUrl) |
||||
|
if (!url) return { url: '', passed: false, message: '图片上传失败,请稍后重试' } |
||||
|
const res = await tui.request('/app/campus/images/audit', 'POST', { url }, false, false, true) |
||||
|
if (res && res.success !== false) { |
||||
|
const auditResult = res.result !== undefined ? res.result : res |
||||
|
return auditResult && auditResult.passed ? { url, passed: true } : { url: '', passed: false, message: '图片审核未通过,请更换图片' } |
||||
|
} |
||||
|
return { url: '', passed: false, message: (res && res.message) || '图片审核未通过,请更换图片' } |
||||
|
} |
||||
|
|
||||
|
export function listCampusCategories(data = {}) { |
||||
|
return tui.request('/app/campus/categories', 'GET', data, false, true, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageCampusPosts(data = {}) { |
||||
|
return tui.request('/app/campus/posts/page', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageCampusPartnerPosts(data = {}) { |
||||
|
return tui.request('/app/campus/partner/posts/page', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function matchCampusPartnerPost(data = {}) { |
||||
|
return tui.request('/app/campus/partner/posts/match', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageMyCampusPosts(data = {}) { |
||||
|
return tui.request('/app/campus/my/posts', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function getCampusPostDetail(id) { |
||||
|
return tui.request(`/app/campus/posts/${id}`, 'GET', {}, false, true, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function publishCampusPost(data) { |
||||
|
return tui.request('/app/campus/posts', 'POST', data, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function updateMyCampusPostStatus(data) { |
||||
|
return tui.request('/app/campus/my/posts/status', 'POST', data, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function toggleCampusLike(data) { |
||||
|
return tui.request('/app/campus/like' + buildQuery(data), 'POST', {}, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function addCampusComment(data) { |
||||
|
return tui.request('/app/campus/comments', 'POST', data, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageCampusComments(postId, pageNum = 1, pageSize = 10) { |
||||
|
return tui.request('/app/campus/comments/page', 'GET', { postId, pageNum, pageSize }, false, true, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function deleteCampusComment(id) { |
||||
|
return tui.request(`/app/campus/comments/${id}`, 'DELETE', {}, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function createCampusChatSession(postId) { |
||||
|
return tui.request(`/app/campus/posts/${postId}/chat`, 'POST', {}, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function getCampusChatSession(sessionId) { |
||||
|
return tui.request(`/app/campus/chat/sessions/${sessionId}`, 'GET', {}, false, true, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageCampusChatMessages(sessionId, pageNum = 1, pageSize = 20) { |
||||
|
return tui.request(`/app/campus/chat/sessions/${sessionId}/messages/page`, 'GET', { pageNum, pageSize }, false, true, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function sendCampusChatMessage(data) { |
||||
|
return tui.request('/app/campus/chat/messages', 'POST', data, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageMyCampusSessions(data = {}) { |
||||
|
return tui.request('/app/campus/my/sessions', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function pageMyCampusMessageComments(data = {}) { |
||||
|
return tui.request('/app/campus/my/message-comments', 'POST', data, false, false, true).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function submitCampusComplaint(data) { |
||||
|
return tui.request('/app/campus/complaints', 'POST', data, false, false, false).then(unwrap) |
||||
|
} |
||||
|
|
||||
|
export function getCampusUnreadSummary() { |
||||
|
return tui.request('/app/campus/unread/summary', 'GET', {}, false, true, true).then(unwrap) |
||||
|
} |
||||
Loading…
Reference in new issue