fix teacher, parent and admin pages

This commit is contained in:
root
2026-04-25 00:00:10 -04:00
parent 7fe34dde0d
commit 3e77fc92c7
275 changed files with 46412 additions and 3325 deletions
+47
View File
@@ -0,0 +1,47 @@
/**
* Admin refunds list (legacy CI `refunds/list.php`).
* Laravel: `GET /api/v1/administrator/refunds/list` with JWT.
*/
import { apiFetch } from './http'
const BASE = '/api/v1/administrator/refunds'
export type RefundListRow = Record<string, unknown>
export type RefundsListResponse = {
refunds: RefundListRow[]
school_year?: string | null
semester?: string | null
school_years?: string[]
}
function normalizeListPayload(raw: unknown): RefundsListResponse {
const body = raw && typeof raw === 'object' ? (raw as Record<string, unknown>) : {}
const inner =
'data' in body && body.data && typeof body.data === 'object'
? (body.data as Record<string, unknown>)
: body
const list = inner.refunds ?? inner.rows ?? []
return {
refunds: Array.isArray(list) ? (list as RefundListRow[]) : [],
school_year: inner.school_year != null ? String(inner.school_year) : undefined,
semester: inner.semester != null ? String(inner.semester) : undefined,
school_years: Array.isArray(inner.school_years)
? (inner.school_years as string[])
: undefined,
}
}
export async function fetchRefundsList(params?: {
school_year?: string
semester?: string
page?: number | string
}): Promise<RefundsListResponse> {
const qs = new URLSearchParams()
if (params?.school_year) qs.set('school_year', params.school_year)
if (params?.semester) qs.set('semester', params.semester)
if (params?.page != null) qs.set('page', String(params.page))
const suffix = qs.toString() ? `?${qs}` : ''
const body = await apiFetch<unknown>(`${BASE}/list${suffix}`)
return normalizeListPayload(body)
}