From 2de91c7db2c208f392caa255909b6df57a960996 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Tue, 4 Aug 2020 17:15:17 -0400 Subject: [PATCH] Use cross-platform insert --- api/src/services/items.ts | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/api/src/services/items.ts b/api/src/services/items.ts index fcda049b47..df45eba90c 100644 --- a/api/src/services/items.ts +++ b/api/src/services/items.ts @@ -82,12 +82,17 @@ export default class ItemsService implements AbstractService { // string / uuid primary let primaryKey = payloadWithoutAlias[primaryKeyField]; - const result = await trx - .insert(payloadWithoutAlias, primaryKeyField) - .into(this.collection); + await trx.insert(payloadWithoutAlias).into(this.collection); // Auto-incremented id - if (!primaryKey) primaryKey = result[0]; + if (!primaryKey) { + const result = await trx + .select(primaryKeyField) + .from(this.collection) + .orderBy(primaryKeyField, 'desc') + .first(); + primaryKey = result[primaryKeyField]; + } primaryKeys.push(primaryKey); } @@ -112,8 +117,15 @@ export default class ItemsService implements AbstractService { const activityPrimaryKeys: PrimaryKey[] = []; for (const activityRecord of activityRecords) { - const result = await trx.insert(activityRecord, 'id').into('directus_activity'); - activityPrimaryKeys.push(result[0]); + await trx.insert(activityRecord).into('directus_activity'); + let primaryKey; + const result = await trx + .select('id') + .from('directus_activity') + .orderBy(primaryKeyField, 'desc') + .first(); + primaryKey = result[primaryKeyField]; + activityPrimaryKeys.push(primaryKey); } const revisionRecords = activityPrimaryKeys.map((key, index) => ({ @@ -248,10 +260,15 @@ export default class ItemsService implements AbstractService { const activityPrimaryKeys: PrimaryKey[] = []; for (const activityRecord of activityRecords) { + await trx.insert(activityRecord).into('directus_activity'); + let primaryKey; const result = await trx - .insert(activityRecord, 'id') - .into('directus_activity'); - activityPrimaryKeys.push(result[0]); + .select('id') + .from('directus_activity') + .orderBy(primaryKeyField, 'desc') + .first(); + primaryKey = result[primaryKeyField]; + activityPrimaryKeys.push(primaryKey); } const itemsService = new ItemsService(this.collection, { knex: trx });