From c1957025ec5d2a1e7f4e8ffaef379f5150be23b9 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Mon, 21 Sep 2020 23:31:10 -0700 Subject: [PATCH] fix: Dont dupe record search queries when paging results feat: Record queries via api tokens separately --- server/api/documents.js | 18 +++++++++++------- .../20200915010511-create-search-queries.js | 2 +- server/models/SearchQuery.js | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/server/api/documents.js b/server/api/documents.js index 6baf3466..6d13304b 100644 --- a/server/api/documents.js +++ b/server/api/documents.js @@ -605,13 +605,17 @@ router.post("documents.search", auth(), pagination(), async (ctx) => { }) ); - SearchQuery.create({ - userId: user.id, - teamId: user.teamId, - source: "app", - query, - results: totalCount, - }); + // When requesting subsequent pages of search results we don't want to record + // duplicate search query records + if (offset === 0) { + SearchQuery.create({ + userId: user.id, + teamId: user.teamId, + source: ctx.state.authType, + query, + results: totalCount, + }); + } const policies = presentPolicies(user, documents); diff --git a/server/migrations/20200915010511-create-search-queries.js b/server/migrations/20200915010511-create-search-queries.js index f97abcfa..ac5e29d0 100644 --- a/server/migrations/20200915010511-create-search-queries.js +++ b/server/migrations/20200915010511-create-search-queries.js @@ -20,7 +20,7 @@ module.exports = { }, }, source: { - type: Sequelize.ENUM("slack", "app"), + type: Sequelize.ENUM("slack", "app", "api"), allowNull: false, }, query: { diff --git a/server/models/SearchQuery.js b/server/models/SearchQuery.js index d6abc0ff..cd7258d3 100644 --- a/server/models/SearchQuery.js +++ b/server/models/SearchQuery.js @@ -10,7 +10,7 @@ const SearchQuery = sequelize.define( primaryKey: true, }, source: { - type: DataTypes.ENUM("slack", "app"), + type: DataTypes.ENUM("slack", "app", "api"), allowNull: false, }, query: {