mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-28 21:49:40 +02:00
chore: biome
This commit is contained in:
parent
c53bd54fd4
commit
4d02e8768d
8 changed files with 120 additions and 109 deletions
|
|
@ -9,6 +9,7 @@ import type React from "react";
|
||||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||||
import { activeChathatUIAtom, activeChatIdAtom } from "@/atoms/chats/ui.atoms";
|
import { activeChathatUIAtom, activeChatIdAtom } from "@/atoms/chats/ui.atoms";
|
||||||
import { llmPreferencesAtom } from "@/atoms/llm-config/llm-config-query.atoms";
|
import { llmPreferencesAtom } from "@/atoms/llm-config/llm-config-query.atoms";
|
||||||
|
import { myAccessAtom } from "@/atoms/members/members-query.atoms";
|
||||||
import { activeSearchSpaceIdAtom } from "@/atoms/search-spaces/search-space-query.atoms";
|
import { activeSearchSpaceIdAtom } from "@/atoms/search-spaces/search-space-query.atoms";
|
||||||
import { ChatPanelContainer } from "@/components/chat/ChatPanel/ChatPanelContainer";
|
import { ChatPanelContainer } from "@/components/chat/ChatPanel/ChatPanelContainer";
|
||||||
import { DashboardBreadcrumb } from "@/components/dashboard-breadcrumb";
|
import { DashboardBreadcrumb } from "@/components/dashboard-breadcrumb";
|
||||||
|
|
@ -17,7 +18,6 @@ import { AppSidebarProvider } from "@/components/sidebar/AppSidebarProvider";
|
||||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
||||||
import { Separator } from "@/components/ui/separator";
|
import { Separator } from "@/components/ui/separator";
|
||||||
import { SidebarInset, SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar";
|
import { SidebarInset, SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar";
|
||||||
import { myAccessAtom } from "@/atoms/members/members-query.atoms";
|
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
export function DashboardClientLayout({
|
export function DashboardClientLayout({
|
||||||
|
|
|
||||||
|
|
@ -46,14 +46,21 @@ import { motion } from "motion/react";
|
||||||
import { useParams, useRouter } from "next/navigation";
|
import { useParams, useRouter } from "next/navigation";
|
||||||
import { useCallback, useMemo, useState } from "react";
|
import { useCallback, useMemo, useState } from "react";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import { updateMemberMutationAtom, deleteMemberMutationAtom } from "@/atoms/members/members-mutation.atoms";
|
import {
|
||||||
import { myAccessAtom } from "@/atoms/members/members-query.atoms";
|
createInviteMutationAtom,
|
||||||
import { createInviteMutationAtom, deleteInviteMutationAtom } from '@/atoms/invites/invites-mutation.atoms';
|
deleteInviteMutationAtom,
|
||||||
import type { DeleteInviteRequest } from '@/contracts/types/invites.types';
|
} from "@/atoms/invites/invites-mutation.atoms";
|
||||||
import type { UpdateMembershipRequest, DeleteMembershipRequest} from "@/contracts/types/members.types";
|
import {
|
||||||
|
deleteMemberMutationAtom,
|
||||||
|
updateMemberMutationAtom,
|
||||||
|
} from "@/atoms/members/members-mutation.atoms";
|
||||||
|
import { membersAtom, myAccessAtom } from "@/atoms/members/members-query.atoms";
|
||||||
import { permissionsAtom } from "@/atoms/permissions/permissions-query.atoms";
|
import { permissionsAtom } from "@/atoms/permissions/permissions-query.atoms";
|
||||||
import { membersAtom } from "@/atoms/members/members-query.atoms";
|
import {
|
||||||
import { invitesApiService } from '@/lib/apis/invites-api.service';
|
createRoleMutationAtom,
|
||||||
|
deleteRoleMutationAtom,
|
||||||
|
updateRoleMutationAtom,
|
||||||
|
} from "@/atoms/roles/roles-mutation.atoms";
|
||||||
import {
|
import {
|
||||||
AlertDialog,
|
AlertDialog,
|
||||||
AlertDialogAction,
|
AlertDialogAction,
|
||||||
|
|
@ -109,21 +116,26 @@ import {
|
||||||
} from "@/components/ui/table";
|
} from "@/components/ui/table";
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
import { Textarea } from "@/components/ui/textarea";
|
import { Textarea } from "@/components/ui/textarea";
|
||||||
|
import type {
|
||||||
|
CreateInviteRequest,
|
||||||
|
DeleteInviteRequest,
|
||||||
|
Invite,
|
||||||
|
} from "@/contracts/types/invites.types";
|
||||||
|
import type {
|
||||||
|
DeleteMembershipRequest,
|
||||||
|
Membership,
|
||||||
|
UpdateMembershipRequest,
|
||||||
|
} from "@/contracts/types/members.types";
|
||||||
import type {
|
import type {
|
||||||
CreateRoleRequest,
|
CreateRoleRequest,
|
||||||
DeleteRoleRequest,
|
DeleteRoleRequest,
|
||||||
Role,
|
Role,
|
||||||
UpdateRoleRequest,
|
UpdateRoleRequest,
|
||||||
} from "@/contracts/types/roles.types";
|
} from "@/contracts/types/roles.types";
|
||||||
import {
|
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
||||||
type Invite,
|
|
||||||
type CreateInviteRequest,
|
|
||||||
} from "@/contracts/types/invites.types";
|
|
||||||
import type { Membership } from "@/contracts/types/members.types";
|
|
||||||
import { rolesApiService } from "@/lib/apis/roles-api.service";
|
import { rolesApiService } from "@/lib/apis/roles-api.service";
|
||||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import { createRoleMutationAtom, deleteRoleMutationAtom, updateRoleMutationAtom } from "@/atoms/roles/roles-mutation.atoms";
|
|
||||||
|
|
||||||
// Animation variants
|
// Animation variants
|
||||||
const fadeInUp = {
|
const fadeInUp = {
|
||||||
|
|
@ -165,7 +177,11 @@ export default function TeamManagementPage() {
|
||||||
[access]
|
[access]
|
||||||
);
|
);
|
||||||
|
|
||||||
const { data: members = [], isLoading: membersLoading, refetch: fetchMembers } = useAtomValue(membersAtom);
|
const {
|
||||||
|
data: members = [],
|
||||||
|
isLoading: membersLoading,
|
||||||
|
refetch: fetchMembers,
|
||||||
|
} = useAtomValue(membersAtom);
|
||||||
|
|
||||||
const { mutateAsync: createRole } = useAtomValue(createRoleMutationAtom);
|
const { mutateAsync: createRole } = useAtomValue(createRoleMutationAtom);
|
||||||
const { mutateAsync: updateRole } = useAtomValue(updateRoleMutationAtom);
|
const { mutateAsync: updateRole } = useAtomValue(updateRoleMutationAtom);
|
||||||
|
|
@ -189,7 +205,7 @@ export default function TeamManagementPage() {
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleCreateInvite = useCallback(
|
const handleCreateInvite = useCallback(
|
||||||
async (inviteData: CreateInviteRequest['data']) => {
|
async (inviteData: CreateInviteRequest["data"]) => {
|
||||||
const request: CreateInviteRequest = {
|
const request: CreateInviteRequest = {
|
||||||
search_space_id: searchSpaceId,
|
search_space_id: searchSpaceId,
|
||||||
data: inviteData,
|
data: inviteData,
|
||||||
|
|
@ -243,12 +259,11 @@ export default function TeamManagementPage() {
|
||||||
role_id: roleId,
|
role_id: roleId,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
return await updateMember(request) as Membership;
|
return (await updateMember(request)) as Membership;
|
||||||
},
|
},
|
||||||
[updateMember, searchSpaceId]
|
[updateMember, searchSpaceId]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
const handleRemoveMember = useCallback(
|
const handleRemoveMember = useCallback(
|
||||||
async (membershipId: number) => {
|
async (membershipId: number) => {
|
||||||
const request: DeleteMembershipRequest = {
|
const request: DeleteMembershipRequest = {
|
||||||
|
|
@ -257,7 +272,7 @@ export default function TeamManagementPage() {
|
||||||
};
|
};
|
||||||
await deleteMember(request);
|
await deleteMember(request);
|
||||||
|
|
||||||
return true
|
return true;
|
||||||
},
|
},
|
||||||
[deleteMember, searchSpaceId]
|
[deleteMember, searchSpaceId]
|
||||||
);
|
);
|
||||||
|
|
@ -1077,7 +1092,7 @@ function CreateInviteDialog({
|
||||||
searchSpaceId,
|
searchSpaceId,
|
||||||
}: {
|
}: {
|
||||||
roles: Role[];
|
roles: Role[];
|
||||||
onCreateInvite: (data: CreateInviteRequest['data']) => Promise<Invite>;
|
onCreateInvite: (data: CreateInviteRequest["data"]) => Promise<Invite>;
|
||||||
searchSpaceId: number;
|
searchSpaceId: number;
|
||||||
}) {
|
}) {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
|
@ -1092,7 +1107,7 @@ function CreateInviteDialog({
|
||||||
const handleCreate = async () => {
|
const handleCreate = async () => {
|
||||||
setCreating(true);
|
setCreating(true);
|
||||||
try {
|
try {
|
||||||
const data: CreateInviteRequest['data'] = {};
|
const data: CreateInviteRequest["data"] = {};
|
||||||
if (name) data.name = name;
|
if (name) data.name = name;
|
||||||
if (roleId && roleId !== "default") data.role_id = Number(roleId);
|
if (roleId && roleId !== "default") data.role_id = Number(roleId);
|
||||||
if (maxUses) data.max_uses = Number(maxUses);
|
if (maxUses) data.max_uses = Number(maxUses);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useAtomValue } from "jotai";
|
|
||||||
import { useQuery } from "@tanstack/react-query";
|
import { useQuery } from "@tanstack/react-query";
|
||||||
|
import { useAtomValue } from "jotai";
|
||||||
import {
|
import {
|
||||||
AlertCircle,
|
AlertCircle,
|
||||||
ArrowRight,
|
ArrowRight,
|
||||||
|
|
@ -21,8 +21,6 @@ import { useParams, useRouter } from "next/navigation";
|
||||||
import { use, useCallback, useEffect, useState } from "react";
|
import { use, useCallback, useEffect, useState } from "react";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import { acceptInviteMutationAtom } from "@/atoms/invites/invites-mutation.atoms";
|
import { acceptInviteMutationAtom } from "@/atoms/invites/invites-mutation.atoms";
|
||||||
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
|
||||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
|
|
@ -32,8 +30,10 @@ import {
|
||||||
CardHeader,
|
CardHeader,
|
||||||
CardTitle,
|
CardTitle,
|
||||||
} from "@/components/ui/card";
|
} from "@/components/ui/card";
|
||||||
|
import type { AcceptInviteResponse } from "@/contracts/types/invites.types";
|
||||||
|
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
||||||
import { getBearerToken } from "@/lib/auth-utils";
|
import { getBearerToken } from "@/lib/auth-utils";
|
||||||
import { AcceptInviteResponse } from "@/contracts/types/invites.types";
|
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||||
|
|
||||||
export default function InviteAcceptPage() {
|
export default function InviteAcceptPage() {
|
||||||
const params = useParams();
|
const params = useParams();
|
||||||
|
|
@ -41,9 +41,9 @@ export default function InviteAcceptPage() {
|
||||||
const inviteCode = params.invite_code as string;
|
const inviteCode = params.invite_code as string;
|
||||||
|
|
||||||
const { data: inviteInfo = null, isLoading: loading } = useQuery({
|
const { data: inviteInfo = null, isLoading: loading } = useQuery({
|
||||||
queryKey: cacheKeys.invites.info(inviteCode),
|
queryKey: cacheKeys.invites.info(inviteCode),
|
||||||
enabled: !!inviteCode,
|
enabled: !!inviteCode,
|
||||||
staleTime: 5 * 60 * 1000,
|
staleTime: 5 * 60 * 1000,
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
if (!inviteCode) return null;
|
if (!inviteCode) return null;
|
||||||
return invitesApiService.getInviteInfo({
|
return invitesApiService.getInviteInfo({
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
import { atomWithMutation } from "jotai-tanstack-query";
|
import { atomWithMutation } from "jotai-tanstack-query";
|
||||||
|
import { toast } from "sonner";
|
||||||
|
import type {
|
||||||
|
AcceptInviteRequest,
|
||||||
|
CreateInviteRequest,
|
||||||
|
DeleteInviteRequest,
|
||||||
|
UpdateInviteRequest,
|
||||||
|
} from "@/contracts/types/invites.types";
|
||||||
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
||||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||||
import { queryClient } from "@/lib/query-client/client";
|
import { queryClient } from "@/lib/query-client/client";
|
||||||
import type {
|
|
||||||
CreateInviteRequest,
|
|
||||||
UpdateInviteRequest,
|
|
||||||
DeleteInviteRequest,
|
|
||||||
AcceptInviteRequest,
|
|
||||||
} from "@/contracts/types/invites.types";
|
|
||||||
import { toast } from "sonner";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mutation atom for creating an invite
|
* Mutation atom for creating an invite
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import { atomWithMutation } from "jotai-tanstack-query";
|
import { atomWithMutation } from "jotai-tanstack-query";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import type {
|
import type {
|
||||||
UpdateMembershipRequest,
|
|
||||||
UpdateMembershipResponse,
|
|
||||||
DeleteMembershipRequest,
|
DeleteMembershipRequest,
|
||||||
DeleteMembershipResponse,
|
DeleteMembershipResponse,
|
||||||
LeaveSearchSpaceRequest,
|
LeaveSearchSpaceRequest,
|
||||||
LeaveSearchSpaceResponse,
|
LeaveSearchSpaceResponse,
|
||||||
|
UpdateMembershipRequest,
|
||||||
|
UpdateMembershipResponse,
|
||||||
} from "@/contracts/types/members.types";
|
} from "@/contracts/types/members.types";
|
||||||
import { membersApiService } from "@/lib/apis/members-api.service";
|
import { membersApiService } from "@/lib/apis/members-api.service";
|
||||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,28 @@
|
||||||
import {
|
import {
|
||||||
type CreateInviteRequest,
|
|
||||||
type CreateInviteResponse,
|
|
||||||
type GetInvitesRequest,
|
|
||||||
type GetInvitesResponse,
|
|
||||||
type UpdateInviteRequest,
|
|
||||||
type UpdateInviteResponse,
|
|
||||||
type DeleteInviteRequest,
|
|
||||||
type DeleteInviteResponse,
|
|
||||||
type GetInviteInfoRequest,
|
|
||||||
type GetInviteInfoResponse,
|
|
||||||
type AcceptInviteRequest,
|
type AcceptInviteRequest,
|
||||||
type AcceptInviteResponse,
|
type AcceptInviteResponse,
|
||||||
createInviteRequest,
|
|
||||||
createInviteResponse,
|
|
||||||
getInvitesRequest,
|
|
||||||
getInvitesResponse,
|
|
||||||
updateInviteRequest,
|
|
||||||
updateInviteResponse,
|
|
||||||
deleteInviteRequest,
|
|
||||||
deleteInviteResponse,
|
|
||||||
getInviteInfoRequest,
|
|
||||||
getInviteInfoResponse,
|
|
||||||
acceptInviteRequest,
|
acceptInviteRequest,
|
||||||
acceptInviteResponse,
|
acceptInviteResponse,
|
||||||
|
type CreateInviteRequest,
|
||||||
|
type CreateInviteResponse,
|
||||||
|
createInviteRequest,
|
||||||
|
createInviteResponse,
|
||||||
|
type DeleteInviteRequest,
|
||||||
|
type DeleteInviteResponse,
|
||||||
|
deleteInviteRequest,
|
||||||
|
deleteInviteResponse,
|
||||||
|
type GetInviteInfoRequest,
|
||||||
|
type GetInviteInfoResponse,
|
||||||
|
type GetInvitesRequest,
|
||||||
|
type GetInvitesResponse,
|
||||||
|
getInviteInfoRequest,
|
||||||
|
getInviteInfoResponse,
|
||||||
|
getInvitesRequest,
|
||||||
|
getInvitesResponse,
|
||||||
|
type UpdateInviteRequest,
|
||||||
|
type UpdateInviteResponse,
|
||||||
|
updateInviteRequest,
|
||||||
|
updateInviteResponse,
|
||||||
} from "@/contracts/types/invites.types";
|
} from "@/contracts/types/invites.types";
|
||||||
import { ValidationError } from "@/lib/error";
|
import { ValidationError } from "@/lib/error";
|
||||||
import { baseApiService } from "./base-api.service";
|
import { baseApiService } from "./base-api.service";
|
||||||
|
|
@ -33,10 +33,10 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
createInvite = async (request: CreateInviteRequest) => {
|
createInvite = async (request: CreateInviteRequest) => {
|
||||||
const parsedRequest = createInviteRequest.safeParse(request);
|
const parsedRequest = createInviteRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
@ -55,18 +55,18 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
getInvites = async (request: GetInvitesRequest) => {
|
getInvites = async (request: GetInvitesRequest) => {
|
||||||
const parsedRequest = getInvitesRequest.safeParse(request);
|
const parsedRequest = getInvitesRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return baseApiService.get(
|
return baseApiService.get(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites`,
|
||||||
getInvitesResponse
|
getInvitesResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -74,21 +74,21 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
updateInvite = async (request: UpdateInviteRequest) => {
|
updateInvite = async (request: UpdateInviteRequest) => {
|
||||||
const parsedRequest = updateInviteRequest.safeParse(request);
|
const parsedRequest = updateInviteRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return baseApiService.put(
|
return baseApiService.put(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites/${parsedRequest.data.invite_id}`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites/${parsedRequest.data.invite_id}`,
|
||||||
updateInviteResponse,
|
updateInviteResponse,
|
||||||
{
|
{
|
||||||
body: parsedRequest.data.data,
|
body: parsedRequest.data.data,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -96,18 +96,18 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
deleteInvite = async (request: DeleteInviteRequest) => {
|
deleteInvite = async (request: DeleteInviteRequest) => {
|
||||||
const parsedRequest = deleteInviteRequest.safeParse(request);
|
const parsedRequest = deleteInviteRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return baseApiService.delete(
|
return baseApiService.delete(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites/${parsedRequest.data.invite_id}`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/invites/${parsedRequest.data.invite_id}`,
|
||||||
deleteInviteResponse
|
deleteInviteResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -115,18 +115,18 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
getInviteInfo = async (request: GetInviteInfoRequest) => {
|
getInviteInfo = async (request: GetInviteInfoRequest) => {
|
||||||
const parsedRequest = getInviteInfoRequest.safeParse(request);
|
const parsedRequest = getInviteInfoRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return baseApiService.get(
|
return baseApiService.get(
|
||||||
`/api/v1/invites/${parsedRequest.data.invite_code}/info`,
|
`/api/v1/invites/${parsedRequest.data.invite_code}/info`,
|
||||||
getInviteInfoResponse
|
getInviteInfoResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -134,21 +134,17 @@ class InvitesApiService {
|
||||||
*/
|
*/
|
||||||
acceptInvite = async (request: AcceptInviteRequest) => {
|
acceptInvite = async (request: AcceptInviteRequest) => {
|
||||||
const parsedRequest = acceptInviteRequest.safeParse(request);
|
const parsedRequest = acceptInviteRequest.safeParse(request);
|
||||||
|
|
||||||
if (!parsedRequest.success) {
|
if (!parsedRequest.success) {
|
||||||
console.error("Invalid request:", parsedRequest.error);
|
console.error("Invalid request:", parsedRequest.error);
|
||||||
|
|
||||||
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", ");
|
||||||
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return baseApiService.post(
|
return baseApiService.post(`/api/v1/invites/accept`, acceptInviteResponse, {
|
||||||
`/api/v1/invites/accept`,
|
body: parsedRequest.data,
|
||||||
acceptInviteResponse,
|
});
|
||||||
{
|
|
||||||
body: parsedRequest.data,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,24 @@
|
||||||
import {
|
import {
|
||||||
type GetMembersRequest,
|
|
||||||
type GetMembersResponse,
|
|
||||||
type UpdateMembershipRequest,
|
|
||||||
type UpdateMembershipResponse,
|
|
||||||
type DeleteMembershipRequest,
|
type DeleteMembershipRequest,
|
||||||
type DeleteMembershipResponse,
|
type DeleteMembershipResponse,
|
||||||
type LeaveSearchSpaceRequest,
|
deleteMembershipRequest,
|
||||||
type LeaveSearchSpaceResponse,
|
deleteMembershipResponse,
|
||||||
|
type GetMembersRequest,
|
||||||
|
type GetMembersResponse,
|
||||||
type GetMyAccessRequest,
|
type GetMyAccessRequest,
|
||||||
type GetMyAccessResponse,
|
type GetMyAccessResponse,
|
||||||
getMembersRequest,
|
getMembersRequest,
|
||||||
getMembersResponse,
|
getMembersResponse,
|
||||||
updateMembershipRequest,
|
|
||||||
updateMembershipResponse,
|
|
||||||
deleteMembershipRequest,
|
|
||||||
deleteMembershipResponse,
|
|
||||||
leaveSearchSpaceRequest,
|
|
||||||
leaveSearchSpaceResponse,
|
|
||||||
getMyAccessRequest,
|
getMyAccessRequest,
|
||||||
getMyAccessResponse,
|
getMyAccessResponse,
|
||||||
|
type LeaveSearchSpaceRequest,
|
||||||
|
type LeaveSearchSpaceResponse,
|
||||||
|
leaveSearchSpaceRequest,
|
||||||
|
leaveSearchSpaceResponse,
|
||||||
|
type UpdateMembershipRequest,
|
||||||
|
type UpdateMembershipResponse,
|
||||||
|
updateMembershipRequest,
|
||||||
|
updateMembershipResponse,
|
||||||
} from "@/contracts/types/members.types";
|
} from "@/contracts/types/members.types";
|
||||||
import { ValidationError } from "@/lib/error";
|
import { ValidationError } from "@/lib/error";
|
||||||
import { baseApiService } from "./base-api.service";
|
import { baseApiService } from "./base-api.service";
|
||||||
|
|
@ -39,7 +39,7 @@ class MembersApiService {
|
||||||
|
|
||||||
return baseApiService.get(
|
return baseApiService.get(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members`,
|
||||||
getMembersResponse,
|
getMembersResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ class MembersApiService {
|
||||||
updateMembershipResponse,
|
updateMembershipResponse,
|
||||||
{
|
{
|
||||||
body: parsedRequest.data.data,
|
body: parsedRequest.data.data,
|
||||||
},
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ class MembersApiService {
|
||||||
|
|
||||||
return baseApiService.delete(
|
return baseApiService.delete(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members/${parsedRequest.data.membership_id}`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members/${parsedRequest.data.membership_id}`,
|
||||||
deleteMembershipResponse,
|
deleteMembershipResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -99,7 +99,7 @@ class MembersApiService {
|
||||||
|
|
||||||
return baseApiService.delete(
|
return baseApiService.delete(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members/me`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/members/me`,
|
||||||
leaveSearchSpaceResponse,
|
leaveSearchSpaceResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -118,7 +118,7 @@ class MembersApiService {
|
||||||
|
|
||||||
return baseApiService.get(
|
return baseApiService.get(
|
||||||
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/my-access`,
|
`/api/v1/searchspaces/${parsedRequest.data.search_space_id}/my-access`,
|
||||||
getMyAccessResponse,
|
getMyAccessResponse
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import type { GetChatsRequest } from "@/contracts/types/chat.types";
|
import type { GetChatsRequest } from "@/contracts/types/chat.types";
|
||||||
import type { GetDocumentsRequest } from "@/contracts/types/document.types";
|
import type { GetDocumentsRequest } from "@/contracts/types/document.types";
|
||||||
import type { GetLLMConfigsRequest } from "@/contracts/types/llm-config.types";
|
import type { GetLLMConfigsRequest } from "@/contracts/types/llm-config.types";
|
||||||
|
import type { GetMembersRequest } from "@/contracts/types/members.types";
|
||||||
import type { GetPodcastsRequest } from "@/contracts/types/podcast.types";
|
import type { GetPodcastsRequest } from "@/contracts/types/podcast.types";
|
||||||
import type { GetRolesRequest } from "@/contracts/types/roles.types";
|
import type { GetRolesRequest } from "@/contracts/types/roles.types";
|
||||||
import type { GetSearchSpacesRequest } from "@/contracts/types/search-space.types";
|
import type { GetSearchSpacesRequest } from "@/contracts/types/search-space.types";
|
||||||
import type { GetMembersRequest } from "@/contracts/types/members.types";
|
|
||||||
|
|
||||||
export const cacheKeys = {
|
export const cacheKeys = {
|
||||||
chats: {
|
chats: {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue