Skip to content

Latest commit

 

History

History
107 lines (94 loc) · 2.95 KB

old reader.md

File metadata and controls

107 lines (94 loc) · 2.95 KB
import { PrismaClient, Statement } from '@prisma/client'
import cors from 'cors'
import express from 'express'
import { Router } from 'express'

const prisma = new PrismaClient({
 rejectOnNotFound: {
  findUnique: true
 },
})

const app = express()

const router = Router()

app.use(express.json())
app.use(cors())

console.log("reader is here")

router.get('/:statementID', async (req, res, next) => {
 const received = req.params.statementID as string;
	console.log("params received"); console.log(req.params);
	const statementID = parseInt(received, 10);
 console.log("value of 'statementID':"); console.log(statementID)

	const recent = await prisma.$queryRaw<Statement[]>`SELECT * FROM Statement ORDER BY lastSeenAsInt DESC LIMIT 2`;
	console.log("output of 'recent' raw query:"); console.log(recent);
	let fresh: number[] = [];
	for (let i = 0; i < recent.length; i++) {
		fresh.push(recent[i].statementID);
	}
	console.log("contents of fresh:"); console.log(fresh);
	const lastOne = (fresh: number[], statementID: number) => {
		if (fresh[0] === statementID) {
			return fresh[1];
		} else {
			return fresh[0];
		}
	}
	console.log("lastOne result:"); console.log(lastOne(fresh, statementID));

	const oldest = await prisma.$queryRaw<Statement[]>`SELECT * FROM Statement ORDER BY lastSeenAsInt ASC LIMIT 2`;
	console.log("output of oldest query:"); console.log(oldest);
	let stale: number[] = [];
	for (let i = 0; i < oldest.length; i++) {
		stale.push(oldest[i].statementID);
	}
	console.log("contents of stale:"); console.log(stale);
	const nextOne = (stale: number[], statementID: number) => {
		if (stale[0] === statementID) {
			return stale[1];
		} else {
			return stale[0];
		}
	}
	console.log("resulting nextOne:"); console.log(nextOne(stale, statementID));


 try 
 {{console.log("check statementID:"); console.log(statementID);
		const statement = await prisma.statement.findUnique({
  where: {
   statementID: statementID,
  }
 });
// console.log(statement); //troubleshooting tool 
const prevStatement = await prisma.statement.findFirst({
	where: {
//		lastSeenAsInt: {
//			gte: big[0].lastSeenAsInt,
//			not: statement.lastSeenAsInt
//		},
		statementID: {
			not: statement.statementID,
			in: fresh
		}
	},
	rejectOnNotFound: true,
})
console.log("found as prevStatement:"); console.log(prevStatement);
const prevID = prevStatement.statementID;
const nextStatement = await prisma.statement.findFirst({
 where: {
//						lastSeenAsInt: {
//							lte: small[0].lastSeenAsInt,
//							equals: leastRecent
//						},
	statementID: {
//							not: prevID,
		notIn: [statement.statementID, prevID],
		in: stale
		}
		},
 });
	console.log("found as nextStatement:"); console.log(nextStatement);
 const nextID = nextStatement?.statementID;

 const output = [statement, nextID, prevID]; console.log("value of 'output':"); console.log(output); //troubleshooting tool

 res.json({statement: statement, nextID: nextID, prevID: prevID})}}
 catch (e) {console.log(e)};
 })

export default router