feature: Organizations form UX flow now matches the needs.
This commit is contained in:
@@ -10,13 +10,21 @@ export interface CounterpartSearchResultDto {
|
||||
|
||||
export interface CounterpartItemDto {
|
||||
id: string;
|
||||
kind: 'LINK' | 'INVITATION';
|
||||
requestedByOrganizationId: string | null;
|
||||
counterpartOrganizationId: string | null;
|
||||
organizationName: string;
|
||||
ownerEmail: string;
|
||||
phone: string | null;
|
||||
status: 'PENDING' | 'ACTIVE' | 'REJECTED' | 'EXPIRED';
|
||||
invitationUrl: string | null;
|
||||
createdAt: string;
|
||||
acceptedAt: string | null;
|
||||
}
|
||||
|
||||
export interface OrganizationInvitationHistoryItemDto {
|
||||
id: string;
|
||||
organizationName: string;
|
||||
ownerEmail: string;
|
||||
status: 'PENDING' | 'ACTIVE' | 'REJECTED' | 'EXPIRED';
|
||||
createdAt: string;
|
||||
acceptedAt: string | null;
|
||||
}
|
||||
@@ -32,6 +40,14 @@ export const organizationApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
listInvitations: async (): Promise<{
|
||||
success: boolean;
|
||||
data: { items: OrganizationInvitationHistoryItemDto[] };
|
||||
}> => {
|
||||
const response = await apiClient.get('/organizations/invitations');
|
||||
return response.data;
|
||||
},
|
||||
|
||||
createLink: async (
|
||||
targetOrganizationId: string,
|
||||
): Promise<{ success: boolean; data: { id: string; status: 'PENDING' | 'ACTIVE' | 'REJECTED' } }> => {
|
||||
@@ -39,6 +55,19 @@ export const organizationApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
respondLink: async (
|
||||
linkId: string,
|
||||
action: 'ACCEPT' | 'REJECT',
|
||||
): Promise<{ success: boolean; data: { id: string; status: 'PENDING' | 'ACTIVE' | 'REJECTED' } }> => {
|
||||
const response = await apiClient.patch(`/organizations/links/${linkId}/respond`, { action });
|
||||
return response.data;
|
||||
},
|
||||
|
||||
deleteLink: async (linkId: string): Promise<{ success: boolean; data: { id: string }; message: string }> => {
|
||||
const response = await apiClient.delete(`/organizations/links/${linkId}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
invite: async (body: {
|
||||
organizationName: string;
|
||||
ownerEmail: string;
|
||||
@@ -48,6 +77,13 @@ export const organizationApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
getInvitationLink: async (
|
||||
invitationId: string,
|
||||
): Promise<{ success: boolean; data: { invitationId: string; invitationUrl: string } }> => {
|
||||
const response = await apiClient.post(`/organizations/invitations/${invitationId}/link`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
previewInvite: async (
|
||||
token: string,
|
||||
): Promise<{
|
||||
|
||||
Reference in New Issue
Block a user