This commit is contained in:
michael committed 2026-09-23 11:09:10 +00:00
1 parent 9be6c6e36a
commit fa6db04370
16 files changed
+1123 -118

No files matched your search

+24 -2
View File
@@ -16,7 +16,8 @@ import type {
TicketSearchResult,
TodoPriority,
TodoStatus,
WorkType
WorkType,
ZammadSessionArticleQueueItem
} from "./types";
type CreateSessionPayload = {
@@ -29,6 +30,8 @@ type CreateSessionPayload = {
durationSeconds: number;
zammadLookup?: boolean;
projectTeamspaceEntryId?: string | null;
billingStatus?: BillingStatus;
createZammadArticle?: boolean;
};
type DeleteSessionResult = {
@@ -198,6 +201,10 @@ export function updateCurrentUser(payload: {
newPassword?: string;
zammadApiToken?: string;
zammadEmailSessionWebhookEnabled?: boolean;
sessionBillingPromptEnabled?: boolean;
zammadSessionNoteDefaultEnabled?: boolean;
zammadTimeUnitRoundingEnabled?: boolean;
zammadTimeUnitRoundingMinutes?: number;
}) {
return request<{ user: AuthUser }>("/api/auth/me", {
method: "PATCH",
@@ -681,6 +688,21 @@ export function createSession(payload: CreateSessionPayload) {
});
}
export function getZammadSessionArticleQueue() {
return request<{ queue: ZammadSessionArticleQueueItem[] }>("/api/zammad/session-article-queue");
}
export function retryZammadSessionArticleQueue() {
return request<{
sent: number;
failed: number;
queue: ZammadSessionArticleQueueItem[];
results: Array<{ id: string; status: "sent" | "failed"; error?: string; zammadArticleId?: number | null }>;
}>("/api/zammad/session-article-queue/retry", {
method: "POST"
});
}
export function lookupTicket(ticketNumber: string, source: "local" | "zammad" = "local") {
const params = new URLSearchParams({ ticketNumber });
@@ -771,7 +793,7 @@ export function getTicketDetails(
ticketId: string,
filters: {
month?: string;
status?: "all" | "open" | "billed" | "non_billable";
status?: "all" | "open" | "billable" | "billed" | "non_billable";
source?: "all" | "manual" | "recurring";
} = {}
) {