47 lines
1.0 KiB
TypeScript
47 lines
1.0 KiB
TypeScript
import axiosInstance from './axiosInstance'
|
|
|
|
type OrderType = 'asc' | 'desc'
|
|
|
|
interface StudentResponse {
|
|
max_pages: number
|
|
students: Student[]
|
|
}
|
|
|
|
export interface Student {
|
|
first_name: string
|
|
last_name: string
|
|
index: number
|
|
pesel: string
|
|
mode: boolean
|
|
group?: any
|
|
}
|
|
|
|
export const getStudents = (
|
|
params: Partial<{
|
|
fullname: string
|
|
order_by_first_name: OrderType
|
|
order_by_last_name: OrderType
|
|
page: number
|
|
per_page: number
|
|
mode: boolean
|
|
}> = {},
|
|
) =>
|
|
axiosInstance.get<StudentResponse>(
|
|
'http://127.0.0.1:5000/api/coordinator/students',
|
|
{ params },
|
|
)
|
|
|
|
export const createStudent = (payload: Student) =>
|
|
axiosInstance.post('http://127.0.0.1:5000/api/coordinator/students/', payload)
|
|
|
|
export const uploadStudents = (payload: FormData) =>
|
|
axiosInstance.post(
|
|
'http://127.0.0.1:5000/api/coordinator/students/upload/',
|
|
payload,
|
|
)
|
|
|
|
export const deleteStudent = (payload: Number) =>
|
|
axiosInstance.delete(
|
|
'http://127.0.0.1:5000/api/coordinator/students/'+payload.toString()+'/',
|
|
)
|