Skip to content

Commit e8e304c

Browse files
committed
display saved queries from users works
1 parent 73365b1 commit e8e304c

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

server/controllers/postgresData.controller.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,6 @@ const postgresController = {
233233
};
234234
const formattedDate = `Date Run: ${now.toLocaleString('en-US', options)}`;
235235

236-
/************* mysql querymetrics db insert for saved query page retrieval ******/
237-
// creating insert query for mysql query metrics db
238-
//Todo: figure out how to get the email from the session, if an user logs in and then tests query performance
239-
//const email = 'https://api.github.com/users/reva2024';
240-
//const db_link = 'postgresql://postgres.gcfszuopjvbjtllgmenw:[email protected]:6543/postgres';
241-
//const db_name = 'dbSpy';
242-
243236
// Send query name, query string, date, and execution time on response
244237
res.locals.metrics = [namedQuery, queryStr, formattedDate, executionTime];
245238
res.locals.otherMetrics = otherMetrics;

server/controllers/save.controller.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,20 @@ interface GlobalError {
3232
const saveController = {
3333
getSavedQueries: async (req: Request, res: Response, next: NextFunction) => {
3434
log.info('[saveCtrl - getSavedQueries] Beginning to load saved queries');
35+
const user = req.session.user;
36+
if (!user) {
37+
return res.status(401).json({ error: 'User not authenticated' });
38+
}
39+
3540
try {
3641
// query to get all necessary data to the FE
37-
// TODO - add in user data to filter per user
38-
const getQueries: string = `SELECT name, query, query_date, exec_time, planning_time, total_cost, actual_total_time, node_type, relation_name, plan_rows, actual_rows, shared_hit_blocks, shared_read_blocks FROM queries ORDER BY id DESC`;
39-
const queryVal = await pool.query(getQueries);
42+
const userEmail = user.email;
43+
const getQueries: string = `SELECT name, query, query_date, exec_time, planning_time, total_cost, actual_total_time, node_type, relation_name, plan_rows, actual_rows, shared_hit_blocks, shared_read_blocks FROM queries WHERE email = ? ORDER BY id DESC`;
44+
const queryVal = await pool.query(getQueries, [userEmail]);
4045
res.locals.savedQueries = queryVal;
4146
return next();
4247
} catch (err) {
48+
console.error('getSavedQueries ERROR:', err);
4349
return next({
4450
log: 'An error occurred in saveController.getSavedQueries',
4551
message: 'Something went wrong in the loading process',

server/routes/save.router.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import { Router, Response, Request } from 'express';
44
import bodyParser from 'body-parser';
55
import saveController from '../controllers/save.controller';
6+
import { isAuthenticated } from '../controllers/user.controller';
7+
68
const saveRouter = Router();
79

810
// Apply bodyParser with a larger limit
@@ -13,6 +15,7 @@ const saveRouter = Router();
1315
//Load Saved Queries
1416
saveRouter.get(
1517
'/saved-queries',
18+
isAuthenticated,
1619
saveController.getSavedQueries,
1720
(_req: Request, res: Response) => {
1821
return res.status(200).json(res.locals.savedQueries);

src/pages/ViewSavedQueries.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,17 @@ const ViewSavedQueries: React.FC = () => {
5454
<>
5555
<div className="justify-space-around flex-auto justify-end border-2 border-black pr-2">
5656
<FeatureTab />
57-
<div className="ml-20 pt-20 text-center">
58-
<h1 className="mb-12 text-5xl font-bold tracking-tight text-yellow-400">
59-
Saved Queries
60-
</h1>
61-
</div>
6257
<div
6358
className={`h-screen transition-all duration-300 ${
6459
toggleClicked ? 'ml-16' : 'ml-64'
6560
}`}
6661
>
67-
{/* this wrap aligns the title 'Queries Saved w/ the table together */}
62+
<h1 className="flex items-center justify-center pt-20 text-5xl font-bold tracking-tight text-slate-700 dark:text-white">
63+
Saved Queries
64+
</h1>
65+
{/* this wrap aligns the title 'Saved Queries w/ the table together */}
6866
<div className="mt-4 flex gap-x-8">
69-
{savedQueries.length > 0 && (
67+
{savedQueries.length > 0 ? (
7068
<div className="mt-8 w-full max-w-[1300px] shrink-0 overflow-x-auto px-4 text-white">
7169
<table className="min-w-full table-fixed border-collapse border border-white text-white">
7270
<thead>
@@ -164,6 +162,10 @@ const ViewSavedQueries: React.FC = () => {
164162
</tbody>
165163
</table>
166164
</div>
165+
) : (
166+
<div className="flex h-full w-full items-center justify-center text-white">
167+
No queries saved.
168+
</div>
167169
)}
168170
</div>
169171
</div>

0 commit comments

Comments
 (0)