Name generation and gradient calculation

This commit is contained in:
Ben Grant 2021-03-04 19:00:38 +11:00
parent 8e5954e0ca
commit ba1697ffc7
12 changed files with 418 additions and 54 deletions

View file

@ -1,24 +1,33 @@
const dayjs = require('dayjs');
const adjectives = require('../res/adjectives.json');
const crabs = require('../res/crabs.json');
String.prototype.capitalize = () => this.charAt(0).toUpperCase() + this.slice(1);
const generateId = (name) => {
const id = name.trim().toLowerCase().replace(/[^A-Za-z0-9 ]/g, '').replace(/\s+/g, '-');
const number = Math.floor(100000 + Math.random() * 900000);
return `${id}-${number}`;
};
const generateName = () => {
return `${adjectives[Math.floor(Math.random() * adjectives.length)].capitalize()} ${crabs[Math.floor(Math.random() * crabs.length)]} Crab`;
};
module.exports = async (req, res) => {
const { event } = req.body;
try {
const eventId = generateId(event.name);
const name = event.name.trim() === '' ? generateName() : event.name.trim();
const eventId = generateId(name);
const currentTime = dayjs().unix();
const entity = {
key: req.datastore.key(['Event', eventId]),
data: {
name: event.name.trim(),
name: name,
created: currentTime,
timezone: event.timezone,
startTime: event.startTime,
endTime: event.endTime,
dates: event.dates,
@ -29,9 +38,8 @@ module.exports = async (req, res) => {
res.status(201).send({
id: eventId,
name: event.name.trim(),
name: name,
created: currentTime,
timezone: event.timezone,
startTime: event.startTime,
endTime: event.endTime,
dates: event.dates,

View file

@ -7,9 +7,13 @@ module.exports = async (req, res) => {
try {
const event = (await req.datastore.get(req.datastore.key(['Event', eventId])))[0];
const query = req.datastore.createQuery('Person')
.filter('eventId', eventId)
.filter('name', person.name);
let personResult = (await req.datastore.runQuery(query))[0][0];
if (event) {
if (person) {
if (person && personResult === undefined) {
const currentTime = dayjs().unix();
// If password