pinnacleClient.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import axios from "axios";
  2. import { HttpsProxyAgent } from "https-proxy-agent";
  3. export const pinnacleRequest = async (options) => {
  4. const {
  5. endpoint,
  6. params = {},
  7. username,
  8. password,
  9. method = "GET",
  10. data,
  11. proxy,
  12. timeout = 10000,
  13. } = options;
  14. if (!endpoint || !username || !password) {
  15. throw new Error("endpoint、username、password is required");
  16. }
  17. const authHeader = `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
  18. const axiosConfig = {
  19. baseURL: "https://api.pinnacle888.com",
  20. url: endpoint,
  21. method,
  22. headers: {
  23. "Authorization": authHeader,
  24. "Accept": "application/json",
  25. "Content-Type": "application/json",
  26. },
  27. params,
  28. data,
  29. timeout,
  30. };
  31. if (proxy) {
  32. axiosConfig.proxy = false;
  33. axiosConfig.httpsAgent = new HttpsProxyAgent(proxy);
  34. }
  35. return axios(axiosConfig).then(res => res.data);
  36. }
  37. export const getPsteryRelations = async (mk=-1) => {
  38. const axiosConfig = {
  39. baseURL: 'http://127.0.0.1:9055',
  40. url: '/api/pstery/get_games_relation',
  41. method: 'GET',
  42. params: {
  43. mk,
  44. },
  45. proxy: false,
  46. };
  47. return axios(axiosConfig).then(res => res.data);
  48. }
  49. export const updateBaseEvents = async (data) => {
  50. const axiosConfig = {
  51. baseURL: 'http://127.0.0.1:9055',
  52. url: '/api/pstery/update_base_events',
  53. method: 'POST',
  54. headers: {
  55. 'Content-Type': 'application/json',
  56. },
  57. data: JSON.stringify(data),
  58. proxy: false,
  59. };
  60. return axios(axiosConfig).then(res => res.data);
  61. }
  62. export const notifyException = async (message) => {
  63. const axiosConfig = {
  64. baseURL: 'http://127.0.0.1:9055',
  65. url: '/api/pstery/notify_exception',
  66. method: 'POST',
  67. data: { message },
  68. proxy: false,
  69. };
  70. return axios(axiosConfig).then(res => res.data);
  71. }