UNPKG

@tencentcloud/chat-cs-uniapp

Version:

TCCC uniapp UIKit

84 lines (80 loc) 2.22 kB
import { ulid } from './ulid'; import * as Cookie from './cookie'; import { logger } from '../logger/logger'; import { getAuthorization } from './authorization'; import { getInfo } from './info'; const UrlMap = { development: { http: 'https://test.ccclogic.pstn.avc.qcloud.com', socket: 'wss://test.cccstate.pstn.avc.qcloud.com/staff', }, preproduction: { http: 'https://pre.ccclogic.pstn.avc.qcloud.com', socket: 'wss://pre.cccstate.pstn.avc.qcloud.com/staff', }, production: { http: 'https://api.tccc.qcloud.com', socket: 'wss://api.tccc.qcloud.com/staff', }, }; export const getBaseUrl = () => { return UrlMap.production; const { query } = wx.getEnterOptionsSync(); if (typeof query.scene === 'string') { const scene = query.scene.toUpperCase(); if (scene.startsWith('DEV-')) { return UrlMap.development; } if (scene.startsWith('TEST-')) { return UrlMap.preproduction; } } const env = `process.env.NODE_ENV` || 'production'; return UrlMap[env|| 'production']; }; export function wxRequest( url, data = {}, ) { const nonce = ulid(); return new Promise((resolve, reject) => { wx.request({ url: `${getBaseUrl().http}/${url.replace(/^\//, '')}`, method: 'POST', header: { Cookie: Cookie.getCookiesStr(), ...getAuthorization(url), }, enableHttp2: true, data: { nonce, requestId: nonce, timestamp: `${Date.now()}`, clientType: '3', ...getInfo(), ...data, }, success(res) { const { data, header } = res; const resData = data; const setCookieStr = header['Set-Cookie'] || header['set-cookie'] || ''; Cookie.setCookieFromHeader(setCookieStr); if (resData.errorCode === '0') { return resolve(resData); } logger.error(`url: ${url}`, `nonce: ${nonce}`, res); if (resData.errorCode === '-2015') { Cookie.removeCookie('openId'); Cookie.removeCookie('userKey'); } reject({ ...resData, message: resData.msg, }); }, fail(res) { reject(res); }, }); }); }