flyzto пре 2 недеља
родитељ
комит
7ea67552e6
1 измењених фајлова са 22 додато и 2 уклоњено
  1. 22 2
      server/models/PartnerGate.js

+ 22 - 2
server/models/PartnerGate.js

@@ -12,9 +12,29 @@ const fixFloat = (number, x=3) => {
   return parseFloat(number.toFixed(x));
 }
 
-const getSolutionWithIors = (params) => {
-  Logs.outDev('getGameSolution', params);
+const getSolutionWithIors = async(params) => {
   const { iors, cross_type, base_stake } = params;
+  if (typeof params !== 'object' || params === null || Array.isArray(params)) {
+    return Promise.reject(new Error('params must be an object'));
+  }
+  if (!Array.isArray(iors) || iors.length < 2) {
+    return Promise.reject(new Error('iors must be an array and length must be greater than 2'));
+  }
+  iors.forEach(item => {
+    if (typeof item.v !== 'number' || !Number.isFinite(item.v)) {
+      return Promise.reject(new Error('iors must be an array of numbers'));
+    }
+    if (item.v <= 1) {
+      return Promise.reject(new Error('iors must be an array of numbers greater than 1'));
+    }
+  });
+  if (typeof cross_type !== 'string' || cross_type.length === 0) {
+    return Promise.reject(new Error('cross_type must be a non-empty string'));
+  }
+  if (typeof base_stake !== 'number' || !Number.isFinite(base_stake) || base_stake <= 0) {
+    return Promise.reject(new Error('base_stake must be a positive number'));
+  }
+
   const base_index = iors.reduce((minIdx, cur, idx) => cur.v < iors[minIdx].v ? idx : minIdx, 0);
   if (iors.length === 2) {
     iors.push({ v: 1 });