const axios = require("axios");
const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.collectpure.com";
async function getProducts(productIds) {
try {
const response = await axios.get(`${BASE_URL}/products/get-products/v1`, {
headers: {
"x-api-key": API_KEY,
},
params: {
ids: productIds.join(","),
},
});
console.log(response.data);
return response.data;
} catch (error) {
console.error(
"Error fetching products:",
error.response?.data || error.message
);
}
}
async function searchProducts({ query, limit, offset, filter_by } = {}) {
try {
const params = {};
if (query) params.query = query;
if (limit) params.limit = limit;
if (offset) params.offset = offset;
if (filter_by) params.filter_by = filter_by;
const response = await axios.get(`${BASE_URL}/products/search/v1`, {
headers: {
"x-api-key": API_KEY,
},
params,
});
console.log(response.data);
return response.data;
} catch (error) {
console.error(
"Error searching products:",
error.response?.data || error.message
);
}
}
async function getSpotPrices() {
try {
const response = await axios.get(
`${BASE_URL}/marketplace/get-spot-price/v1`,
{
headers: {
"x-api-key": API_KEY,
},
}
);
console.log(response.data);
return response.data;
} catch (error) {
console.error(
"Error fetching spot prices:",
error.response?.data || error.message
);
}
}
async function getSaleOrders({ status, limit, offset } = {}) {
try {
const params = {};
if (status) params.status = status;
if (limit) params.limit = limit;
if (offset) params.offset = offset;
const response = await axios.get(`${BASE_URL}/orders/get-sale-orders/v1`, {
headers: {
"x-api-key": API_KEY,
},
params,
});
console.log(response.data);
return response.data;
} catch (error) {
console.error(
"Error fetching orders:",
error.response?.data || error.message
);
}
}
// Usage
getProducts(["product-id-1", "product-id-2"]);
searchProducts({ query: "gold coin" }); // Search with query
searchProducts({ limit: 20 }); // Browse all products
searchProducts({ query: "silver", limit: 5, offset: 10 }); // Paginated search
searchProducts({ filter_by: "category:=Coins && material:=Gold" }); // Filtered browse
getSpotPrices();
getSaleOrders({ limit: 10 }); // List sale orders
getSaleOrders({ status: "order_complete" }); // Completed sale orders