mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
import { apiRequest } from '@/lib/api/client';
|
|
|
|
import type {
|
|
BootstrapTokenPayload,
|
|
GeoIPLookupResult,
|
|
OptionItem,
|
|
SettingsProfile,
|
|
UpdateSelfPayload,
|
|
} from '@/features/settings/types';
|
|
|
|
export function getOptions() {
|
|
return apiRequest<OptionItem[]>('/option/');
|
|
}
|
|
|
|
export function updateOption(key: string, value: string) {
|
|
return apiRequest<void>('/option/', {
|
|
method: 'PUT',
|
|
body: JSON.stringify({ key, value }),
|
|
});
|
|
}
|
|
|
|
export function lookupGeoIP(provider: string, ip: string) {
|
|
return apiRequest<GeoIPLookupResult>('/option/geoip/lookup', {
|
|
method: 'POST',
|
|
body: JSON.stringify({ provider, ip }),
|
|
});
|
|
}
|
|
|
|
export function getBootstrapToken() {
|
|
return apiRequest<BootstrapTokenPayload>('/nodes/bootstrap-token');
|
|
}
|
|
|
|
export function rotateBootstrapToken() {
|
|
return apiRequest<BootstrapTokenPayload>('/nodes/bootstrap-token/rotate', {
|
|
method: 'POST',
|
|
});
|
|
}
|
|
|
|
export function getSettingsProfile() {
|
|
return apiRequest<SettingsProfile>('/user/self');
|
|
}
|
|
|
|
export function updateSelf(payload: UpdateSelfPayload) {
|
|
return apiRequest<void>('/user/self', {
|
|
method: 'PUT',
|
|
body: JSON.stringify(payload),
|
|
});
|
|
}
|
|
|
|
export function generateAccessToken() {
|
|
return apiRequest<string>('/user/token');
|
|
}
|
|
|
|
export function bindWeChat(code: string) {
|
|
return apiRequest<void>(
|
|
`/oauth/wechat/bind?code=${encodeURIComponent(code)}`,
|
|
);
|
|
}
|
|
|
|
export function bindEmail(email: string, code: string) {
|
|
const searchParams = new URLSearchParams({ email, code });
|
|
return apiRequest<void>(`/oauth/email/bind?${searchParams.toString()}`);
|
|
}
|
|
|
|
export function getAboutContent() {
|
|
return apiRequest<string>('/about');
|
|
}
|