add badge logic
This commit is contained in:
+32
-5
@@ -60,7 +60,7 @@ export async function postBadgeGenerate(formData: FormData): Promise<Blob> {
|
||||
const headers = new Headers({ Accept: 'application/pdf,*/*' })
|
||||
const token = getStoredToken()
|
||||
if (token) headers.set('Authorization', `Bearer ${token}`)
|
||||
const res = await fetch(apiUrl('/api/v1/administrator/printables/badges/generate'), {
|
||||
const res = await fetch(apiUrl('/api/v1/badges/pdf'), {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: formData,
|
||||
@@ -98,18 +98,44 @@ export async function fetchBadgeFormOptions(params?: {
|
||||
school_year?: string
|
||||
semester?: string
|
||||
}): Promise<{
|
||||
active_role?: string
|
||||
rolesTabs?: Record<string, string>
|
||||
schoolYears?: string[]
|
||||
selectedYear?: string
|
||||
selectedStudentIds?: number[]
|
||||
selectedUserIds?: number[]
|
||||
users?: BadgeUserRow[]
|
||||
}> {
|
||||
const qs = new URLSearchParams()
|
||||
if (params?.school_year) qs.set('school_year', params.school_year)
|
||||
if (params?.semester) qs.set('semester', params.semester)
|
||||
const suffix = qs.toString() ? `?${qs}` : ''
|
||||
return apiFetch(`/api/v1/administrator/printables/badges/form-options${suffix}`)
|
||||
const body = await apiFetch<{
|
||||
ok?: boolean
|
||||
data?: {
|
||||
active_role?: string
|
||||
rolesTabs?: Record<string, string>
|
||||
schoolYears?: string[]
|
||||
selectedYear?: string
|
||||
selectedStudentIds?: number[]
|
||||
selectedUserIds?: number[]
|
||||
users?: BadgeUserRow[]
|
||||
}
|
||||
} & {
|
||||
active_role?: string
|
||||
rolesTabs?: Record<string, string>
|
||||
schoolYears?: string[]
|
||||
selectedYear?: string
|
||||
selectedStudentIds?: number[]
|
||||
selectedUserIds?: number[]
|
||||
users?: BadgeUserRow[]
|
||||
}>(`/api/v1/administrator/printables/badges/form-options${suffix}`)
|
||||
return body.data ?? body
|
||||
}
|
||||
|
||||
export async function fetchBadgePrintStatus(params: {
|
||||
user_ids: (number | string)[]
|
||||
user_ids?: (number | string)[]
|
||||
student_ids?: (number | string)[]
|
||||
school_year?: string
|
||||
}): Promise<{
|
||||
ok?: boolean
|
||||
@@ -118,9 +144,10 @@ export async function fetchBadgePrintStatus(params: {
|
||||
csrf_hash?: string
|
||||
}> {
|
||||
const qs = new URLSearchParams()
|
||||
for (const id of params.user_ids) qs.append('user_ids[]', String(id))
|
||||
for (const id of params.user_ids ?? []) qs.append('user_ids[]', String(id))
|
||||
for (const id of params.student_ids ?? []) qs.append('student_ids[]', String(id))
|
||||
if (params.school_year) qs.set('school_year', params.school_year)
|
||||
return apiFetch(`/api/v1/administrator/printables/badges/status?${qs}`)
|
||||
return apiFetch(`/api/v1/badges/print-status?${qs}`)
|
||||
}
|
||||
|
||||
export type ReportCardMeta = {
|
||||
|
||||
Reference in New Issue
Block a user