BLUE
PHP 7.4.33
Path:
/var/www/dmgmultieventapihandlerdev.bitkit.dk/httpdocs
Run
Logout
Edit File
Size: 6.58 KB
Close
/var/www/dmgmultieventapihandlerdev.bitkit.dk/httpdocs/server.js
Text
Base64
// server.js const express = require("express"); const axios = require("axios"); const cors = require("cors"); require("dotenv").config(); const app = express(); const PORT = process.env.PORT || 3015; const API_URL = process.env.API_URL_STG; const API_KEY = process.env.API_KEY_STG; app.use(cors()); app.use(express.json()); // API endpoint to handle requests from React app app.get("/", async (req, res) => { res.send("Hi, Nothing to see here!"); }); app.get("/api/published-sessions", async (req, res) => { // console.log('hit'); const { slug } = req.query; // console.log(slug); try { const response = await axios.get( `${API_URL}/api/session/published-sessions?paging=All`, { headers: { accept: "*/*", role: "event_admin", "slug-name": slug, Authorization: `Bearer ${API_KEY}`, "Content-type": "application/json", }, } ); // console.log(response.data); const data = await response.data; for (let session of data.published_sessions["data"]) { let speakers = session.published_data.users; let speaker_array = []; for (let speaker of speakers) { // console.log(speaker); speaker.fax = null; speaker.city = null; speaker.email = null; speaker.phone = null; speaker.state = null; speaker.mobile = null; speaker.poBox = null; speaker.po_box = null; speaker.street = null; speaker.postCode = null; speaker.linkedinLink = null; speaker.linkedin_link = null; speaker.company_address = null; speaker.companyAddress = null; speaker.companyCountry = null; speaker.company_country = null; speaker.pS_User_CreatedDate = null; speaker.company_logo = null; speaker.pS_User_ModifiedDate = null; speaker.post_code = null; speaker.avatar = { value: speaker.avatar?.value }; speaker_array.push(speaker); } session.published_data.users = speaker_array; } res.json(data); } catch (error) { console.error("Error fetching data:", error); res.status(500).json({ error: "Error fetching data" }); } }); app.get("/api/category-list", async (req, res) => { const { slug } = req.query; const promises = slug.split(",").map(async (s) => { try { const response = await axios.get( `${API_URL}/api/session/category-settings/list?paging=All`, { headers: { accept: "*/*", role: "event_admin", "slug-name": s, Authorization: `Bearer ${API_KEY}`, "Content-type": "application/json", }, } ); // console.log(response.data); response.data.data.categories.forEach(item => { item.event_slug = s; }); return response.data; } catch (error) { console.error("Error fetching data:", error); return null; // res.status(500).json({ error: 'Error fetching data' }); } }); const result = { status: true, data: { enabled: true, settings_id: "session_form_settings", label: "", categories: [], }, }; // Wait for all promises to resolve using Promise.all const results = await Promise.all(promises); // Filter out any null responses (in case some API calls failed) const validResults = results.filter((result) => result !== null); // console.log(validResults); for (vr of validResults) { result.data.categories = result.data.categories.concat(vr.data.categories); } // console.log(result); // Combine and process the results as needed // For example, sending the combined result as a JSON response res.json(result); }); app.get("/api/date-list", async (req, res) => { const { slug } = req.query; const promises = slug.split(",").map(async (s) => { try { const response = await axios.get( `${API_URL}/api/session/chair-person/list?paging=All`, { headers: { accept: "*/*", role: "event_admin", "slug-name": s, Authorization: `Bearer ${API_KEY}`, "Content-type": "application/json", }, } ); const data = await response.data; let new_list = {}; for (let date in data.chair_persons) { // console.log(date); // console.log(data.chair_persons[date]); new_items = []; for (let speaker of data.chair_persons[date]) { // console.log(item.user); speaker.user.fax = null; speaker.user.city = null; speaker.user.email = null; speaker.user.phone = null; speaker.user.state = null; speaker.user.mobile = null; speaker.user.poBox = null; speaker.user.po_box = null; speaker.user.street = null; speaker.user.postCode = null; speaker.user.linkedinLink = null; speaker.user.linkedin_link = null; speaker.user.company_address = null; speaker.user.companyAddress = null; speaker.user.companyCountry = null; speaker.user.company_country = null; speaker.user.pS_User_CreatedDate = null; speaker.user.company_logo = null; speaker.user.pS_User_ModifiedDate = null; speaker.user.post_code = null; new_items.push(speaker); } new_list[date] = new_items; } // console.log(new_list); return new_list; // const new_response = { status: data.status, chair_persons: new_list }; // return new_response; // res.json(new_response); } catch (error) { console.error("Error fetching data:", error); return null; // res.status(500).json({ error: "Error fetching data" }); } }); const result = { status: true, chair_persons: {}, }; const results = await Promise.all(promises); // Filter out any null responses (in case some API calls failed) const validResults = results.filter((result) => result !== null); // console.log(validResults); for (vr of validResults) { for(date in vr) { result.chair_persons[date] = vr[date]; } } // console.log(result); // Combine and process the results as needed // For example, sending the combined result as a JSON response res.json(result); }); app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 4
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
node_modules
DIR
-
drwxr-xr-x
2024-09-19 04:54:51
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
.env
222 B
lrw-rw-r--
2024-10-09 05:07:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
package-lock.json
29.08 KB
lrw-r--r--
2024-10-09 05:11:19
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
package.json
352 B
lrw-rw-r--
2024-09-19 06:10:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
server.js
6.58 KB
lrw-rw-r--
2024-10-09 05:35:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).