client-side main node app

This commit is contained in:
2023-09-25 15:08:54 +03:30
parent 128b63f86c
commit 9c911d8f7f

122
webui-client/src/main.js Normal file
View File

@@ -0,0 +1,122 @@
const express = require('express');
const axios = require('axios');
const app = express();
const port = process.env.PORT || 3000;
// Set up EJS as the view engine
app.set('view engine', 'ejs');
// Serve static files from the public directory
app.use(express.static('public'));
// Define the API endpoint constant
const API_ENDPOINT = 'https://api.ss.mhasadi78.ir'; // Replace with your actual API endpoint
// Define routes
app.get('/', (req, res) => {
res.render('index');
});
// Handle API requests with API Key
app.get('/get_last_record', async (req, res) => {
try {
const apiKey = req.query.apiKey; // Get API Key from query parameter
const response = await axios.get(
`${API_ENDPOINT}/get_last_record`,
{ headers: { Authorization: apiKey } }, // Set API Key in the request header
);
const record = response.data;
res.json(record);
} catch (error) {
console.error(error);
res.status(500).json({
error: 'Error fetching data',
});
}
});
app.get('/get_all_records', async (req, res) => {
try {
const apiKey = req.query.apiKey; // Get API Key from query parameter
const response = await axios.get(
`${API_ENDPOINT}/get_all_records`,
{ headers: { Authorization: apiKey } }, // Set API Key in the request header
);
const records = response.data;
res.json(records);
} catch (error) {
console.error(error);
res.status(500).json({
error: 'Error fetching data',
});
}
});
app.get(
'/get_records_since/:timestamp',
async (req, res) => {
const timestamp = parseInt(req.params.timestamp);
try {
const apiKey = req.query.apiKey; // Get API Key from query parameter
const response = await axios.get(
`${API_ENDPOINT}/get_records_since/${timestamp}`,
{ headers: { Authorization: apiKey } }, // Set API Key in the request header
);
const records = response.data;
res.json(records);
} catch (error) {
console.error(error);
res.status(500).json({
error: 'Error fetching data',
});
}
},
);
app.get(
'/get_records_between/:startTimestamp/:endTimestamp',
async (req, res) => {
const startTimestamp = parseInt(req.params.startTimestamp);
const endTimestamp = parseInt(req.params.endTimestamp);
try {
const apiKey = req.query.apiKey; // Get API Key from query parameter
const response = await axios.get(
`${API_ENDPOINT}/get_records_between/${startTimestamp}/${endTimestamp}`,
{ headers: { Authorization: apiKey } }, // Set API Key in the request header
);
const records = response.data;
res.json(records);
} catch (error) {
console.error(error);
res.status(500).json({
error: 'Error fetching data',
});
}
},
);
app.get(
'/get_records_until/:timestamp',
async (req, res) => {
const timestamp = parseInt(req.params.timestamp);
try {
const apiKey = req.query.apiKey; // Get API Key from query parameter
const response = await axios.get(
`${API_ENDPOINT}/get_records_until/${timestamp}`,
{ headers: { Authorization: apiKey } }, // Set API Key in the request header
);
const records = response.data;
res.json(records);
} catch (error) {
console.error(error);
res.status(500).json({
error: 'Error fetching data',
});
}
},
);
// Start the server
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});