fix: avoid connection leaks in frontpage code
This commit is contained in:
		
							parent
							
								
									340dd3ac19
								
							
						
					
					
						commit
						afeca1e796
					
				|  | @ -2,22 +2,18 @@ import { pgRead, readWritePool } from "./database/pg-wrapper"; | ||||||
| import { Forecast } from "./platforms"; | import { Forecast } from "./platforms"; | ||||||
| 
 | 
 | ||||||
| export async function getFrontpage(): Promise<Forecast[]> { | export async function getFrontpage(): Promise<Forecast[]> { | ||||||
|   const client = await readWritePool.connect(); |   const res = await readWritePool.query( | ||||||
|   const res = await client.query( |  | ||||||
|     "SELECT frontpage_sliced FROM frontpage ORDER BY id DESC LIMIT 1" |     "SELECT frontpage_sliced FROM frontpage ORDER BY id DESC LIMIT 1" | ||||||
|   ); |   ); | ||||||
|   if (!res.rows.length) return []; |   if (!res.rows.length) return []; | ||||||
|   console.log(res.rows[0].frontpage_sliced); |  | ||||||
|   return res.rows[0].frontpage_sliced; |   return res.rows[0].frontpage_sliced; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function getFrontpageFull(): Promise<Forecast[]> { | export async function getFrontpageFull(): Promise<Forecast[]> { | ||||||
|   const client = await readWritePool.connect(); |   const res = await readWritePool.query( | ||||||
|   const res = await client.query( |  | ||||||
|     "SELECT frontpage_full FROM frontpage ORDER BY id DESC LIMIT 1" |     "SELECT frontpage_full FROM frontpage ORDER BY id DESC LIMIT 1" | ||||||
|   ); |   ); | ||||||
|   if (!res.rows.length) return []; |   if (!res.rows.length) return []; | ||||||
|   console.log(res.rows[0]); |  | ||||||
|   return res.rows[0].frontpage_full; |   return res.rows[0].frontpage_full; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -26,9 +22,8 @@ export async function rebuildFrontpage() { | ||||||
|     tableName: "questions", |     tableName: "questions", | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   const client = await readWritePool.connect(); |  | ||||||
|   const frontpageSliced = ( |   const frontpageSliced = ( | ||||||
|     await client.query(` |     await readWritePool.query(` | ||||||
|     SELECT * FROM questions |     SELECT * FROM questions | ||||||
|     WHERE |     WHERE | ||||||
|       (qualityindicators->>'stars')::int >= 3 |       (qualityindicators->>'stars')::int >= 3 | ||||||
|  | @ -39,7 +34,7 @@ export async function rebuildFrontpage() { | ||||||
|   ).rows; |   ).rows; | ||||||
| 
 | 
 | ||||||
|   const start = Date.now(); |   const start = Date.now(); | ||||||
|   await client.query( |   await readWritePool.query( | ||||||
|     "INSERT INTO frontpage(frontpage_full, frontpage_sliced) VALUES($1, $2)", |     "INSERT INTO frontpage(frontpage_full, frontpage_sliced) VALUES($1, $2)", | ||||||
|     [JSON.stringify(frontpageFull), JSON.stringify(frontpageSliced)] |     [JSON.stringify(frontpageFull), JSON.stringify(frontpageSliced)] | ||||||
|   ); |   ); | ||||||
|  |  | ||||||
|  | @ -7,7 +7,5 @@ export default async function handler( | ||||||
|   res: NextApiResponse |   res: NextApiResponse | ||||||
| ) { | ) { | ||||||
|   let frontpageElements = await getFrontpage(); |   let frontpageElements = await getFrontpage(); | ||||||
|   console.log(frontpageElements.map((element) => element.title).slice(0, 5)); |  | ||||||
|   console.log("..."); |  | ||||||
|   res.status(200).json(frontpageElements); |   res.status(200).json(frontpageElements); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user