27 lines
958 B
TypeScript
27 lines
958 B
TypeScript
import type { components } from '$lib/generated/api';
|
|
|
|
type NlQueryInterpretation = components['schemas']['NlQueryInterpretation'];
|
|
|
|
export function buildThemeRemovalUrl(
|
|
interp: NlQueryInterpretation,
|
|
removedTagName: string
|
|
): string {
|
|
const remaining = interp.resolvedTags.filter((t) => t.name !== removedTagName);
|
|
const params = new URLSearchParams();
|
|
|
|
const resolved = interp.resolvedPersons;
|
|
if (resolved.length >= 1) params.set('senderId', resolved[0].id);
|
|
if (resolved.length >= 2) params.set('receiverId', resolved[1].id);
|
|
if (interp.dateFrom) params.set('from', interp.dateFrom);
|
|
if (interp.dateTo) params.set('to', interp.dateTo);
|
|
if (interp.keywordsApplied && interp.keywords.length > 0) {
|
|
params.set('q', interp.keywords.join(' '));
|
|
}
|
|
|
|
remaining.forEach((tag) => params.append('tag', tag.name));
|
|
if (remaining.length > 0) params.set('tagOp', 'OR');
|
|
|
|
const qs = params.toString();
|
|
return qs ? `/documents?${qs}` : '/documents';
|
|
}
|