Viewing File: /home/ubuntu/efiexchange-node-base/src/controllers/userApp/exchange.controller.ts
import axios from "axios";
import FormData from "form-data";
export const fetchExchangeRate = async (
fromCurrency: any,
toCurrency: any,
user_id: any,
socket: any,
type: any
) => {
try {
let formData = new FormData();
let cryptoArray = ["USDT", "USDC", "ETH", "SOL", "BTC", "BNB", "TRX"];
if (type == "swap" || type == "convert" || type == "exchange") {
formData.append("from", fromCurrency);
formData.append("to", toCurrency);
formData.append("user_id", user_id);
formData.append(
"type",
`${cryptoArray.includes(fromCurrency) ? "c" : "f"}-${
cryptoArray.includes(toCurrency) ? "c" : "f"
}`
);
} else {
formData.append("fiat", fromCurrency);
formData.append("crypto", toCurrency);
formData.append("user_id", user_id);
}
let config = {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS",
"internal-api-token": process.env.INTERNAL_API_TOKEN,
},
};
let API_BASE_URL = process.env.EXCHANGE_RATE_API_URL;
let API_URL;
switch (type) {
case "buy":
API_URL = "/api/internal/exchange_rates/bsxslnolqgxh617u/buy";
break;
case "sell":
API_URL = "/api/internal/exchange_rates/9k7giy75jxssbfhr/sell";
// API_URL = "/api/internal/exchange_rates/bsxslnolqgxh617u/buy";
break;
case "swap":
API_URL = "/api/internal/exchange_rates/k1rfekdwqc0mugdq/swap";
break;
case "exchange":
API_URL = "/api/internal/exchange_rates/geu7j1fkkmqetwad/exchange";
break;
case "convert":
API_URL = "/api/internal/exchange_rates/k1rfekdwqc0mugdq/swap";
break;
default:
API_URL = "/api/internal/exchange_rates/bsxslnolqgxh617u/buy";
break;
}
const response = await axios.post(API_BASE_URL + API_URL, formData, config);
const data = await response.data;
console.log(response.data, "API Response", `${fromCurrency}-${toCurrency}`);
if (data.success) {
// if (type == "convert") {
// console.log("Conversion Rate : ", data.data.exchange_rate);
// socket.emit("getConversion", data.data.exchange_rate);
// } else {
// console.log("Response Exchange Rate : ", data.data.exchange_rate);
// socket.emit("getExchangeRate", {
// exchange_rate: data.data.exchange_rate,
// currency_pair_id: `${fromCurrency}-${toCurrency}`,
// });
// }
socket.emit("getConversion", data.data.exchange_rate);
socket.emit("getExchangeRate", {
exchange_rate: data.data.exchange_rate,
currency_pair_id: `${fromCurrency}-${toCurrency}`,
});
} else {
// if (type == "convert") {
// socket.emit("getConversion", 0);
// } else {
// socket.emit("getExchangeRate", {
// exchange_rate: 0,
// currency_pair_id: `${fromCurrency}-${toCurrency}`,
// });
// }
socket.emit("getConversion", 0);
socket.emit("getExchangeRate", {
exchange_rate: 0,
currency_pair_id: `${fromCurrency}-${toCurrency}`,
});
}
// return data;
} catch (error: any) {
console.log(error);
}
};
export const fetchSDKExchangeRate = async (
fromCurrency: any,
toCurrency: any,
user_id: any,
socket: any,
type: any,
apiKey: any,
userId: any
) => {
try {
let config = {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS",
"internal-api-token": process.env.INTERNAL_API_TOKEN,
"x-api-key": apiKey,
"user-id": userId,
},
};
let API_BASE_URL = process.env.SDK_EXCHANGE_RATE_API_URL;
let API_URL;
switch (type) {
case "buy":
API_URL = `/api/onramp/exchange_rate?fiat=${fromCurrency}&crypto=${toCurrency}`;
break;
case "sell":
API_URL = `/api/offramp/exchange_rate?crypto=${toCurrency}&fiat=${fromCurrency}`;
break;
case "swap":
API_URL = `/api/onramp/exchange_rate?fiat=${fromCurrency}&crypto=${toCurrency}`;
break;
case "exchange":
API_URL = `/api/exchange/exchange_rate?from=${fromCurrency}&to=${toCurrency}`;
break;
case "convert":
API_URL = `/api/onramp/exchange_rate?fiat=${toCurrency}&crypto=${fromCurrency}`;
break;
default:
API_URL = "/api/internal/exchange_rates/bsxslnolqgxh617u/buy";
break;
}
const response = await axios.get(API_BASE_URL + API_URL, config);
const data = await response.data;
if (data.success) {
if (type == "convert") {
console.log("SDK Conversion Rate : ", data.data.exchange_rate);
socket.emit("getSDKConversion", data.data.exchange_rate);
} else {
console.log("SDK Response Exchange Rate : ", data.data.exchange_rate);
socket.emit("getSDKExchangeRate", data.data.exchange_rate);
}
} else {
if (type == "convert") {
socket.emit("getSDKConversion", 0);
} else {
socket.emit("getSDKExchangeRate", 0);
}
}
// return data;
} catch (error: any) {
console.log(error);
}
};
export const fetchGatewayExchangeRate = async (
fromCurrency: any,
toCurrency: any,
user_id: any,
socket: any,
type: any,
apiKey: any,
userId: any
) => {
try {
let config = {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS",
"internal-api-token": process.env.INTERNAL_API_TOKEN,
"x-api-key": apiKey,
"user-id": userId,
},
};
let API_BASE_URL = process.env.SDK_EXCHANGE_RATE_API_URL;
let API_URL;
switch (type) {
case "buy":
API_URL = `/api/crypto/exchange_rate?fiat=${fromCurrency}&crypto=${toCurrency}`;
break;
default:
API_URL = `/api/crypto/exchange_rate?fiat=${fromCurrency}&crypto=${toCurrency}`;
break;
}
const response = await axios.get(API_BASE_URL + API_URL, config);
const data = await response.data;
if (data.success) {
if (type == "convert") {
console.log("Gateway Conversion Rate : ", data.data.exchange_rate);
socket.emit("getGatewayConversion", data.data.exchange_rate);
} else {
console.log(
"Gateway Response Exchange Rate : ",
data.data.exchange_rate
);
socket.emit("getGatewayExchangeRate", data.data.exchange_rate);
}
} else {
if (type == "convert") {
socket.emit("getGatewayConversion", 0);
} else {
socket.emit("getGatewayExchangeRate", 0);
}
}
// return data;
} catch (error: any) {
console.log(error);
}
};
Back to Directory
File Manager