diff --git a/database.go b/database.go index 9aafffd..3b4b215 100644 --- a/database.go +++ b/database.go @@ -81,6 +81,7 @@ type ViewsRequest struct { to string url string ref string + ua string } type RequestResultRow struct { @@ -161,6 +162,7 @@ func (request *ViewsRequest) buildFilter() (filters string, parameters []sql.Nam request.buildDateTimeFilter(¶meters), request.buildUrlFilter(¶meters), request.buildRefFilter(¶meters), + request.buildUseragentFilter(¶meters), } { if len(filter) > 0 { allFilters = append(allFilters, filter) @@ -202,3 +204,11 @@ func (request *ViewsRequest) buildRefFilter(namedArg *[]sql.NamedArg) (refFilter } return } + +func (request *ViewsRequest) buildUseragentFilter(namedArg *[]sql.NamedArg) (refFilter string) { + if len(request.ua) > 0 { + *namedArg = append(*namedArg, sql.Named("ua", "%"+request.ua+"%")) + refFilter = "useragent like :ua" + } + return +} diff --git a/main.go b/main.go index 0d8ebbf..edb5745 100644 --- a/main.go +++ b/main.go @@ -117,6 +117,7 @@ func requestStats(w http.ResponseWriter, r *http.Request) { to: queries.Get("to"), url: queries.Get("url"), ref: queries.Get("ref"), + ua: queries.Get("ua"), }) if e != nil { fmt.Println("Database request failed:", e)