|
@@ -0,0 +1,60 @@
|
|
|
|
|
+import axios from "axios";
|
|
|
|
|
+import HMAC_SHA256 from "crypto-js/hmac-sha256";
|
|
|
|
|
+const BASE_URL="https://devmini.tongifts.app/"
|
|
|
|
|
+const config={
|
|
|
|
|
+ _id:"",
|
|
|
|
|
+ apiKey:""
|
|
|
|
|
+}
|
|
|
|
|
+const service = axios.create({
|
|
|
|
|
+ baseURL: BASE_URL,
|
|
|
|
|
+ withCredentials: true,
|
|
|
|
|
+ timeout: 10000, // Request timeout
|
|
|
|
|
+});
|
|
|
|
|
+const init=(_id,apiKey)=>{
|
|
|
|
|
+ if (_id!=null)config._id=_id;
|
|
|
|
|
+ if (apiKey!=null)config.apiKey=apiKey;
|
|
|
|
|
+}
|
|
|
|
|
+const signHash=(params)=>{
|
|
|
|
|
+ let keys = Object.keys(params)
|
|
|
|
|
+ let signData = []
|
|
|
|
|
+ keys.forEach(key => {
|
|
|
|
|
+ if (key === 'k' || key === 's') return
|
|
|
|
|
+ if (typeof params[key] === 'object')
|
|
|
|
|
+ signData.push(`${key}=${JSON.stringify(params[key])}`)
|
|
|
|
|
+ else
|
|
|
|
|
+ signData.push(`${key}=${params[key]}`)
|
|
|
|
|
+ })
|
|
|
|
|
+ let rawStr = signData.sort().join('&')
|
|
|
|
|
+
|
|
|
|
|
+ let selfHash = HMAC_SHA256(rawStr, config.apiKey)
|
|
|
|
|
+ return selfHash.toString();
|
|
|
|
|
+}
|
|
|
|
|
+const tonHttpReq=(url,params={})=>{
|
|
|
|
|
+ if (config._id===""||config.apiKey==="")return null;
|
|
|
|
|
+ if (params==null)params={};
|
|
|
|
|
+ let timestamp=Math.floor(Date.now()/1000);
|
|
|
|
|
+ params={...params,k:config._id,t:timestamp};
|
|
|
|
|
+ let data={
|
|
|
|
|
+ ...params,
|
|
|
|
|
+ s:signHash(params)
|
|
|
|
|
+ }
|
|
|
|
|
+ return service({
|
|
|
|
|
+ method: 'post',
|
|
|
|
|
+ url,
|
|
|
|
|
+ data
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+const updateTask=(userId,taskId,status="completed")=>{
|
|
|
|
|
+ let params={
|
|
|
|
|
+ userIds:[userId],
|
|
|
|
|
+ taskId:taskId,
|
|
|
|
|
+ status:status,
|
|
|
|
|
+ }
|
|
|
|
|
+ return tonHttpReq("api/open/updateTask",params);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const TonHelper={
|
|
|
|
|
+ init,
|
|
|
|
|
+ updateTask
|
|
|
|
|
+}
|
|
|
|
|
+export default TonHelper;
|