Skip to content

Commit 858d37c

Browse files
fix(adoption-insights): add redirection links and cast count as integers (#496)
1 parent f0711e7 commit 858d37c

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

  • workspaces/adoption-insights/plugins/adoption-insights-backend/src/database/adapters

workspaces/adoption-insights/plugins/adoption-insights-backend/src/database/adapters/BaseAdapter.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,16 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
121121
)
122122
.select(
123123
'ge.date',
124-
db.raw('COUNT(*) as total_users'),
124+
db.raw('CAST(COUNT(*) as INTEGER) as total_users'),
125125
db.raw(
126-
`SUM(CASE WHEN fs.first_seen >= ${this.getFormatedDate(
126+
`CAST(SUM(CASE WHEN fs.first_seen >= ${this.getFormatedDate(
127127
'ge.date',
128-
)} THEN 1 ELSE 0 END) as new_users`,
128+
)} THEN 1 ELSE 0 END) as INTEGER) as new_users`,
129129
),
130130
db.raw(
131-
`SUM(CASE WHEN fs.first_seen < ${this.getFormatedDate(
131+
`CAST(SUM(CASE WHEN fs.first_seen < ${this.getFormatedDate(
132132
'ge.date',
133-
)} THEN 1 ELSE 0 END) as returning_users`,
133+
)} THEN 1 ELSE 0 END) as INTEGER) as returning_users`,
134134
),
135135
)
136136
.groupBy('ge.date')
@@ -144,7 +144,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
144144
const { start_date, end_date } = this.filters!;
145145
const db = this.db;
146146
const query = db('events')
147-
.select(db.raw('COUNT(*) as logged_in_users'))
147+
.select(db.raw('CAST(COUNT(*) as INTEGER) as logged_in_users'))
148148
.from(
149149
db('events')
150150
.select('user_ref')
@@ -167,7 +167,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
167167
const query = db('events')
168168
.select(
169169
db.raw(`context->>'entityRef' AS entityref`),
170-
db.raw('COUNT(*) AS count'),
170+
db.raw('CAST(COUNT(*) as INTEGER) AS count'),
171171
db.raw(this.getLastUsedDate()),
172172
)
173173
.where({
@@ -190,7 +190,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
190190
const query = db('events')
191191
.select(
192192
db.raw(this.getDynamicDateGrouping()),
193-
db.raw('COUNT(*) AS count'),
193+
db.raw('CAST(COUNT(*) as INTEGER) AS count'),
194194
)
195195
.whereBetween('created_at', [start_date, end_date])
196196
.andWhere('action', 'search')
@@ -208,15 +208,18 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
208208
const query = db('events')
209209
.select(
210210
db.raw(`context->>'routeRef' AS entityref`),
211-
db.raw('COUNT(*) AS count'),
211+
db.raw('CAST(COUNT(*) as INTEGER) AS count'),
212212
db.raw(this.getLastUsedDate()),
213+
db.raw(`COALESCE(attributes->>'kind', '') AS kind`),
214+
db.raw(`COALESCE(attributes->>'name', '') AS name`),
215+
db.raw(`COALESCE(attributes->>'namespace', '') AS namespace`),
213216
)
214217
.where({
215218
action: 'navigate',
216219
plugin_id: 'techdocs',
217220
})
218221
.whereBetween('created_at', [start_date, end_date])
219-
.groupByRaw('entityref')
222+
.groupByRaw(`entityref, name, kind, namespace`)
220223
.limit(Number(limit) || 3);
221224

222225
return query.then(data => this.getResponseData(data, 'last_used'));
@@ -233,7 +236,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
233236
db.raw(`attributes->>'name' AS name`),
234237
db.raw(`attributes->>'namespace' AS namespace`),
235238
db.raw(this.getLastUsedDate()),
236-
db.raw('COUNT(*) AS count'),
239+
db.raw('CAST(COUNT(*) as INTEGER) AS count'),
237240
)
238241
.whereBetween('created_at', [start_date, end_date])
239242
.andWhere(db.raw(`attributes->>'kind' IS NOT NULL`))
@@ -260,7 +263,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
260263
const trend_data_columns = [
261264
'plugin_id',
262265
db.raw(this.getDynamicDateGrouping()),
263-
db.raw('COUNT(*) AS count'),
266+
db.raw('CAST(COUNT(*) as INTEGER) AS count'),
264267
];
265268

266269
return this.selectFromEvents(qb, trend_data_columns, dateRange).groupBy(
@@ -273,7 +276,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
273276
const getPluginCountsQuery = (qb: Knex.QueryBuilder) => {
274277
const plugin_counts_columns = [
275278
'plugin_id',
276-
db.raw('COUNT(*) AS visit_count'),
279+
db.raw('CAST(COUNT(*) as INTEGER) AS visit_count'),
277280
];
278281
return this.selectFromEvents(
279282
qb,

0 commit comments

Comments
 (0)