import { apiRequest } from '@/lib/api/client'; import type { BootstrapTokenPayload, GeoIPLookupResult, OptionItem, SettingsProfile, UpdateSelfPayload, } from '@/features/settings/types'; export function getOptions() { return apiRequest('/option/'); } export function updateOption(key: string, value: string) { return apiRequest('/option/update', { method: 'POST', body: JSON.stringify({ key, value }), }); } export function lookupGeoIP(provider: string, ip: string) { return apiRequest('/option/geoip/lookup', { method: 'POST', body: JSON.stringify({ provider, ip }), }); } export function getBootstrapToken() { return apiRequest('/nodes/bootstrap-token'); } export function rotateBootstrapToken() { return apiRequest('/nodes/bootstrap-token/rotate', { method: 'POST', }); } export function getSettingsProfile() { return apiRequest('/user/self'); } export function updateSelf(payload: UpdateSelfPayload) { return apiRequest('/user/self/update', { method: 'POST', body: JSON.stringify(payload), }); } export function generateAccessToken() { return apiRequest('/user/token'); } export function bindWeChat(code: string) { return apiRequest( `/oauth/wechat/bind?code=${encodeURIComponent(code)}`, ); } export function bindEmail(email: string, code: string) { const searchParams = new URLSearchParams({ email, code }); return apiRequest(`/oauth/email/bind?${searchParams.toString()}`); } export function getAboutContent() { return apiRequest('/about'); }