mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
vbox funzionanti
This commit is contained in:
@@ -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),
|
||||
}
|
||||
Reference in New Issue
Block a user