From a20c0d3ed3876fba83c6aa1c374418e036533aee Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Sat, 19 Apr 2025 10:05:01 +0200 Subject: [PATCH] enhance: use QueryStoreId to fetch query --- src/stores/admin/club/queryBuilder.ts | 11 +++++++ .../club/newsletter/newsletter.models.ts | 3 -- .../club/newsletter/NewsletterRecipients.vue | 30 ++++++++----------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/stores/admin/club/queryBuilder.ts b/src/stores/admin/club/queryBuilder.ts index 2aad8af..1633c3c 100644 --- a/src/stores/admin/club/queryBuilder.ts +++ b/src/stores/admin/club/queryBuilder.ts @@ -2,6 +2,7 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import type { TableMeta } from "@/viewmodels/admin/configuration/query.models"; import type { DynamicQueryStructure, FieldType } from "@/types/dynamicQueries"; +import type { AxiosResponse } from "axios"; export const useQueryBuilderStore = defineStore("queryBuilder", { state: () => { @@ -58,6 +59,16 @@ export const useQueryBuilderStore = defineStore("queryBuilder", { this.loadingData = "failed"; }); }, + async sendQueryByStoreId( + id: string, + offset = 0, + count = 25, + noLimit: boolean = false + ): Promise> { + return await http.post( + `/admin/querybuilder/query/${id}?` + (noLimit ? `noLimit=true` : `offset=${offset}&count=${count}`) + ); + }, clearResults() { this.data = []; this.totalLength = 0; diff --git a/src/viewmodels/admin/club/newsletter/newsletter.models.ts b/src/viewmodels/admin/club/newsletter/newsletter.models.ts index 31926bc..84d2988 100644 --- a/src/viewmodels/admin/club/newsletter/newsletter.models.ts +++ b/src/viewmodels/admin/club/newsletter/newsletter.models.ts @@ -1,5 +1,3 @@ -import type { QueryViewModel } from "../../configuration/query.models"; - export interface NewsletterViewModel { id: number; title: string; @@ -9,7 +7,6 @@ export interface NewsletterViewModel { newsletterSignatur: string; isSent: boolean; recipientsByQueryId?: string | null; - recipientsByQuery?: QueryViewModel | null; } export interface CreateNewsletterViewModel { diff --git a/src/views/admin/club/newsletter/NewsletterRecipients.vue b/src/views/admin/club/newsletter/NewsletterRecipients.vue index dac8ed7..5335e82 100644 --- a/src/views/admin/club/newsletter/NewsletterRecipients.vue +++ b/src/views/admin/club/newsletter/NewsletterRecipients.vue @@ -81,6 +81,7 @@ import { useQueryStoreStore } from "@/stores/admin/configuration/queryStore"; import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder"; import cloneDeep from "lodash.clonedeep"; import MemberSearchSelect from "@/components/admin/MemberSearchSelect.vue"; +import type { FieldType } from "@/types/dynamicQueries";