|
|
@@ -29,16 +29,18 @@ const pinnacleWebOptions = {
|
|
|
},
|
|
|
}
|
|
|
|
|
|
-export const pinnacleRequest = async (options) => {
|
|
|
+export const pinnacleRequest = async (options, channel) => {
|
|
|
|
|
|
const { url, ...optionsRest } = options;
|
|
|
const username = process.env.PINNACLE_USERNAME;
|
|
|
const password = process.env.PINNACLE_PASSWORD;
|
|
|
- if (!url || !username || !password) {
|
|
|
- throw new Error("url、username、password is required");
|
|
|
+ if (!url || !channel && (!username || !password)) {
|
|
|
+ throw new Error("url、username、password、channel is required");
|
|
|
}
|
|
|
|
|
|
- const authHeader = `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
|
|
|
+ Logs.outDev('pinnacle request', url, channel, username, password);
|
|
|
+
|
|
|
+ const authHeader = channel ? `Basic ${channel}` : `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
|
|
|
const axiosConfig = { ...axiosDefaultOptions, ...optionsRest, url, baseURL: "https://api.pinnacle888.com" };
|
|
|
Object.assign(axiosConfig.headers, {
|
|
|
"Authorization": authHeader,
|
|
|
@@ -61,11 +63,11 @@ export const pinnacleRequest = async (options) => {
|
|
|
* @param {*} params
|
|
|
* @returns
|
|
|
*/
|
|
|
-export const pinnacleGet = async (url, params) => {
|
|
|
+export const pinnacleGet = async (url, params, channel) => {
|
|
|
return pinnacleRequest({
|
|
|
url,
|
|
|
params
|
|
|
- })
|
|
|
+ }, channel)
|
|
|
.catch(err => {
|
|
|
const source = { url, params };
|
|
|
if (err?.response?.data) {
|
|
|
@@ -83,7 +85,7 @@ export const pinnacleGet = async (url, params) => {
|
|
|
* @param {*} data
|
|
|
* @returns
|
|
|
*/
|
|
|
-export const pinnaclePost = async (url, data) => {
|
|
|
+export const pinnaclePost = async (url, data, channel) => {
|
|
|
return pinnacleRequest({
|
|
|
url,
|
|
|
method: 'POST',
|
|
|
@@ -91,7 +93,7 @@ export const pinnaclePost = async (url, data) => {
|
|
|
'Content-Type': 'application/json',
|
|
|
},
|
|
|
data
|
|
|
- });
|
|
|
+ }, channel);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -108,7 +110,7 @@ const cleanUndefined = (obj) => {
|
|
|
/**
|
|
|
* 获取直盘线
|
|
|
*/
|
|
|
-export const getLineInfo = async (info = {}) => {
|
|
|
+export const getLineInfo = async (info = {}, channel) => {
|
|
|
const {
|
|
|
leagueId, eventId, betType, handicap, team, side,
|
|
|
specialId, contestantId,
|
|
|
@@ -121,10 +123,12 @@ export const getLineInfo = async (info = {}) => {
|
|
|
data = { specialId, contestantId, oddsFormat };
|
|
|
}
|
|
|
data = cleanUndefined(data);
|
|
|
- return pinnacleGet(url, data)
|
|
|
+ return pinnacleGet(url, data, channel)
|
|
|
.then(ret => ({ info: ret, line: data }))
|
|
|
.catch(err => {
|
|
|
Logs.errDev('get line info error', err);
|
|
|
+ err.data = err.response.data;
|
|
|
+ err.cause = err.response.status;
|
|
|
return Promise.reject(err);
|
|
|
});
|
|
|
}
|
|
|
@@ -139,7 +143,7 @@ export const getAccountBalance = async () => {
|
|
|
/**
|
|
|
* 下注
|
|
|
*/
|
|
|
-export const placeOrder = async ({ info, line, stakeSize }) => {
|
|
|
+export const placeOrder = async ({ info, line, stakeSize }, channel) => {
|
|
|
// return Promise.resolve({info, line, stakeSize});
|
|
|
const uuid = randomUUID()
|
|
|
if (line.specialId) {
|
|
|
@@ -154,7 +158,7 @@ export const placeOrder = async ({ info, line, stakeSize }) => {
|
|
|
contestantId: info.contestantId,
|
|
|
});
|
|
|
Logs.outDev('pinnacle place order data', data);
|
|
|
- return pinnaclePost('/v4/bets/special', { bets: [data] })
|
|
|
+ return pinnaclePost('/v4/bets/special', { bets: [data] }, channel)
|
|
|
.then(ret => ret.bets?.[0] ?? ret)
|
|
|
.then(ret => {
|
|
|
Logs.outDev('pinnacle place order', ret, uuid);
|
|
|
@@ -163,6 +167,8 @@ export const placeOrder = async ({ info, line, stakeSize }) => {
|
|
|
.catch(err => {
|
|
|
Logs.outDev('pinnacle place order error', err.response.data, uuid);
|
|
|
Logs.errDev(err);
|
|
|
+ err.data = err.response.data;
|
|
|
+ err.cause = err.response.status;
|
|
|
return Promise.reject(err);
|
|
|
});
|
|
|
}
|
|
|
@@ -185,7 +191,7 @@ export const placeOrder = async ({ info, line, stakeSize }) => {
|
|
|
handicap: line.handicap,
|
|
|
});
|
|
|
Logs.outDev('pinnacle place order data', data);
|
|
|
- return pinnaclePost('/v4/bets/place', data)
|
|
|
+ return pinnaclePost('/v4/bets/place', data, channel)
|
|
|
.then(ret => {
|
|
|
Logs.outDev('pinnacle place order', ret, uuid);
|
|
|
return ret;
|
|
|
@@ -193,6 +199,8 @@ export const placeOrder = async ({ info, line, stakeSize }) => {
|
|
|
.catch(err => {
|
|
|
Logs.outDev('pinnacle place order error', err.response.data, uuid);
|
|
|
Logs.errDev(err);
|
|
|
+ err.data = err.response.data;
|
|
|
+ err.cause = err.response.status;
|
|
|
return Promise.reject(err);
|
|
|
});
|
|
|
}
|