vbox funzionanti

This commit is contained in:
2026-03-19 11:41:10 +01:00
parent 538d6a6bec
commit b7f7c1f7c0
32 changed files with 6043 additions and 262 deletions
+78
View File
@@ -0,0 +1,78 @@
import apiClient from './client'
import type {
AssignedUserResponse,
MailboxBriefResponse,
VirtualBoxAssignmentResponse,
VirtualBoxAssignRequest,
VirtualBoxCreate,
VirtualBoxListResponse,
VirtualBoxMailboxAssignRequest,
VirtualBoxResponse,
VirtualBoxRuleCreate,
VirtualBoxUpdate,
} from '@/types/api.types'
export const virtualBoxesApi = {
/** Crea una nuova Virtual Box. */
create: (data: VirtualBoxCreate) =>
apiClient.post<VirtualBoxResponse>('/virtual-boxes', data).then((r) => r.data),
/** Lista Virtual Box del tenant. */
list: (params?: { page?: number; page_size?: number; active_only?: boolean }) =>
apiClient
.get<VirtualBoxListResponse>('/virtual-boxes', { params })
.then((r) => r.data),
/** Virtual Box assegnate all'utente corrente. */
myVirtualBoxes: () =>
apiClient.get<VirtualBoxResponse[]>('/virtual-boxes/my').then((r) => r.data),
/** Dettaglio Virtual Box. */
get: (id: string) =>
apiClient.get<VirtualBoxResponse>(`/virtual-boxes/${id}`).then((r) => r.data),
/** Aggiorna Virtual Box (incluse caselle se fornito mailbox_ids). */
update: (id: string, data: VirtualBoxUpdate) =>
apiClient.patch<VirtualBoxResponse>(`/virtual-boxes/${id}`, data).then((r) => r.data),
/** Elimina Virtual Box. */
delete: (id: string) => apiClient.delete(`/virtual-boxes/${id}`),
/** Sostituisce le regole di una Virtual Box. */
replaceRules: (id: string, rules: VirtualBoxRuleCreate[]) =>
apiClient
.put<VirtualBoxResponse>(`/virtual-boxes/${id}/rules`, rules)
.then((r) => r.data),
// ─── Caselle reali ─────────────────────────────────────────────────────────
/** Imposta le caselle PEC reali associate (sostituzione completa). */
setMailboxes: (id: string, data: VirtualBoxMailboxAssignRequest) =>
apiClient
.put<VirtualBoxResponse>(`/virtual-boxes/${id}/mailboxes`, data)
.then((r) => r.data),
/** Lista caselle PEC reali associate. */
listMailboxes: (id: string) =>
apiClient
.get<MailboxBriefResponse[]>(`/virtual-boxes/${id}/mailboxes`)
.then((r) => r.data),
// ─── Assegnazioni utenti ───────────────────────────────────────────────────
/** Assegna utenti a una Virtual Box. */
assignUsers: (id: string, data: VirtualBoxAssignRequest) =>
apiClient
.post<VirtualBoxAssignmentResponse[]>(`/virtual-boxes/${id}/assignments`, data)
.then((r) => r.data),
/** Rimuovi assegnazione utente. */
unassignUser: (vboxId: string, userId: string) =>
apiClient.delete(`/virtual-boxes/${vboxId}/assignments/${userId}`),
/** Lista utenti assegnati. */
listAssignedUsers: (id: string) =>
apiClient
.get<AssignedUserResponse[]>(`/virtual-boxes/${id}/assignments`)
.then((r) => r.data),
}