Add upstream caching infrastructure and refactor CI pipeline
This commit is contained in:
@@ -42,6 +42,12 @@ import {
|
||||
TeamUpdate,
|
||||
TeamMemberCreate,
|
||||
TeamMemberUpdate,
|
||||
UpstreamSource,
|
||||
UpstreamSourceCreate,
|
||||
UpstreamSourceUpdate,
|
||||
UpstreamSourceTestResult,
|
||||
CacheSettings,
|
||||
CacheSettingsUpdate,
|
||||
} from './types';
|
||||
|
||||
const API_BASE = '/api/v1';
|
||||
@@ -682,3 +688,81 @@ export async function searchUsers(query: string, limit: number = 10): Promise<Us
|
||||
});
|
||||
return handleResponse<UserSearchResult[]>(response);
|
||||
}
|
||||
|
||||
// Upstream Sources Admin API
|
||||
export interface UpstreamSourceListParams {
|
||||
enabled?: boolean;
|
||||
source_type?: string;
|
||||
}
|
||||
|
||||
export async function listUpstreamSources(params: UpstreamSourceListParams = {}): Promise<UpstreamSource[]> {
|
||||
const query = buildQueryString(params as Record<string, unknown>);
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources${query}`, {
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<UpstreamSource[]>(response);
|
||||
}
|
||||
|
||||
export async function createUpstreamSource(data: UpstreamSourceCreate): Promise<UpstreamSource> {
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<UpstreamSource>(response);
|
||||
}
|
||||
|
||||
export async function getUpstreamSource(id: string): Promise<UpstreamSource> {
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources/${id}`, {
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<UpstreamSource>(response);
|
||||
}
|
||||
|
||||
export async function updateUpstreamSource(id: string, data: UpstreamSourceUpdate): Promise<UpstreamSource> {
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources/${id}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<UpstreamSource>(response);
|
||||
}
|
||||
|
||||
export async function deleteUpstreamSource(id: string): Promise<void> {
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources/${id}`, {
|
||||
method: 'DELETE',
|
||||
credentials: 'include',
|
||||
});
|
||||
if (!response.ok) {
|
||||
const error = await response.json().catch(() => ({ detail: 'Unknown error' }));
|
||||
throw new ApiError(error.detail || `HTTP ${response.status}`, response.status);
|
||||
}
|
||||
}
|
||||
|
||||
export async function testUpstreamSource(id: string): Promise<UpstreamSourceTestResult> {
|
||||
const response = await fetch(`${API_BASE}/admin/upstream-sources/${id}/test`, {
|
||||
method: 'POST',
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<UpstreamSourceTestResult>(response);
|
||||
}
|
||||
|
||||
// Cache Settings Admin API
|
||||
export async function getCacheSettings(): Promise<CacheSettings> {
|
||||
const response = await fetch(`${API_BASE}/admin/cache-settings`, {
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<CacheSettings>(response);
|
||||
}
|
||||
|
||||
export async function updateCacheSettings(data: CacheSettingsUpdate): Promise<CacheSettings> {
|
||||
const response = await fetch(`${API_BASE}/admin/cache-settings`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
credentials: 'include',
|
||||
});
|
||||
return handleResponse<CacheSettings>(response);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user