Connect React workspace to backend data
This commit is contained in:
96
apps/senlinai-acro-react/src/api/projects.ts
Normal file
96
apps/senlinai-acro-react/src/api/projects.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
import { apiRequest, type ApiSession } from './client'
|
||||
|
||||
export type BackendProject = {
|
||||
ID?: number
|
||||
id?: number
|
||||
Name?: string
|
||||
name?: string
|
||||
Description?: string
|
||||
description?: string
|
||||
}
|
||||
|
||||
export type BackendWorkspaceProject = {
|
||||
id: number
|
||||
name: string
|
||||
description: string
|
||||
initials: string
|
||||
unreadCount: number
|
||||
}
|
||||
|
||||
export type BackendChannel = {
|
||||
id: string
|
||||
projectID: number
|
||||
type: string
|
||||
title: string
|
||||
icon: string
|
||||
count?: number
|
||||
url?: string
|
||||
sortOrder: number
|
||||
}
|
||||
|
||||
export type BackendInboxMessage = {
|
||||
id: string
|
||||
source: string
|
||||
title: string
|
||||
summary: string
|
||||
status: string
|
||||
tag: string
|
||||
time: string
|
||||
}
|
||||
|
||||
export type BackendTask = {
|
||||
id: string
|
||||
title: string
|
||||
summary: string
|
||||
completed: boolean
|
||||
owner: string
|
||||
due: string
|
||||
tag: string
|
||||
}
|
||||
|
||||
export type BackendAISession = {
|
||||
id: string
|
||||
title: string
|
||||
summary: string
|
||||
updatedAt: string
|
||||
references: string[]
|
||||
}
|
||||
|
||||
export type BackendNoteSource = {
|
||||
id: string
|
||||
kind: string
|
||||
title: string
|
||||
updatedAt: string
|
||||
tag: string
|
||||
source: string
|
||||
}
|
||||
|
||||
export type BackendCronPlan = {
|
||||
id: string
|
||||
title: string
|
||||
schedule: string
|
||||
nextRun: string
|
||||
enabled: boolean
|
||||
lastResult: string
|
||||
owner: string
|
||||
}
|
||||
|
||||
export type BackendProjectWorkspace = {
|
||||
project: BackendWorkspaceProject
|
||||
channels: BackendChannel[]
|
||||
tags: string[]
|
||||
recentSessions: BackendAISession[]
|
||||
inbox: BackendInboxMessage[]
|
||||
tasks: BackendTask[]
|
||||
aiSessions: BackendAISession[]
|
||||
notesSources: BackendNoteSource[]
|
||||
cronPlans: BackendCronPlan[]
|
||||
}
|
||||
|
||||
export async function fetchProjects(session: ApiSession) {
|
||||
return apiRequest<BackendProject[]>('/api/projects', { token: session.token })
|
||||
}
|
||||
|
||||
export async function fetchProjectWorkspace(session: ApiSession, projectID: string | number) {
|
||||
return apiRequest<BackendProjectWorkspace>(`/api/projects/${projectID}/workspace`, { token: session.token })
|
||||
}
|
||||
Reference in New Issue
Block a user