Files
sub2api/frontend/src/api/groups.ts

36 lines
1008 B
TypeScript
Raw Normal View History

2025-12-18 13:50:39 +08:00
/**
* User Groups API endpoints (non-admin)
* Handles group-related operations for regular users
*/
import { apiClient } from './client'
import type { Group } from '@/types'
2025-12-18 13:50:39 +08:00
/**
* Get available groups that the current user can bind to API keys
* This returns groups based on user's permissions:
* - Standard groups: public (non-exclusive) or explicitly allowed
* - Subscription groups: user has active subscription
* @returns List of available groups
*/
export async function getAvailable(): Promise<Group[]> {
const { data } = await apiClient.get<Group[]>('/groups/available')
return data
2025-12-18 13:50:39 +08:00
}
/**
* Get current user's custom group rate multipliers
* @returns Map of group_id to custom rate_multiplier
*/
export async function getUserGroupRates(): Promise<Record<number, number>> {
const { data } = await apiClient.get<Record<number, number> | null>('/groups/rates')
return data || {}
}
2025-12-18 13:50:39 +08:00
export const userGroupsAPI = {
getAvailable,
getUserGroupRates
}
2025-12-18 13:50:39 +08:00
export default userGroupsAPI