Event ID conflict management
🤜💥🤛
This commit is contained in:
parent
f0174bbef1
commit
a3666930a0
|
|
@ -20,9 +20,22 @@ module.exports = async (req, res) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const name = event.name.trim() === '' ? generateName() : event.name.trim();
|
const name = event.name.trim() === '' ? generateName() : event.name.trim();
|
||||||
const eventId = generateId(name);
|
let eventId = generateId(name);
|
||||||
const currentTime = dayjs().unix();
|
const currentTime = dayjs().unix();
|
||||||
|
|
||||||
|
let eventResult;
|
||||||
|
do {
|
||||||
|
const query = req.datastore.createQuery(req.types.event)
|
||||||
|
.select('__key__')
|
||||||
|
.filter('__key__', req.datastore.key([req.types.event, eventId]));
|
||||||
|
|
||||||
|
eventResult = (await req.datastore.runQuery(query))[0][0];
|
||||||
|
|
||||||
|
if (eventResult !== undefined) {
|
||||||
|
eventId = generateId(name);
|
||||||
|
}
|
||||||
|
} while (eventResult !== undefined);
|
||||||
|
|
||||||
const entity = {
|
const entity = {
|
||||||
key: req.datastore.key([req.types.event, eventId]),
|
key: req.datastore.key([req.types.event, eventId]),
|
||||||
data: {
|
data: {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue