Dev database

This commit is contained in:
Ben Grant 2021-04-12 13:06:10 +10:00
parent 01a9b55b6a
commit ad9863f2de
10 changed files with 17 additions and 13 deletions

View file

@ -27,6 +27,10 @@ const datastore = new Datastore({
app.use(express.json()); app.use(express.json());
app.use((req, res, next) => { app.use((req, res, next) => {
req.datastore = datastore; req.datastore = datastore;
req.types = {
event: process.env.NODE_ENV === 'production' ? 'Event' : 'DevEvent',
person: process.env.NODE_ENV === 'production' ? 'Person' : 'DevPerson',
};
next(); next();
}); });
app.options('*', cors(corsOptions)); app.options('*', cors(corsOptions));
@ -43,5 +47,5 @@ app.post('/event/:eventId/people/:personName', login);
app.patch('/event/:eventId/people/:personName', updatePerson); app.patch('/event/:eventId/people/:personName', updatePerson);
app.listen(port, () => { app.listen(port, () => {
console.log(`Crabfit API listening at http://localhost:${port}`) console.log(`Crabfit API listening at http://localhost:${port} in ${process.env.NODE_ENV === 'production' ? 'prod' : 'dev'} mode`)
}); });

View file

@ -1,6 +1,6 @@
{ {
"name": "crabfit-backend", "name": "crabfit-backend",
"version": "1.0.0", "version": "1.1.0",
"description": "API for Crabfit", "description": "API for Crabfit",
"main": "index.js", "main": "index.js",
"author": "Ben Grant", "author": "Ben Grant",

View file

@ -24,7 +24,7 @@ module.exports = async (req, res) => {
const currentTime = dayjs().unix(); const currentTime = dayjs().unix();
const entity = { const entity = {
key: req.datastore.key(['Event', eventId]), key: req.datastore.key([req.types.event, eventId]),
data: { data: {
name: name, name: name,
created: currentTime, created: currentTime,

View file

@ -6,8 +6,8 @@ module.exports = async (req, res) => {
const { person } = req.body; const { person } = req.body;
try { try {
const event = (await req.datastore.get(req.datastore.key(['Event', eventId])))[0]; const event = (await req.datastore.get(req.datastore.key([req.types.event, eventId])))[0];
const query = req.datastore.createQuery('Person') const query = req.datastore.createQuery(req.types.person)
.filter('eventId', eventId) .filter('eventId', eventId)
.filter('name', person.name); .filter('name', person.name);
let personResult = (await req.datastore.runQuery(query))[0][0]; let personResult = (await req.datastore.runQuery(query))[0][0];
@ -23,7 +23,7 @@ module.exports = async (req, res) => {
} }
const entity = { const entity = {
key: req.datastore.key('Person'), key: req.datastore.key(req.types.person),
data: { data: {
name: person.name.trim(), name: person.name.trim(),
password: hash, password: hash,

View file

@ -2,7 +2,7 @@ module.exports = async (req, res) => {
const { eventId } = req.params; const { eventId } = req.params;
try { try {
const event = (await req.datastore.get(req.datastore.key(['Event', eventId])))[0]; const event = (await req.datastore.get(req.datastore.key([req.types.event, eventId])))[0];
if (event) { if (event) {
res.send({ res.send({

View file

@ -2,7 +2,7 @@ module.exports = async (req, res) => {
const { eventId } = req.params; const { eventId } = req.params;
try { try {
const query = req.datastore.createQuery('Person').filter('eventId', eventId); const query = req.datastore.createQuery(req.types.person).filter('eventId', eventId);
let people = (await req.datastore.runQuery(query))[0]; let people = (await req.datastore.runQuery(query))[0];
people = people.map(person => ({ people = people.map(person => ({
name: person.name, name: person.name,

View file

@ -5,7 +5,7 @@ module.exports = async (req, res) => {
const { person } = req.body; const { person } = req.body;
try { try {
const query = req.datastore.createQuery('Person') const query = req.datastore.createQuery(req.types.person)
.filter('eventId', eventId) .filter('eventId', eventId)
.filter('name', personName); .filter('name', personName);
let personResult = (await req.datastore.runQuery(query))[0][0]; let personResult = (await req.datastore.runQuery(query))[0][0];

View file

@ -5,8 +5,8 @@ module.exports = async (req, res) => {
let personCount = null; let personCount = null;
try { try {
const eventQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', 'Event'); const eventQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', req.types.event);
const personQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', 'Person'); const personQuery = req.datastore.createQuery(['__Stat_Kind__']).filter('kind_name', req.types.person);
eventCount = (await req.datastore.runQuery(eventQuery))[0][0].count; eventCount = (await req.datastore.runQuery(eventQuery))[0][0].count;
personCount = (await req.datastore.runQuery(personQuery))[0][0].count; personCount = (await req.datastore.runQuery(personQuery))[0][0].count;

View file

@ -5,7 +5,7 @@ module.exports = async (req, res) => {
const { person } = req.body; const { person } = req.body;
try { try {
const query = req.datastore.createQuery('Person') const query = req.datastore.createQuery(req.types.person)
.filter('eventId', eventId) .filter('eventId', eventId)
.filter('name', personName); .filter('name', personName);
let personResult = (await req.datastore.runQuery(query))[0][0]; let personResult = (await req.datastore.runQuery(query))[0][0];

View file

@ -1,6 +1,6 @@
{ {
"name": "crabfit-frontend", "name": "crabfit-frontend",
"version": "0.1.0", "version": "1.0.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@emotion/react": "^11.1.5", "@emotion/react": "^11.1.5",