qiscrm-mcp
Version:
MCP server for QISCRM
67 lines (66 loc) • 2.36 kB
JavaScript
import { API_KEY, BASE_URL } from './config.js';
import { log } from './utils.js';
export async function makeGetRequest(functionUrl, query) {
if (!API_KEY) {
throw new Error(`API_KEY Not Found`);
}
const startTime = Date.now();
const headers = {
Accept: "application/json",
At: API_KEY,
};
let url = BASE_URL + functionUrl;
let strParam = new URLSearchParams(query).toString();
let callUrl = url.concat('?').concat(strParam);
try {
const response = await fetch(callUrl, { headers });
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const t = (await response.json());
log(`makePostRequest result: ${JSON.stringify(t)}`);
const duration = Date.now() - startTime;
log(`API request to ${functionUrl} completed in ${duration}ms`);
return t;
}
catch (error) {
log("Error makeGetRequest:", error);
const duration = Date.now() - startTime;
log(`API request to ${functionUrl} failed after ${duration}ms:`, error);
throw error;
}
}
export async function makePostRequest(functionUrl, bodyParam) {
if (!API_KEY) {
throw new Error(`API_KEY Not Found`);
}
const startTime = Date.now();
log(`makePostRequest: ${functionUrl},${JSON.stringify(bodyParam)}`);
let url = BASE_URL + functionUrl;
let requestInstance = new Request(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8',
At: API_KEY,
},
body: JSON.stringify(bodyParam),
});
try {
const response = await fetch(requestInstance);
if (!response.ok) {
log(`HTTP error! status: ${response.status}`);
throw new Error(`HTTP error! status: ${response.status}`);
}
const t = (await response.json());
log(`makePostRequest result: ${JSON.stringify(t)}`);
const duration = Date.now() - startTime;
log(`API request to ${functionUrl} completed in ${duration}ms`);
return t;
}
catch (error) {
log("Error makePostRequest:", error);
const duration = Date.now() - startTime;
log(`API request to ${functionUrl} failed after ${duration}ms:`, error);
throw error;
}
}