mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 12:47:13 +01:00
Added query options.
This commit is contained in:
parent
2559263e91
commit
688705dbb3
6 changed files with 42 additions and 25 deletions
|
|
@ -4,7 +4,7 @@ import { MYSQL, POSTGRESQL, getDatabaseType } from 'lib/db';
|
|||
import { FILTER_COLUMNS, IGNORED_FILTERS, SESSION_COLUMNS } from './constants';
|
||||
import { loadWebsite } from './load';
|
||||
import { maxDate } from './date';
|
||||
import { QueryFilters } from './types';
|
||||
import { QueryFilters, QueryOptions } from './types';
|
||||
|
||||
const MYSQL_DATE_FORMATS = {
|
||||
minute: '%Y-%m-%d %H:%i:00',
|
||||
|
|
@ -88,13 +88,18 @@ function getFilterQuery(filters = {}): string {
|
|||
return query.join('\n');
|
||||
}
|
||||
|
||||
async function parseFilters(websiteId, filters: QueryFilters & { [key: string]: any } = {}) {
|
||||
async function parseFilters(
|
||||
websiteId,
|
||||
filters: QueryFilters & { [key: string]: any } = {},
|
||||
options: QueryOptions = {},
|
||||
) {
|
||||
const website = await loadWebsite(websiteId);
|
||||
|
||||
return {
|
||||
joinSession: Object.keys(filters).find(key => SESSION_COLUMNS[key])
|
||||
? `inner join session on website_event.session_id = session.session_id`
|
||||
: '',
|
||||
joinSession:
|
||||
options?.joinSession || Object.keys(filters).find(key => SESSION_COLUMNS.includes(key))
|
||||
? `inner join session on website_event.session_id = session.session_id`
|
||||
: '',
|
||||
filterQuery: getFilterQuery(filters),
|
||||
params: {
|
||||
...filters,
|
||||
|
|
|
|||
|
|
@ -137,11 +137,11 @@ export interface QueryFilters {
|
|||
unit?: string;
|
||||
domain?: string;
|
||||
eventType?: number;
|
||||
eventName?: string;
|
||||
url?: string;
|
||||
referrer?: string;
|
||||
title?: string;
|
||||
query?: string;
|
||||
event?: string;
|
||||
os?: string;
|
||||
browser?: string;
|
||||
device?: string;
|
||||
|
|
@ -150,3 +150,7 @@ export interface QueryFilters {
|
|||
city?: string;
|
||||
language?: string;
|
||||
}
|
||||
|
||||
export interface QueryOptions {
|
||||
joinSession?: boolean;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue