API

import { fetcher } from "./Fetcher" // Import thư viện
 
// Khai báo type cho params, body, response
export interface IUserLogin {
  _id?: string
  fullName?: string
  email?: string
}
 
export interface IParamsGetUser {
  sort?: string[]
  searchFields?: string[]
  pageSize?: number
  pageNumber?: number
  disablePagination?: boolean
  search?: string
  searchType?: string
}
 
// Khai báo url
const path = {
  login: "/auth/login",
  getMe: "/users/me",
  getUserAccount: "/users",
}
 
// Khai báo API
function getUserAccount(params?: IParamsGetUser): Promise<IUserLogin[]> {
  return fetcher({ url: path.getUserAccount, method: "get", params: params })
}

Lưu ý:

  • Khai báo interface parameters, body, response phải đúng với server trả về nếu không sẽ bị sai tất cả các phần xử lý đằng sau. Nhất là các trường hợp trường dữ liệu trả về có thể bị null hoặc undefined.
  • Đặt tên cho interface thì phải có chữ I đằng trước. Ví dụ: IUserLogin, IParamsGetUser.