|
36 | 36 | //! ```
|
37 | 37 |
|
38 | 38 | use crate::classes::{CategoryId, CategorySpec};
|
39 |
| -use crate::AwClient; |
40 | 39 | use serde::{Deserialize, Serialize};
|
41 | 40 |
|
42 | 41 | /// Browser application names mapped by browser type
|
@@ -286,169 +285,26 @@ browser_events = sort_by_timestamp(browser_events)",
|
286 | 285 |
|
287 | 286 | /// Build a full desktop query using default localhost:5600 configuration
|
288 | 287 | pub fn full_desktop_query(params: &DesktopQueryParams) -> String {
|
289 |
| - let mut query = QueryParams::Desktop(params.clone()).canonical_events_with_classes(); |
| 288 | + let mut query = QueryParams::Desktop(params.clone()).canonical_events(); |
290 | 289 |
|
291 | 290 | // Add basic event aggregations
|
292 |
| - query.push_str(&format!( |
293 |
| - " |
294 |
| - title_events = sort_by_duration(merge_events_by_keys(events, [\"app\", \"title\"])); |
295 |
| - app_events = sort_by_duration(merge_events_by_keys(title_events, [\"app\"])); |
296 |
| - cat_events = sort_by_duration(merge_events_by_keys(events, [\"$category\"])); |
297 |
| - duration = sum_durations(events); |
298 |
| - ", |
299 |
| - )); |
300 |
| - |
301 |
| - // Add browser-specific query parts if browser buckets exist |
302 |
| - if !params.base.bid_browsers.is_empty() { |
303 |
| - query.push_str(&format!( |
304 |
| - " |
305 |
| - browser_events = split_url_events(browser_events); |
306 |
| - browser_urls = merge_events_by_keys(browser_events, [\"url\"]); |
307 |
| - browser_urls = sort_by_duration(browser_urls); |
308 |
| - browser_domains = merge_events_by_keys(browser_events, [\"$domain\"]); |
309 |
| - browser_domains = sort_by_duration(browser_domains); |
310 |
| - browser_duration = sum_durations(browser_events); |
311 |
| - ", |
312 |
| - )); |
313 |
| - } else { |
314 |
| - query.push_str( |
315 |
| - " |
316 |
| - browser_events = []; |
317 |
| - browser_urls = []; |
318 |
| - browser_domains = []; |
319 |
| - browser_duration = 0; |
320 |
| - ", |
321 |
| - ); |
322 |
| - } |
323 |
| - |
324 |
| - // Add return statement |
325 |
| - query.push_str( |
326 |
| - " |
327 |
| - RETURN = { |
328 |
| - \"events\": events, |
329 |
| - \"window\": { |
330 |
| - \"app_events\": app_events, |
331 |
| - \"title_events\": title_events, |
332 |
| - \"cat_events\": cat_events, |
333 |
| - \"active_events\": not_afk, |
334 |
| - \"duration\": duration |
335 |
| - }, |
336 |
| - \"browser\": { |
337 |
| - \"domains\": browser_domains, |
338 |
| - \"urls\": browser_urls, |
339 |
| - \"duration\": browser_duration |
340 |
| - } |
341 |
| - }; |
342 |
| - ", |
343 |
| - ); |
344 |
| - |
345 |
| - query |
346 |
| -} |
347 |
| - |
348 |
| -/// Build a full desktop query using client configuration |
349 |
| -pub fn full_desktop_query_from_client( |
350 |
| - params: &DesktopQueryParams, |
351 |
| - client: &crate::AwClient, |
352 |
| -) -> String { |
353 |
| - let mut query = |
354 |
| - QueryParams::Desktop(params.clone()).canonical_events_with_classes_from_client(client); |
355 |
| - |
356 |
| - // Add basic event aggregations |
357 |
| - query.push_str(&format!( |
358 |
| - " |
359 |
| - title_events = sort_by_duration(merge_events_by_keys(events, [\"app\", \"title\"])); |
360 |
| - app_events = sort_by_duration(merge_events_by_keys(title_events, [\"app\"])); |
361 |
| - cat_events = sort_by_duration(merge_events_by_keys(events, [\"$category\"])); |
362 |
| - app_events = limit_events(app_events, {}); |
363 |
| - title_events = limit_events(title_events, {}); |
364 |
| - duration = sum_durations(events); |
365 |
| - ", |
366 |
| - DEFAULT_LIMIT, DEFAULT_LIMIT |
367 |
| - )); |
368 |
| - |
369 |
| - // Add browser-specific query parts if browser buckets exist |
370 |
| - if !params.base.bid_browsers.is_empty() { |
371 |
| - query.push_str(&format!( |
372 |
| - " |
373 |
| - browser_events = split_url_events(browser_events); |
374 |
| - browser_urls = merge_events_by_keys(browser_events, [\"url\"]); |
375 |
| - browser_urls = sort_by_duration(browser_urls); |
376 |
| - browser_domains = merge_events_by_keys(browser_events, [\"$domain\"]); |
377 |
| - browser_domains = sort_by_duration(browser_domains); |
378 |
| - browser_duration = sum_durations(browser_events); |
379 |
| - " |
380 |
| - )); |
381 |
| - } else { |
382 |
| - query.push_str( |
383 |
| - " |
384 |
| - browser_events = []; |
385 |
| - browser_urls = []; |
386 |
| - browser_domains = []; |
387 |
| - browser_duration = 0; |
388 |
| - ", |
389 |
| - ); |
390 |
| - } |
391 |
| - |
392 |
| - // Add return statement |
393 |
| - query.push_str( |
394 |
| - " |
395 |
| - RETURN = { |
396 |
| - \"events\": events, |
397 |
| - \"window\": { |
398 |
| - \"app_events\": app_events, |
399 |
| - \"title_events\": title_events, |
400 |
| - \"cat_events\": cat_events, |
401 |
| - \"active_events\": not_afk, |
402 |
| - \"duration\": duration |
403 |
| - }, |
404 |
| - \"browser\": { |
405 |
| - \"domains\": browser_domains, |
406 |
| - \"urls\": browser_urls, |
407 |
| - \"duration\": browser_duration |
408 |
| - } |
409 |
| - }; |
410 |
| - ", |
411 |
| - ); |
412 |
| - |
413 |
| - query |
414 |
| -} |
415 |
| - |
416 |
| -/// Build a full desktop query using blocking client configuration |
417 |
| -pub fn full_desktop_query_from_blocking_client( |
418 |
| - params: &DesktopQueryParams, |
419 |
| - client: &crate::blocking::AwClient, |
420 |
| -) -> String { |
421 |
| - let mut query = QueryParams::Desktop(params.clone()) |
422 |
| - .canonical_events_with_classes_from_blocking_client(client); |
423 |
| - |
424 |
| - // Add basic event aggregations |
425 |
| - query.push_str(&format!( |
426 |
| - " |
| 291 | + query.push_str(&" |
427 | 292 | title_events = sort_by_duration(merge_events_by_keys(events, [\"app\", \"title\"]));
|
428 | 293 | app_events = sort_by_duration(merge_events_by_keys(title_events, [\"app\"]));
|
429 | 294 | cat_events = sort_by_duration(merge_events_by_keys(events, [\"$category\"]));
|
430 |
| - app_events = limit_events(app_events, {}); |
431 |
| - title_events = limit_events(title_events, {}); |
432 | 295 | duration = sum_durations(events);
|
433 |
| - ", |
434 |
| - DEFAULT_LIMIT, DEFAULT_LIMIT |
435 |
| - )); |
| 296 | + ".to_string()); |
436 | 297 |
|
437 | 298 | // Add browser-specific query parts if browser buckets exist
|
438 | 299 | if !params.base.bid_browsers.is_empty() {
|
439 |
| - query.push_str(&format!( |
440 |
| - " |
| 300 | + query.push_str(&" |
441 | 301 | browser_events = split_url_events(browser_events);
|
442 | 302 | browser_urls = merge_events_by_keys(browser_events, [\"url\"]);
|
443 | 303 | browser_urls = sort_by_duration(browser_urls);
|
444 |
| - browser_urls = limit_events(browser_urls, {}); |
445 | 304 | browser_domains = merge_events_by_keys(browser_events, [\"$domain\"]);
|
446 | 305 | browser_domains = sort_by_duration(browser_domains);
|
447 |
| - browser_domains = limit_events(browser_domains, {}); |
448 | 306 | browser_duration = sum_durations(browser_events);
|
449 |
| - ", |
450 |
| - DEFAULT_LIMIT, DEFAULT_LIMIT |
451 |
| - )); |
| 307 | + ".to_string()); |
452 | 308 | } else {
|
453 | 309 | query.push_str(
|
454 | 310 | "
|
|
0 commit comments